[Network] TCP/UDP 알아보기

JOOHAN LEE·2021년 6월 3일
0
post-thumbnail

면접 시 자주 물어보는 질문 중 하나인 TCP/UDP의 차이에 대해서 알아보고자 한다.

먼저, TCPUDP는 OSI 7계층(layer-model for OSI) 중 전송계층에서 사용되는 프로토콜이다.

그렇다면 전송계층이란 무엇일까?

전송계층(Transport layer)은 계층 구조의 네트워크 구성요소와 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층으로, 연결 지향 전송 방식을 사용하는 TCP(전송 제어 프로토콜)와 보다 단순한 전송에 사용되는 UDP(사용자 데이터그램 프로토콜)이 대표적이다.

즉, 전송계층은 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구, 신뢰성, 흐름 제어 등을 담당하는 계층이다.

TCP와 UDP

TCP는 Transmission Control Protocol의 약자로서, 한국말로 전송 제어 프로토콜이라고 부른다. UDP는 User Datagram Protocol의 약자로서, 사용자 데이터그램 프로토콜이라고 한다.

그럼 두 프로토콜의 공통점과 차이점에 대해 알아보자.

TCP와 UDP 한눈에 보기

TCPUDP
Connection-oriented protocol
(연결지향형 프로토콜)
Connection-less protocol
(비 연결지향형 프로토콜)
Connection by byte stream
(바이트 스트림을 통한 연결)
Connection by message stream
(메세지 스트림을 통한 연결)
Congestion / Flow control
(혼잡제어, 흐름제어)
NO Congestion / Flow control
(혼잡제어와 흐름제어 지원 X)
Ordered, Lower speed
(순서 보장, 상대적으로 느림)
Not ordered, Higer speed
(순서 보장되지 않음, 상대적으로 빠름)
Reliable data transmission
(신뢰성 있는 데이터 전송 - 안정적)
Unreliable data transmission
(데이터 전송 보장 X)
TCP packet : Segment
(세그먼트 TCP 패킷)
UDP packet : Datagram
(데이터그램 UDP 패킷)
HTTP, Email, File transfer
에서 사용
DNS, Broadcasting
(도메인, 실시간 동영상 서비스에서 사용)




[TCP]
장치들 사이에 논리적인 접속을 성립하기 위하여 연결을 설정하여 신뢰성을 보장하는 연결형 서비스. (헤더정보 多)

[UDP]
일방적인 UDP는 수신자가 데이터를 받는지 마는지 관심이 없다. 즉, 신뢰성을 보장해주지 않지만 간단하고 속도가 빠른 것이 특징. (헤더정보 少)

공통점

TCP(Transfer Control Protocol) | UDP(User Datagram Protocol)
포트 번호를 이용하여 주소를 지정
데이터 오류 검사를 위한 체크섬 존재

차이점

TCP(Transfer Control Protocol)UDP(User Datagram Protocol)
연결이 성공해야 통신 가능(연결형 프로토콜)비연결형 프로토콜(연결 없이 통신이 가능)
데이터의 경계를 구분하지 않음(Byte-Stream Service)데이터의 경계를 구분함(Datagram Service)
신뢰성 있는 데이터 전송(데이터의 재전송 존재)비신뢰성 있는 데이터 전송(데이터의 재전송 없음)
일 대 일(Unicast) 통신일 대 일, 일 대 다(Broadcast), 다 대 다(Multicast) 통신





<참고>
https://velog.io/@hidaehyunlee/TCP-%EC%99%80-UDP-%EC%9D%98-%EC%B0%A8%EC%9D%B4#1-%EC%A0%84%EC%86%A1%EA%B3%84%EC%B8%B5

https://ko.wikipedia.org/wiki/%EC%A0%84%EC%86%A1_%EA%B3%84%EC%B8%B5

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

profile
IT Traveller

0개의 댓글