Computer Engineering/네트워크(Network)

[Network] TCP와 UDP 개념 정리 및 특징

잇트루 2022. 10. 3. 04:00
반응형

TCP와 UDP

TCP와 UDP는 OSI 7 계층에서 전송 계층(4 계층)에 해당하는 프로토콜로 IP 프로토콜의 계층인 네트워크 계층의 상위 계층에서 동작한다.

TCP와 UDP는 네트워크 계층에서 동작하는 IP와 응용 계층에서 동작하는 애플리케이션(HTTP, FTP, …)을 중개하는 역할을 한다.

 

TCP와 UDP는 똑같이 중개하는 역할을 하지만 각각의 서로 다른 특징이 있다.

구분 TCP UDP
서비스 타입 연결 지향적 프로토콜 비연결성 프로토콜
신뢰성 신뢰할 수 있는 데이터의 전송을 보장 신뢰성 보장이 안되므로 전송에 필요한 신뢰성을 제공해야 함
순서 보장 승인 및 순차적인 데이터 전송을 보장 전송 승인 및 순서를 보장하지 않음
속도 많은 오버헤드가 필요로 하며 느림 오버헤드가 적으며 빠르고 효율적임

TCP는 통신의 신뢰성을 높이는 기능이 구현되어 있다.

UDP는 신뢰성을 높이는 기능이 없는 대신 빠른 속도와 효율성을 제공한다.

 

따라서 데이터의 신뢰성을 필요로 하는 애플리케이션은 TCP로, 빠른 속도나 실시간 통신이 중요한 애플리케이션의 경우 UDP로 구분하여 사용한다.

 

특히, 웹 애플리케이션에서 많이 사용하는 HTTP의 경우 모든 데이터를 제대로 송수신이 가능해야 하는 특성이 있어, TCP를 사용한다.

 

TCP 3방향 교신기법 (TCP 3-way handshake)

TCP는 3방향 교신기법을 사용하여 연결을 설정한다. 전송 측과 수신 측 양측 모두 일련번호를 초기화시키고 데이터 전송 대기상태로 만든 이후 일련번호는 교신 과정 동안 전송하고 응답하는 구조이다.

각각의 연결 장치는 일련번호를 랜덤으로 설정하고, 전송하는 데이터를 확인하는 데 사용한다.

SYN : 연결 요청 세그먼트

ACK : SYN에 대한 응답 세그먼트

 

연결 설정

  1. SYN : sender가 receiver와 연결 설정을 위해 세그먼트를 랜덤으로 설정된 SYN을 보낸다.
  2. SYN / ACK : receiver는 SYN 요청을 바탕으로 SYN/ACK 신호 세트를 응답한다.
  3. ACK : sender는 receiver가 보낸 SYN/ACK 신호 세트를 받았다는 의미인 ACK를 receiver에게 전송한다.

위 과정을 통해 sender와 receiver 양쪽에서 서로 연결되었음을 알 수 있다. 이후 실제 데이터 전송이 이루어진다.

 

연결 해제

  1. FIN : sender는 receiver에게 연결 해제를 위한 FIN을 보낸다.
  2. ACK : FIN 요청을 받은 receiver는 이에 대한 응답으로 sender에게 ACK를 응답한다.
  3. FIN : 이후 receiver도 연결을 해제하기 위해 sender에게 FIN을 보낸다.
  4. ACK : sender는 receiver에게 받은 FIN에 대한 응답으로 ACK를 응답한다.

연결이 해제되면 TCP는 더 이상 해당 방향으로는 데이터를 받아들이지 않지만, ACK 세그먼트는 연결이 해제된 후에도 전송할 수 있다.

 

TCP의 제어 기법

흐름제어

흐름 제어란 수신 측으로부터 ACK를 받기 전에 전송 측에서 전송하는 데이터의 양을 조절하는 기능을 말한다.

TCP에서는 흐름 제어를 위해 슬라이딩 윈도우 기법을 사용한다.

 

슬라이딩 윈도우

윈도우란 하나의 호스트가 데이터 전송을 위해 전송 측 혹은 수신 측 양쪽에서 사용하는 버퍼를 말하며, 버퍼에 들어있는 데이터는 ACK를 받지 않아도 즉시 전송이 가능한 데이터이다. 즉, 윈도우 크기만큼은 ACK를 수신하지 않아도 즉시 데이터를 전송할 수 있게 된다.

 

따라서 슬라이딩 윈도우 메커니즘은 왼쪽 경계와 오른쪽 경계를 고려하여 동작한다. TCP의 슬라이딩 윈도우 기법은 바이트를 기본 단위로 하며, 윈도우의 동작에는 열림, 닫힘, 축소 동작이 있다. 해당 동작들은 수신 측의 제어에 따라 동작한다.

 

오류제어

TCP는 신뢰성 있는 데이터 전송을 위해 오류제어 기법을 사용한다. 오류제어 기법은 전송된 세그먼트가 손실되었거나, 순서가 어긋나는 경우, 중복되어 전송하는 경우 등에 대한 해결 방안을 제시한다.

TCP의 오류제어 기법은 기본적으로 세그먼트의 재전송 기법에 기초하여 도중 세그먼트가 손실되거나 문제가 발생하면, 동일한 세그먼트를 다시 전송하는 방법을 사용한다.

 

혼잡 제어

혼잡 제어는 네트워크로 유입되는 데이터 트래픽의 양이 네트워크 용량을 초과하지 않도록 유지시키는 제어 기법이다. 데이터 총량이 네트워크가 처리할 수 있는 허용량을 초과한다면, 네트워크는 혼잡 상태로 들어가게 된다.

이를 방지하기 위해 느린 출발 알고리즘과 혼잡 회피 알고리즘을 기반으로 하여 혼잡 제어를 수행한다.

반응형