MyCloud

TCP와 UDP 비교 정리 본문

Knowledge/Network

TCP와 UDP 비교 정리

Swalloow 2016. 6. 9. 04:11



전송계층 프로토콜



TCP와 UDP 프로토콜은 모두 전송계층에서 동작하는 프로토콜입니다.

TCP는 Transmission Control Protocol의 약자이고, UDP는 User Datagram Protocol의 약자입니다.

두 프로토콜은 모두 패킷을 한 컴퓨터에서 다른 컴퓨터로 전달해주는 IP 프로토콜을 기반으로 구현되어 있지만,

서로 다른 특징을 가지고 있습니다. 지금부터 두 프로토콜을 비교 정리해보겠습니다.








TCP - Transmission Control Protocol


TCP는 신뢰성있는 데이터 전송을 지원하는 연결지향형 프로토콜입니다.

여기에서 어떻게 신뢰성있는 데이터 전송이 가능할까? 라는 의문이 생길 수 있습니다.

TCP는 패킷을 성공적으로 전송하면 Acknowledgement(ACK) 라는 신호를 날립니다.

만일 ACK 신호가 제 시간에 도착하지 않으면 Timeout이 발생하여,

패킷 손실이 발생한 패킷에 대해 다시 전송해줍니다.



연결지향형인 TCP는 3-way handshaking이라는 과정을 통해 연결 후 통신을 시작합니다.


또한, 흐름제어와 혼잡제어를 지원하며 데이터의 순서를 보장합니다.

흐름제어란, 보내는 측과 받는 측의 데이터 처리속도 차이를 조절해주는 것을 말하며,

혼잡제어란, 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지하는 것을 말합니다.


하지만 TCP는 UDP에 비해 속도가 느리다는 단점이 있습니다.

따라서, 대부분의 웹 HTTP 통신, 이메일, 파일전송에 사용됩니다.








UDP - User Datagram Protocol


UDP는 전송계층의 비연결형 프로토콜입니다.

따라서 TCP와 달리 연결 설정이 없으며,

혼잡제어를 하지 않기 때문에 TCP보다 빠르다는 장점이 있습니다.

하지만 데이터 전송에 대한 보장을 하지 않기 때문에 패킷 손실이 발생할 수 있습니다.

UDP는 이러한 특징때문에 DNS, 멀티미디어에서 사용됩니다.


UDP는 헤더에 있는 Checksum 필드를 통해 최소한의 오류는 검출합니다.

최근에는 속도가 빠른 UDP에 신뢰성있는 데이터 전송을 추가하여 서버를 구현하기도 합니다.









TCP와 UDP 비교







Comments