TCP와 UDP는 모두 IP의 한계를 보완해서 데이터 전송을 위한 프로토콜이다. 먼저 TCP에 대해 알아보자.
TCP 전송 제어 프로토콜
TCP(Transmission Control Protocol)는 IP의 한계를 보완해서 연결 지향적이며 신뢰할 수 있는 데이터 전송을 가능하게 하는 프로토콜이다.
TCP는 클라이언트와 서버가 데이터를 주고 받기 전에 먼저 ‘연결’을 확인한다. 그 과정은 다음과 같다. 먼저 클라이언트 컴퓨터에서 SYN라는 연결 요청 메시지를 보낸다. 그러면 서버 컴퓨터에서는 ACK라는 연결 수락 메시지를 보내는데, 이때 자신도 SYN 메시지를 클라이언트에 보내게 된다. 마지막으로 클라이언트 컴퓨터는 ACK메시지를 서버 컴퓨터에 보내게 되고 이를 통해 연결이 완성된다.
이후 메시지를 보내게 되는데, 요즘은 최적화가 많이 되어 클라이언트 컴퓨터에서 서버컴퓨터로 ACK 메시지와 함께 데이터를 보낸다고 한다.
또한 TCP는 상대 컴퓨터가 데이터를 잘 받았는지 못 받았는지도 알 수 있도록 데이터를 받은 컴퓨터가 데이터를 잘 받았다는 응답을 할 수 있도록 한다. 그리고 TCP는 패킷들의 순서도 보장하는데, 이는 IP 패킷 속에 TCP가 새로운 패킷 정보를 넣어주기 때문에 가능하다. 이를 TCP/IP 패킷이라고 하는데, 여기에는 순서 정보와 PORT 정보가 들어 있다.
UDP 사용자 데이터그램 프로토콜
UDP(User Datagram Protocol)는 TCP와 마찬가지로 데이터 전송 프로토콜이지만, 추가 기능이 거의 없다시피 하다. IP와 기능이 거의 같다. 데이터가 맞는지 검증하는 체크섬 기능과, PORT 기능만 추가되어있다.
대신 TCP는 양이 많고, 이미 전세계에서 다 사용하고 있어서 최적화가 힘들다는 문제가 있지만, UDP는 속도가 빠르고 최적화가 가능하다는 점에서 최근 주목받고 있다.
No Responses