TCP(Transmission Control Protocol)
앞서 살펴본 IP의 단점을 보완해주는 프로토콜 계층이다.
TCP는 어떻게 IP의 단점들을 해결할 수 있을까?
TCP에서는 출발지 PORT, 목적지 PORT , 전송 제어, 순서, 검증 정보 등을 패킷에 포함시킨다.
해당 정보들을 이용하여 아래에서 살펴볼 행동들을 지원해준다.
연결 지향 - TCP 3 way handshake(가상 연결)
- 해당 방식은 물리적으로 연결된 것이 아니라 개념적으로만 연결된 것이다.
- 앞서 살펴본 IP의 비연결성의 단점을 보완해준다
데이터 전달 보증
- IP의 비신뢰성을 보완해준다. 해당 방식은 클라이언트가 서버에게 데이터를 전송했다면
서버에서는 데이터를 받았다고 응답 결과를 return 해준다.
순서 보장
- 해당 방식도 IP의 비신뢰성 중 패킷의 도착 순서가 뒤바뀐 경우 문제를 보완해준다.
-> 만약 서버에 도착한 패킷들의 순서가 올바르지 않다면 서버는 다시 클라이언트에 재요청을 한다.
UDP(User Datagram Protocol)
UDP는 TCP와 다르게 기능이 많지 않다.
앞서 TCP는 많은 정보들을 패킷에 추가하여 각각의 기능들을 수행하게 된다.
하지만 UDP 같은 경우 PORT와 체크섬 정도만 추가한다.
따라서 UDP는 연결 지향, 순서 보장, 데이터 전달 보증 등을 지원해주지 않는다.
UDP 방식은 TCP 보다 하는 일이 별로 없기에 단순하고 빠르다.
그럼 왜 사용하는가?
TCP는 너무 많은 정보를 가지고 있음으로 느리다. 또한 TCP 는 마음대로 커스텀하기도 힘들다.
하지만 UDP 같은 경우 거의 빈 껍데기이기 때문에 얼마든지 원하는 대로 최적화를 할 수 있다.
PORT
앞서 TCP, UDP에서 포함시키는 정보중 공통적으로 포함하는 정보가 있다.
바로 PORT 정보인데 해당 정보는 왜 사용할까?
우리는 컴퓨터로 단 하나의 작업만을 하지 않는다.
우리는 컴퓨터를 이용하여 코딩도 하고 노래도 듣고 게임도 즐긴다.
나의 컴퓨터의 IP는 단 하나이며 만약 포트 정보가 없다면 컴퓨터는 응답을 주고받을 때
이 응답이 노래를 듣기 위한 것인지? 게임을 하기 위한 응답인지 알 수 없다.
DNS(Domain Name System)
우리는 네이버나 구글을 들어갈 때 IP 주소를 쳐서 들어가지 않는다.
즉 https://192.2020.20200/ 처럼 접속하지 않는다는 뜻이다.
주소창에 naver.com 만 입력해도 네이버에 접속할 수 있다.
해당 서비스가 DNS인데 말 그대로 도메인 명을 IP 주소로 변환하는 것이다.
해당 서비스를 이용하면 사용자들은 도메인명만 알고 있다면 naver의 실제 IP 주소가 변경되어도
언제든지 접속이 가능하며 서버를 운영하는 입장에서도 IP가 변경되어도 부담이 없어지게 된다.
'HTTP > 모든 개발자를 위한 HTTP 웹 기본 지식' 카테고리의 다른 글
HTTP 메소드 활용 (0) | 2021.04.22 |
---|---|
HTTP 메서드 (0) | 2021.04.16 |
HTTP 기본 (0) | 2021.04.13 |
URI와 웹 브라우저 요청 흐름 (0) | 2021.04.13 |
인터넷 네트워크(인터넷통신, IP) (0) | 2021.04.05 |