TCP/UDP

업데이트:

컴퓨터공학 스터디 W4에서 직접 발표한 내용을 정리한 글입니다.

정확한 정보가 부족한 상태에서 작성된 글입니다. 잘못된 정보가 있다면 댓글로 지적 부탁드립니다.

들어가기 전에

TCP와 UDP를 학습하기 전에 TCP/IP 계층과 개념이 혼동되어 간단하게 설명하겠습니다. 자세한 내용은 링크에 잘 설명되어 있으니 참고해주세요.

사실 TCP/IP의 정확한 명칭은 인터넷 프로토콜 스위트입니다. 인터넷 프로토콜 스위트 중 TCP와 IP가 가장 많이 쓰이기 때문에 TCP/IP라고도 불린다고 합니다. 인터넷 프로토콜 스위트는 현재의 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 프로토콜의 모음입니다. OSI 7계층과 헷갈리기 쉽지만 OSI 7계층은 통신 모델의 표준을 제시하는데 활용되고, 인터넷 프로토콜 스위트는 실무적 통신기술을 구현하는데 활용됩니다. 두 모델의 비교는 링크에 잘 설명되어 있습니다.

인터넷 프로토콜 스위트는 아래 사진과 같이 구성되어 있습니다. 글의 주제인 TCP/UDP는 전송계층에서 사용되는 프로토콜입니다. 인터넷 프로토콜 스위트는 교환방식 중 패킷 교환 방식을 사용합니다. 말 그대로 패킷이라는 단위를 사용해 데이터를 교환하는 방식입니다.

image

IP(Internet Protocol)

IP는 인터넷 프로토콜 스위트의 인터넷계층에서 사용되는 프로토콜이며 OSI 7계층에서는 네트워크계층에서 사용됩니다. TCP/IP 기반의 인터넷 망을 통해 데이터의 전달을 담당합니다. 오류제어와 흐름제어 기능이 전혀없기 때문에 비연결성, 비신뢰성이라는 특징을 가집니다. 이를 해결하기 위해서는 전송계층에 의존해야합니다.

패킷 교환 방식

작은 블록의 패킷으로 데이터를 전송하며 데이터를 전송하는 동안만 네트워크 자원을 사용하도록 하는 방법입니다. 접속 방식에 따라 데이터 그램 방식과 가상회선 방식으로 구분됩니다.

TCP(Transmission Control Protocol)

연결형 서비스로 가상 회선 방식을 사용하며 흐름제어, 오류제어, 혼잡제어를 제공하고 데이터 재조립을 제공해 높은 신뢰성을 보장합니다. 프로토콜 데이터 단위(PDU)는 세그먼트입니다. 연속성보다 신뢰성이 중요할 때 사용합니다.

가상 회선 패킷 교환 방식

image

데이터를 전송하기 전에 논리적 연결이 설정되는데, 이를 가상회선이라고 합니다. 각 패킷에는 가상회선 식별 번호가 포함됩니다. 모든 패킷을 전송하면 가상회선이 해제되고, 패킷들은 전송된 순서대로 도착합니다. 라우터가 경로를 설정할 때만 라우팅합니다.

UDP(User Datagram Protocol)

비연결형 서비스로 데이터그램 방식을 사용합니다. 여기서 데이터그램이란 UDP의 프로토콜 데이터 단위(PDU)로 독립적인 관계를 지니는 패킷이라는 뜻입니다. MTU(MAximum Transimission Unit) 크기를 초과할 경우에는 단편화되어 전송됩니다. 재조립은 IP 헤더의 identification 필드를 이용해 이루어집니다. 흐름제어, 오류제어, 혼잡제어를 제공하지 않습니다.

헤더의 체크섬 필드를 통해 최소한의 오류만 검출하기 때문에 신뢰성이 낮습니다. 신뢰성보다 연속성이 중요할 때 사용합니다. 신뢰성을 보장하기 위해서는 응용계층에 의존해야 합니다.

인터넷 프로토콜 스위트를 TCP/IP라고도 부를만큼 TCP는 범용적으로 사용되는데 UDP는 어느 상황에 사용될까요? UDP는 다음의 상황에서 훌륭하게 활약할 수 있습니다.

  • 실시간 데이터를 전송할 때
  • 여러 상대에게 같은 내용의 데이터를 전송할 때
  • 데이터 전송시 신뢰성이 필요하지 않은 소량의 데이터를 전송할 때

데이터그램 패킷 교환 방식

image

데이터를 전송하기 전에 논리적 연결이 설정되지 않으며 패킷이 독립적으로 전송됩니다. 패킷을 수신한 라우터는 최적의 경로를 선택하여 패킷을 전송하는데 하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있습니다. 따라서 송신 측에서 전송한 순서와 수신 측에 도착한 순서가 다를 수 있습니다.

비교

공통점

  • 전송계층에서 사용되는 프로토콜입니다.
  • 포트 번호를 이용하여 주소를 지정합니다.
  • 데이터 오류 검사를 위한 체크섬 필드가 존재합니다.

차이점

  TCP UDP
연결 방식 연결형 비연결형
PDU 세그먼트 데이터그램
패킷 교환 방식 가상 회선 방식 데이터그램 방식
전송 순서 보장함 바뀔 수 있음
수신 여부 확인 확인함 확인하지 않음
통신 방식 1:1 1:1 또는 1:N 또는 N:N
신뢰성 높다 낮다
속도 느리다 빠르다
헤더의 크기 20바이트 8바이트
용도 신뢰성이 필요한 데이터를 전송 실시간 데이터 전송, 브로드캐스트, 멀티캐스트, 소량의 데이터 빈번히 전송

출처

위키백과

https://madplay.github.io/post/network-tcp-udp-tcpip

https://jihwan4862.tistory.com/27

https://www.stevenjlee.net/2020/02/09/이해하기-osi-7계층-그리고-tcp-ip-4계층/

https://goitgo.tistory.com/25

https://jihwan4862.tistory.com/27

https://velog.io/@doondoony/ip101

https://mangkyu.tistory.com/15

https://woovictory.github.io/2018/12/28/Network-Packet-Switching-Method/

https://mr-zero.tistory.com/32

https://leoheo.github.io/tcp-udp/

댓글남기기