220803_CS공부_TCP/UDP 정리
예 ) 미국에 있는 친구에게 HELLO WORLD라는 메시지를 전달하고 싶다면?
1. 소캣 라이브러리를 통해서 OS 계층에 DATA(HELLO WORLD) 라는 개체를 넘긴다.
2. OS 계층에서 1차적으로 데이터에 TCP 정보를 씌운다.
(TCP 정보 : 출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증정보 등의 정보 )
3. TCP 정보를 씌운 2번에 + IP에 연관된 데이터에 대한 정보를 씌운다.
(IP 정보 : 출발지/목적지 IP에 대한 데이터)
TCP 란? 전송 제어 프로토콜 ( 전송을 어떻게 할지 제어하는 프로그램)
TCP 특징
1. 연결지향 : 나와 상대방 사이에 연결이 되었나 안되었나 연결 후 메시지 전송
- TCP 3 WAY HANDSHAKE 방법
① 클라이언트 : TCP/IP 프로토콜로 SYN이라는 메시지를 보냄.
② 서버 : SYN+ACK 메시지를 보냄(응답)
③ 클라이언트 : ACK 로 서버에 응답
④ 연결 : (실제 물리적인 연결은 3에서 바로 연결 하거나 해당 단계에서 연결 실행)
(SYN : 접속 요청, ACK : 요청 수락)
2. 데이터 전달 보장 : 데이터 전송 과정에서 문제가 발생하면 보낸 발신자가 알 수 있음
3. 순서 보장
예) 3가지 패킷을 전송해야하고 1->2->3 순서로 보내야하는데 만일 1->3->2 순서로 도착한다면?
1번은 그대로 두고 3번부터 버리고 다시 순서대로 2->3번을 보낼 수 있게 함
(OS 계층에서 씌운 TCP 정보에 전송제어 정보, 순서정보, 검증정보가 추가로 들어있기 때문에)
UDP란? 사용자 데이터그램 프로토콜. TCP에서 최적화 하기 위하여 사용
UDP 특징
1. 기능이 거의 없음.
2. 순서보장 X
3. 데이터 전달 보장 X
4. 단순하고 빠름(TCP의 단점 - 전송할 데이터가 크며 비대한 상태 을 UDP에서 보완. )
5. TCP 프로토콜이 기능도 많고 비대하여 더 이상 개선이 힘들다. 최적화를 위하여 UDP 프로토콜을 씀