HTTP
인터넷 네트워크
인터넷 통신이라고 함은? 클라이언트와 서버가 통신하는 것을 말한다..
클라이언트 <- 인터넷 -> 서버
중간 노드(서버)들을 거쳐서 데이터가 전달된다.
IP(인터넷 프로토콜)
데이터를 전달하려면 주소가 필요한데 그것이 IP이다.
IP주소를 통해 데이터를 전달한다.
패킷단위로 전송한다.
패킷에 출발지IP,목적지IP등이 저장된다.
클라이언트 -> 서버, 서버 -> 클라이언트
양쪽 다 모두 동일하다.
IP만 있을 때 문제점!
1. 비연결성
상대 주소가 있는 없든 보낸다.
대상 서버가 패킷을 받을 수 있는지 모른다.
2. 비신뢰성
패킷 전송 중 패킷이 사라질 때?
패킷의 용량이 클 때 패킷이 순서대로 안 갈 수 있다.
3. 프로그램 구분
여러 개 프로그램 구동
이 문제를 해결하기 위해
TCP\UDP를 사용된다.
애플리케이션 계층 | HTTP,FTP |
전송 계층 | TCP,UDP |
인터넷 계층 | IP |
네트워크 인터페이스 계층 |
4단계 형식으로 감싸 진다
즉, IP 위에 TCP를 이용해 사용할 수 있게 한다고
생각하면 된다.
4단계 예제
ex) 채팅
socket(애플리케이션 계층)
(socket(애플리케이션계층),TCP)
((socket(애플리케이션 계층), TCP), IP)
식으로 감싸서 전달한다.
TCP를 통해 IP에서 부족한 것을 채워준다.
IP : 출발지 IP, 목적지 IP
TCP : 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보
TCP 사용 이유
연결 지향 - 먼저 연결해보고 메시지를 보낸다.
물리적으로 연결된 게 아니라
논리적으로 연결되어 있다.
TCP 3 way handshake
- SYN (클라이언트-> 서버)
- SYN + ACK (서버 -> 클라이언트)
- ACK (클라이언트 -> 서버) 데이터도 함께 전송 가능
데이터 전달 보증 - 메시지 누락을 체크할 수 있다.
순서 보장
UDP - 기능이 거의 없다.
IP와 동일하지만 PORT가 추가되었다.
장점 속도가 빠르다.
최근엔 UDP를 많이 사용하려 한다.
PORT
PORT는 애플리케이션 하나에 하나씩 할당된다.
한 번에 둘 이상을 연결하기 위해 사용한다.
IP만 있다고 생각하면 패킷들을 분리할 방법이 없다.
IP는 서버를 찾고 PORT는 애플리케이션을 구분한다.
DNS(Domain Name System)
IP는 기억하기 어렵다.
또 IP는 변경될 수 있다.
도메인명으로 IP주소를 연결한다.
도메인명은 그대로있고 변경된 IP주소를 연결하면된다.
'개발 소발 > 기초 컴퓨터,통신' 카테고리의 다른 글
비연결성,Http메시지 란? (0) | 2021.08.03 |
---|---|
URI,URL,URN,http,Stateless이란? (0) | 2021.08.03 |
HTTP,TCP/IP란 무엇일까? 기초 (0) | 2019.08.02 |
컴퓨터공학 Operating System 시스템콜 (0) | 2018.12.19 |
컴퓨터공학 Operating System 역사 - 2 (0) | 2018.12.12 |