'해당 내용은 김영한 개발자님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 바탕으로 정리한 내용입니다.'
IP(Internet Protocol)
송신 호스트와 수신 호스트가 정보를 주고 받는 데 사용하는 정보 위주의 유약이다.
IP 패킷**은 출발지 IP, 목적지 IP, 메세지 넣어 목적지 IP까지 노드가 전달한다.
다만, 이 IP 패킷은 몇가지의 문제점을 가지고 있다.
- 메세지가 길어질 경우 여러 IP 패킷으로 분할하게 되는데, 이 패킷들이 목적지까지 도착하는데 이동 경로가 달라지게 되므로 순서 없이 도착할 수 있다.
- 물리적 계층 혹은 중간에 서버들이 끊김으로 인해 패킷이 손실되 버려 의미 있는 메세지로 결합하는 것이 불가능해질 수 있다.
- 우발적인 재 전송으로 인해 패킷이 중복 될 수 있다.
이러한 문제를 처리할 수 있는 더 높은 수준의 프로토콜인 TCP(Transmission Control Protocol)로 해결이 가능하다.
TCP(Transmission Control Protocol) / UDP(User Datagram Protocol)
TCP(Transmission Control Protocol)은 패킷의 안정적인 전송을 보장하기 위해 IP위에 사용되는 전송 프로토콜이다.
TCP 세그먼트는 IP 패킷 안에 있는데, 출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증정보 등이 들어가 있다.
TCP/IP로 패킷 전송하는 과정은 다음과 같다.
- SYN, 동기화할래?
고유한 임의 번호가 포함된 SYN 패킷 또는 세그먼트를 서버에 보낸다. - ACK + SYN, 좋아!
서버가 해당 세그먼트를 수신한 경우 클라이언트 시퀀스 번호에 + 1을 더한 ACK+SYN 패킷에 반환하여 동의한다. - ACK, 확인!
서버의 시퀀스 번호에 + 1을 더한 값을 ACK 패킷에 담아 전송하는데 이때 서버에 데이터 전송 시작할 수 있다.
수신자는 지금까지 확인한것보다 높은 시퀀스 번호 확인하면 적어도 하나의 패킷이 누락되었음을 알 수 있다.
그리고 다음 번호가 예상되는 시퀀스 번호로 발신자에게 문제가 있음을 알린다.
이렇게 누락된 패킷은 이동하는 도중에 분실되거나 혹은 다른 패킷보다 늦게 도착할 수 도 있는데 발신자는 수신자의 응답에 따라 패킷을 재전송한다. 재 전송시 손실되지 않은 패킷일 경우 수신자가 중복 패킷 버릴 수 있다.
UDP(User Datagram Protocol)
TCP가 신뢰할수 있는 프로토콜이라 많이 사용하긴 하지만, 내가 최적화를 할 수 있다고 한다면 UDP를 사용한다.
UDP는 IP랑 큰 차이가 없으나 PORT를 체크할 수 있다는 점에서 IP와 다른 차이점이 존재한다.
1) 패킷(Packet) : 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록
2) 참고목록 :
김영한 - 모든 개발자를 위한 HTTP 웹 기본 지식
'Web > HTTP' 카테고리의 다른 글
[HTTP] PORT, DNS (1) | 2022.09.30 |
---|