TCP, UDP

uuuouuo·2022년 8월 8일
0

📖 TCP와 UDP


◾ TCP와 UDP는 왜 나오게 됐는가?

  1. IP의 역할은 Host to Host (장치 to 장치)만을 지원함. 장치에서 장치로 이동은 IP로 해결되지만, 하나의 장비안에서 수많은 프로그램들이 통신을 할 경우에는 IP만으로는 한계가 있음.

  2. 또한, IP에서 오류가 발생한다면 ICMP에서 알려줌. 하지만 ICMP는 알려주기만 할 뿐 대처를 못하기 때문에 IP보다 위에서 처리를 해줘야 함.

  • 1번을 해결하기 위하여 포트 번호가 나오게 됐고, 2번을 해결하기 위해 상위 프로토콜인 TCP와 UDP가 나오게 되었음.

ICMP : 인터넷 제어 메시지 프로토콜로 네트워크 컴퓨터 위에서 돌아가는 운영체제에서 오류 메시지를 전송받는데 주로 쓰임

💬 UDP (User Datagram Protocol, 사용자 데이터그램 프로토콜)


  • 데이터를 데이터그램 단위로 처리하는 프로토콜
  • 비연결형, 신뢰성 없는 전송 프로토콜
  • 데이터그램 단위로 쪼개면서 전송을 해야하기 때문에 전송 계층
  • UDP가 행하는 것은 포트들을 사용하여 IP 프로토콜에 인터페이스를 제공하는 것

장점

  • 데이터의 신속성
    • 데이터의 처리가 TCP보다 빠름
  • 코드가 간단할 뿐만 아니라 TCP 처럼 초기설정(initial setup)에서 요구되는 프로토콜보다 적은 메시지가 요구됨

◾ DNS

  • UDP를 사용한 것들에는 DNS가 있음
  • 어떤 호스트 네임의 IP 주소를 찾을 필요가 있는 프로그램은, DNS 서버로 호스트 네임을 포함한 UDP 패킷을 보냄
  • 이 서버는 호스트의 IP 주소를 포함한 UDP 패킷으로 응답
  • 사전에 설정이 필요하지 않으며 그 후에 해제가 필요하지 않음

DNS(Domain Name Service)에서 UDP를 사용하는 이유

  • Request의 양이 작음
    • UDP Request에 담길 수 있음
  • 3 way handshaking으로 연결을 유지할 필요가 없다. (오버헤드 발생)
  • Request에 대한 손실은 Application Layer에서 제어가 가능
  • DNS : port 53번
  • But, TCP를 사용할 때가 있다! 크기가 512(UDP 제한)이 넘을 때, TCP를 사용해야한다.

💬 TCP(Transmission Control Protocol, 전송제어 프로토콜)


  • 대부분의 인터넷 응용 분야들은 신뢰성 과 순차적인 전달 을 필요
  • UDP 로는 이를 만족시킬 수 없으므로 다른 프로토콜이 필요하여 탄생한 것이 TCP
  • 연결형, 신뢰성 있는 전송 프로토콜
  • 오류제어, 흐름제어, 혼잡제어 제공

💬 TCP와 UDP의 오류해결 방법


◾ TCP

  • 데이터의 분실, 중복, 순서가 뒤바뀜 등을 자동으로 보정해줘서 송수신 데이터의 정확한 전달을 할 수 있도록 해줌

◾ UDP

  • IP가 제공하는 정도의 수준만을 제공하는 간단한 IP 상위 계층의 프로토콜
  • 흐름제어, 오류제어 또는 손상된 세그먼트의 수신에 대한 재전송을 하지 않음
    • 이 모두가 사용자 프로세스의 몫
  • TCP와는 다르게 에러가 날 수도 있고, 재전송이나 순서가 뒤바뀔 수도 있어서 이 경우, 어플리케이션에서 처리하는 번거로움이 존재

0개의 댓글