TCP와 UDP
전송 제어 프로토콜(TCP)과 사용자 데이터그램 프로토콜(UDP)은 모두 전송 계층 프로토콜의 프로토콜입니다. TCP는 연결 지향 프로토콜인 반면 UDP는 UDP/IP이라고 하는 인터넷 프로토콜의 일부입니다. TCP와 달리 신뢰할 수 없고 연결 없는 프로토콜입니다. 이 글에서는 TCP와 UDP의 차이점에 대해 설명합니다.
전송 제어 프로토콜(TCP)이란 무엇입니까?
TCP(Transmission Control Protocol) 는 인터넷 프로토콜의 주요 프로토콜 중 하나입니다. 이는 안정적인 전송 서비스를 제공하는 데 사용되는 애플리케이션 계층과 네트워크 계층 사이에 있습니다. 이는 네트워크를 통해 서로 다른 장치 간의 메시지 교환을 돕는 통신을 위한 연결 지향 프로토콜입니다. 컴퓨터 간에 데이터 패킷을 전송하는 기술을 확립하는 인터넷 프로토콜(IP)은 TCP와 함께 작동합니다.

전송 제어 프로토콜
TCP의 특징
- TCP는 각 세그먼트에 번호를 지정하여 전송되거나 수신되는 세그먼트를 추적합니다.
- 흐름 제어는 발신자가 데이터를 전송하는 속도를 제한합니다. 이는 안정적인 전달을 보장하기 위해 수행됩니다.
- TCP는 안정적인 데이터 전송을 위해 오류 제어 메커니즘을 구현합니다.
- TCP는 네트워크의 혼잡 수준을 고려합니다.
TCP Header 정보
응용 계층으로부터 데이터를 받은 TCP는 헤더를 추가한 후에 이를 IP로 보낸다. 헤더에는 아래 표와 같은 정보가 포함된다.
필 드 | 내 용 | 크 기 |
송수신자의 포트 번호 | TCP로 연결되는 가상 회선 양단의 송수신 프로세스에 할당되는 포트 주소 | 16 |
시퀀스 번호(Sequence Number) | 송신자가 지정하는 순서 번호, 전송되는 바이트 수를 기준으로 증가. SYN = 1 : 초기 시퀀스 번호가 된다. ACK 번호는 이 값에 1을 더한 값. SYN = 0 : 현재 세션의 이 세그먼트 데이터의 최초 바이트 값의 누적 시퀀스 번호 |
32 |
응답 번호(ACK Number) | 수신 프로세스가 제대로 수신한 바이트의 수를 응답하기 위해 사용. | 32 |
데이터 오프셋(Data Offset) | TCP 세그먼트의 시작 위치를 기준으로 데이터의 시작 위치를 표현(TCP 헤더의 크기) | 4 |
예약 필드(Reserved) | 사용을 하지 않지만 나중을 위한 예약 필드이며 0으로 채워져야한다. | 6 |
제어 비트(Flag Bit) | SYN, ACK, FIN 등의 제어 번호 -> 아래 추가 설명 참조 | 6 |
윈도우 크기(Window) | 수신 윈도우의 버퍼 크기를 지정할 때 사용. 0이면 송신 프로세스의 전송 중지 | 16 |
체크섬(Checksum) | TCP 세그먼트에 포함되는 프로토콜 헤더와 데이터에 대한 오류 검출 용도 | 16 |
긴급 위치(Urgent Pointer) | 긴급 데이터를 처리하기 위함, URG 플래그 비트가 지정된 경우에만 유효 | 16 |
제어 비트(Flag Bit) 정보
종 류 | 내 용 |
URG | 긴급 위치를 필드가 유효한지 설정 |
ACK | 응답 번호 필드가 유효한지 설정. 클라이언트가 보낸 최초의 SYN 패킷 이후에 전송되는 모든 패킷은 이 플래그가 설정되어야 한다. 자세한 내용은 아래 추가 설명 참조 |
PSH | 수신 애플리케이션에 버퍼링된 데이터를 상위 계층에 즉시 전달할 때 |
RST | 연결의 리셋이나 유효하지 않은 세그먼트에 대한 응답용 |
SYN | 연결 설정 요구. 동기화 시퀀스 번호. 양쪽이 보낸 최초의 패킷에만 이 플래그가 설정되어 있어야 한다. |
FIN | 더 이상 전송할 데이터가 없을 때 연결 종료 의사 표시 |
TCP의 응용 프로그램
- 월드 와이드 웹(WWW) : 웹사이트를 탐색할 때 TCP는 브라우저와 웹 서버 간의 안정적인 데이터 전송을 보장합니다.
- 이메일 : TCP는 이메일을 보내고 받는 데 사용됩니다. SMTP (Simple Mail Transfer Protocol)와 같은 프로토콜은 서버 간 이메일 전달을 처리합니다.
- 파일 전송 프로토콜(FTP) : FTP는 TCP에 의존하여 대용량 파일을 안전하게 전송합니다. 파일을 업로드하든 다운로드하든 TCP는 데이터 무결성을 보장합니다.
- 보안 셸(SSH) : SSH 세션은 일반적으로 원격 관리에 사용되며 클라이언트와 서버 간의 암호화된 통신을 위해 TCP에 의존합니다.
- 스트리밍 미디어 : Netflix, YouTube, Spotify와 같은 서비스는 TCP를 사용하여 비디오와 음악을 스트리밍합니다. 데이터 세그먼트와 재전송을 관리하여 원활한 재생을 보장합니다.
TCP의 장점
- 송신자와 수신자 사이의 연결을 유지하는 데 안정적입니다.
- 특정 순서로 데이터를 전송하는 역할을 합니다.
- 이 작업은 운영 체제 에 따라 달라지지 않습니다 .
- 다양한 라우팅 프로토콜을 허용하고 지원합니다.
- 수신기 속도에 따라 데이터 속도를 줄일 수 있습니다.
TCP의 단점
- UDP보다 느리고 더 많은 대역폭을 사용합니다.
- 파일 전송을 시작하면 속도가 느려집니다.
- LAN 및 PAN 네트워크 에 적합하지 않습니다 .
- 멀티캐스트나 브로드캐스트를 지원하지 않습니다.
- 페이지의 단일 데이터만 누락되면 전체 페이지를 로드하지 않습니다.
사용자 데이터그램 프로토콜(UDP)이란 무엇입니까?
사용자 데이터그램 프로토콜(UDP)은 전송 계층 프로토콜입니다. UDP는 UDP/IP 제품군이라고 하는 인터넷 프로토콜 제품군의 일부입니다. TCP와 달리 신뢰할 수 없고 연결이 없는 프로토콜입니다. 따라서 데이터 전송 전에 연결을 설정할 필요가 없습니다. UDP는 네트워크에서 낮은 대기 시간과 손실을 허용하는 연결을 설정하는 데 도움이 됩니다. UDP는 프로세스 간 통신을 가능하게 합니다.

사용자 데이터그램 프로토콜
UDP의 특징
- 데이터 크기가 작고 흐름과 오류 제어에 대한 우려가 적은 간단한 요청-응답 통신에 사용됩니다.
- UDP는 패킷 교환을 지원하므로 멀티캐스팅에 적합한 프로토콜입니다 .
- UDP는 RIP(Routing Information Protocol)와 같은 일부 라우팅 업데이트 프로토콜에 사용됩니다 .
- 일반적으로 수신 메시지의 섹션 간에 불균일한 지연을 허용할 수 없는 실시간 애플리케이션에 사용됩니다.
UDP Header 정보
응용 계층으로부터 데이터 받은 UDP도 UDP 헤더를 추가한 후에 이를 IP로 보낸다.
필 드 | 내 용 | 크 기 |
송신자의 포트 번호 | 데이터를 보내는 애플리케이션의 포트 번호 | 16 |
수신자의 포트 번호 | 데이터를 받을 애플리케이션의 포트 번호 | 16 |
데이터의 길이 | UDP 헤더와 데이터의 총 길이 | 16 |
체크섬(Checksum) | 데이터 오류 검사에 사용 | 16 |
UDP의 응용
- 실시간 멀티미디어 스트리밍 : UDP는 오디오 및 비디오 콘텐츠 스트리밍에 이상적입니다. 낮은 지연 시간 특성으로 인해 가끔 데이터 손실이 발생하더라도 원활한 재생이 보장됩니다.
- 온라인 게임 : 많은 온라인 게임은 플레이어 간의 빠른 통신을 위해 UDP에 의존합니다.
- DNS(도메인 이름 시스템) 쿼리 : 장치가 도메인 이름을 조회할 때 (예: "www.example.com"을 IP 주소로 변환) UDP는 이러한 요청을 효율적으로 처리합니다 .
- 네트워크 모니터링 : 네트워크 성능을 모니터링하는 도구는 가볍고 빠른 데이터 교환을 위해 UDP를 사용하는 경우가 많습니다.
- 멀티캐스팅 : UDP는 패킷 스위칭을 지원하므로 데이터를 여러 수신자에게 동시에 보내야 하는 멀티캐스팅 시나리오에 적합합니다.
- 라우팅 업데이트 프로토콜 : RIP(라우팅 정보 프로토콜)와 같은 일부 라우팅 프로토콜은 라우터 간에 라우팅 정보를 교환하기 위해 UDP를 사용합니다.
UDP의 장점
- 데이터를 보내거나 받는 데 아무런 연결이 필요하지 않습니다.
- UDP에서는 브로드캐스트와 멀티캐스트를 사용할 수 있습니다.
- UDP는 다양한 네트워크에서 작동할 수 있습니다.
- UDP에는 라이브 및 실시간 데이터가 있습니다.
- UDP는 데이터의 모든 구성 요소가 완전하지 않은 경우에도 데이터를 전달할 수 있습니다.
UDP의 단점
- 데이터가 성공적으로 전송되었는지 확인할 방법이 없습니다.
- UDP는 데이터 순서를 추적하는 메커니즘을 갖출 수 없습니다.
- UDP는 연결성이 없으므로 데이터 전송이 신뢰할 수 없습니다.
- 충돌이 발생하는 경우, UDP 패킷은 TCP에 비해 라우터 에 의해 삭제됩니다.
- UDP는 오류를 감지한 경우 패킷을 삭제할 수 있습니다.
TCP와 UDP의 차이점
TCP와 UDP의 차이점
전송 제어 프로토콜(TCP) | 사용자 데이터그램 프로토콜(UDP) | |
서비스 유형 | TCP 는 연결 지향 프로토콜입니다. 연결 지향은 통신하는 장치가 데이터를 전송하기 전에 연결을 설정해야 하고 데이터를 전송한 후 연결을 닫아야 함을 의미합니다. | UDP 는 데이터그램 지향 프로토콜입니다. 이는 연결을 열거나, 연결을 유지하거나, 연결을 종료하는 데 오버헤드가 없기 때문입니다. UDP는 브로드캐스트 및 멀티캐스트 유형의 네트워크 전송에 효율적입니다. |
신뢰성 | TCP는 데이터가 대상 라우터에 전달되는 것을 보장하므로 안정적입니다. | UDP에서는 데이터가 목적지에 전달되는 것을 보장할 수 없습니다. |
오류 검사 메커니즘 | TCP는 광범위한 오류 검사 메커니즘을 제공합니다. 이는 흐름 제어와 데이터 확인을 제공하기 때문입니다. | UDP는 체크섬을 사용한 기본적인 오류 검사 메커니즘만 가지고 있습니다 . |
승인 | 확인 세그먼트가 존재합니다. | 확인 부분이 없습니다. |
순서 | 데이터 시퀀싱은 전송 제어 프로토콜(TCP)의 기능입니다. 즉, 패킷은 수신자에게 순서대로 도착합니다. | UDP에는 데이터 시퀀싱이 없습니다. 순서가 필요한 경우 애플리케이션 계층에서 관리해야 합니다. |
속도 | TCP는 UDP보다 비교적 느립니다. | UDP는 TCP보다 빠르고, 간단하며, 효율적입니다. |
재전송 | TCP에서는 손실된 패킷을 재전송할 수 있지만, UDP에서는 불가능합니다. | UDP(사용자 데이터그램 프로토콜)에서는 손실된 패킷을 재전송하지 않습니다. |
헤더 길이 | TCP에는 (20-60)바이트 가변 길이 헤더가 있습니다. | UDP에는 8바이트 고정 길이 헤더가 있습니다. |
무게 | TCP는 중량급입니다. | UDP는 가볍습니다. |
Handshake | SYN, ACK, SYN-ACK 등의 핸드셰이크를 사용합니다. | 연결 없는 프로토콜입니다. 즉, 핸드셰이크가 없습니다. |
브로드캐스트 | TCP는 브로드캐스팅을 지원하지 않습니다. | UDP는 브로드캐스팅을 지원합니다. |
프로토콜 | TCP는 HTTP, HTTPs , FTP , SMTP 및 Telnet 에서 사용됩니다 . | UDP는 DNS , DHCP , TFTP, SNMP , RIP 및 VoIP 에서 사용됩니다 . |
스트림 유형 | TCP 연결은 바이트 스트림입니다. | UDP 연결은 메시지 스트림입니다. |
오버헤드 | 낮지만 UDP보다 높습니다. | 매우 낮음. |
응용 프로그램 | 이 프로토콜은 이메일, 웹 서핑, 군사 임무 등 안전하고 신뢰할 수 있는 의사소통 절차가 필요한 상황에서 주로 활용됩니다. | 이 프로토콜은 VoIP, 게임 스트리밍, 비디오 및 음악 스트리밍 등 빠른 통신이 필요하지만 신뢰성이 문제가 되지 않는 상황에서 사용됩니다. |