본문 바로가기

Computer Science/Network

[Network] TCP, UDP

반응형

TCP UDP 네트워크 계층에서 전송 계층, transport layer 사용되는 프로토콜이다. 전송 계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층으로 데이터의 전달을 담당한다. 이때 데이터의 전달에 사용되는 프로토콜이 TCP, UDP 이다.

 

 

1. TCP (Transmission Control Protocol)

 

TCP, 전송 제어 프로토콜은 internet protocol suite 핵심 프로토콜 하나로, IP (Internet Protocol) 함께 TCP/IP 라는 명칭으로도 사용된다. IP 데이터의 배달을 처리한다면 TCP 패킷을 추적 관리하게 된다.

 

TCP 근거리 통신망이나 인트라넷, 인터넷에 사용되어 네트워크 간의 데이터 전송을 안정적이고, 순서대로, 에러없이 통신할 있도록 한다. TCP 연결형 서비스를 지원하는 프로토콜로 11 통신으로 이루어진다.

 

TCP 3-way handshake 과정을 통해 발신지와 수신지를 연결하여 11 통신이 이루어지도록 하고, 해제시에는 4-way handshake 과정을 통해 연결을 해제한다.

 

TCP 특징

 

  • 연결형 서비스로 발신지와 수신지를 연결한 논리적 경로를 배정하는 가상 회선 방식을 제공한다.
  • segment 처리: 바이트들을 모아서 세그먼트화 하고 이에 TCP 헤더를 붙이고 순서 제어를 한다.
  • flow-control: 상대방의 buffer overflow 막기 위해 데이터 처리 속도가 조절된다.
  • congestion-control: 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지한다.
  • full-duplex: 전송이 향방향으로 일어날 있다.
  • point to point: 통신 연결이 정확이 2개의 종단점을 가지고 있다.
  • 위의 특징들과 같이 다양한 기능을 통해 높은 신뢰성을 보장하는 반면, 속도는 UDP보다 느리다.

3-way handshaking

 

  • SYN: 클라이언트는 서버에 접속을 요청하는 SYN(A) 패킷을 보낸다.
  • SYN-ACK: 서버는 클라이언트의 요청인 SYN(A)을 받고 클라이언트에게 요청을 수락한다는 ACK(A+1) SYN(B)가 설정된 패킷을 보낸다.
  • ACK: 클라이언트는 서버의 수락 응답인 ACK(A+1) SYN(B) 패킷을 받고 ACK(B+1) 서버로 보내며 established 상태가 된다.

4-way handshaking

 

  • FIN: 클라이언트는 연결을 종료하겠다는 FIN 패킷을 전송한다.
  • ACK: 서버는 FIN을 받고 ACK을 보낸다. 미리 전송되었던 데이터를 모두 받을 까지 서버는 잠시 CLOSE_WAIT 상태로 머무른다.
  • FIN: 시간이 지난 후 서버는 FIN 패킷을 보낸다.
  • ACK: 클라이언트는 FIN을 받고 ACK을 보내고 잠시 기다린다. 서버는 ACK를 받고 CLOSED되며 클라이언트 또한

 

2. UDP (User Datagram Protocol)

 

UDP, 사용자 데이터그램 프로토콜은 데이터를 데이터그램 단위로 처리하는 프로토콜이다. 데이터그램은 각각 독립적인 관계를 지니는 패킷이라는 뜻이다. UDP TCP 달리 비연결형 프로토콜로 연결을 위해 할당되는 논리적인 경로가 없다. 그렇기 때문에 패킷은 다른 경로로 전송되고, 각각의 패킷은 독립적인 관계를 지니게 된다.

 

UDP 비연결형 프로토콜이기 때문에 3-way handshake 같은 연결 설정 없이 전송이 이루어진다. 그렇기 때문에 11 아닌 NM 연결도 가능하다. 또한 신뢰성 관련하여서도 UDP 헤더의 checksum 이용하여 최소한의 요류만 검출하기 때문에 신뢰성은 낮지만 속도는 빠르다. 그렇기 때문에 신뢰성보다 연속성이 중요한 스트리밍에 자주 사용된다.

 

UDP 특징

 

  • 비연결형 서비스로 데이터그램 방식을 제공한다.
  • 데이터 전송을 위해 연결 설정, 해제 등의 신호 절차를 거치지 않는다.
  • UDP 헤더의 checksum 필드를 통해 최소한의 오류만 검출한다.
  • 신뢰성이 낮은 반면에 TCP보다 속도가 빠르다.
  • 소켓 대신 IP 기반으로 데이터를 전송한다.
반응형