Network

[Network] TCP/UDP 개념 및 정리

pongic 2022. 10. 1. 14:56
반응형

TCP / UDP란?

TCP / UDP는 OSI 표준모델과 TCP/IP 모델의 전송 계층에서 사용되는 프로토콜이다. TCP/IP 4계층 모델을 기준으로 IP 프로토콜의 계층인 인터넷 계층의 상위에서 동작을 한다. 또한 2계층에서 동작하는 IP와 4계층에서 동작하는 애플리케이션을 중개하는 역할을 한다.

 

TCP와 UDP는 포트 번호를 이용하여 주소를 지정하는것과 데이터 오류 검사를 위한 체크섬이 존재하는 두 가지 공통점이 있지만 TCP는 통신 신뢰성을 높이는 기능이 구현되어 있고 UDP는 신뢰성을 높이는 기능은 없지만 높은 속도와 효율성을 제공한다.

 

※ 자주 사용되는 포트 번호

Port No Protocol Name Transport Protocol description
80 HTTP TCP 웹서버 접속
443 HTTPS TCP 웹서버 접속(SSL)
110 POP3 TCP 메일 읽기
25 SMTP TCP 메일 서버간 메일 전송
22 SSH TCP 컴퓨터 원격 로그인
53 DNS UDP DNS 질의
123 NTP TCP 시간 동기화

이미 정해진 포트 번호라도, 필요에 따라 자유롭게 사용할 수 있다. 잘 알려진 포트의 경우 URI 등에 명시하지 않지만, 그 외의 잘 알려지지 않은 포트(:8080과 같은 임시 포트)는 반드시 포함해야 한다.

 

TCP란?

TCP((Transmission Control Protocol)는 전송 제어 프로토콜로 연결 지향적 프로토콜이다. 인터넷 프로토콜 스위트(IP)의 핵심 프로토콜 중 하나로 IP와 함께 TCP/IP라는 명칭으로도 불린다.

근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러 없이 교환할 수 있게 한다. 웹 브라우저들이 월드 와이드 웹(WWW)에서 서버에 연결할 때 사용되며, 이메일 전송이나 파일 전송에도 사용된다. TCP는 3-way handshaking 방식을 통해 네트워크를 연결한다.

 

TCP의 특징

  • 연결형 서비스로 연결이 성공해야 통신이 가능하다. 연결할 때는 3-way handshaking 방식으로 연결을 하고 4-way handshaking 방식으로 연결을 해제한다.
  • 데이터의 전송 순서를 보장한다. 
  • 신뢰성있는 데이터를 전송한다.
  • 데이터의 흐름 제어, 혼잡 제어
  • 전이중(Full-Duplex), 점대점(Point to Point) 서비스

 

3-way handshake

3-way handshake 과정

  1. SYN : 처음으로 Sender는 Receiver와 연결 설정을 위해서, segement를 랜덤으로 설정된 SYN(Synchronize Sequence Number)와 함께 보낸다. 이 요청은 Receiver에게 Sender가 통신을 시작하고 싶다고 알리는 것이다.
  2. SYN / ASK: Receiver는 받은 요청을 바탕으로 SYN/ACK 신호 세트를 응답한다. Acknowledgement(ACK) 응답으로 보내는 segment가 유효한 SYN요청을 받았는지를 의미한다.
  3. ACK : Sender는 받은 ACK를 Receiver에게 전송을 하면서, 신뢰성 있는 연결이 성립되었다는 사실을 Sender와 Receiver 양쪽에서 알 수 있고, 실제 데이터 전송이 시작되게 된다.

 

UDP란?

UDP(User Datagram Protocol)는 전송계층의 비연결 지향적 프로토콜이다. 비연결 지향적은 데이터를 주고받을 때 연결 절차를 거치지 않고 발신자가 일방적으로 데이터를 발신하는 방식을 의미한다. UDP 전송 방식은 너무 단순해서 신뢰성이 낮고, 데이터그램 도착 순서가 바뀌거나, 중복되거나, 심지어는 통보 없이 누락시키기도 한다. UDP를 사용하는 네트워크 애플리케이션에는 DNS, IPTV, 음성 인터넷 프로토콜(VoIP), TFTP, 온라인 게임 등이 있다.

 

 

UDP의 특징

  • 비연결 지향적 서비스로 연결 없이 통신이 가능하다.
  • 정보를 주고 받을 때 정보를 보내거나 받는다는 신호 절차를 거치지 않는다.
  • 신뢰성 없는 데이터를 전송한다.

 

TCP와 UDP 공통점

  • 포트 번호를 이용하여 주소를 지정한다.
  • 데이터 오류 검사를 위한 체크섬이 존재한다.

 

TCP와 UDP의 차이점

  TCP((Transmission Control Protocol) UDP(User Datagram Protocol)
서비스 타입 연결 지향적 비연결 지향적 (데이터그램 지향적)
신뢰성 높다. 낮다.
순서 보장 순서 보장된다. 순서가 보장되지 않는다. 패킷 순서를 보장하고 싶다면 애플리케이션 레이어에서 관리되어야 한다.
속도 UDP와 비교해 느리다. TCP와 비교해 빠르고, 단순하며 더 효육적인 속도를 가지고 있다.
통신 방식 1:1 통신만 가능(Unicast) 1:1(Unicast) / 1:N(Broadcast) / N:N(Multicast) 통신 모두 가능

 

반응형