Search
Duplicate
📦

UDP, TCP

Category
S/W 엔지니어
Tags
UDP
TCP
Created time
2008/05/09

UDP(User Datagram Protocol)

L4에서 제공해야할 최소한의 서비스, 즉 프로세스 대 프로세스 데이터 전달과 오류 검출만을 제공하는 비연결형 전송 프로토콜
UDP header 구조(8byte)

특징

비연결형: message 지향 특성
최소 제공 서비스: 한의 전송 계층 서비스
프로세스 대 프로세스 데이터 전달: 포트 - 프로세스 매핑, 두 개의 포트 정보(근원지, 목적지)를 통해 소켓 식별
checksum 기반 오류 검출: 헤더에 오류 검출 필드를 포함(checksum)함으로 무결성 검사
적은 packet overhead: 연결 상태가 없으므로. Segment 당 8byte.
사용 프로토콜: DNS, NFS, SNMP, RIP 등

TCP(transmission control protocol)

UDP가 제공하는 서비스에 신뢰성 있는 데이터 전달과 흐름 제어 및 혼잡 제어를 지원하는 L4의 연결 지향형 프로토콜

특징

연결 지향형: 통신 시작 - 3 way handshake, 통신 종료 - 4 way handshake
점대점(point to point): 단일 sender, 단일 receiver
Socket 식별: 두 개의 port 정보 및 두 개의 IP 정보를 통해(Source, Destination)
buffer 존재: Sender 및 receiver에 buffer 존재
Error Control: Checksum, Timer, ARQ(GBN/SR 혼합형 ARQ 사용) 사용
Flow Control: 수신자 buffer overflow 방지용. Sliding Window(ARQ의 GBN/SR) 사용
Congestion Control: Network 내의 과도한 패킷 개수 방지용. Window 크기 조절은 Slow Start 및 혼잡 윈도우와 수신 측 윈도우 크기 중 작은 값을 사용
Full duplex data: 동일 connection 내 양방향 data flow. Piggy packing: 단일 packet 내 요청/응답 모두 포함. MSS(Maximum Segment Size) 존재
사용 프로토콜: HTTP, FTP, SMTP, Telnet 등

TCP vs UDP

구분
TCP
UDP
연결 형태
연결 지향
메시지 지향
데이터 순서
순서 유지
순서 유지하지 않음
데이터 손실
손실 없음
손실 가능
흐름/혼잡/오류 제어
GBN/SR 혼합형 ARQ 사용
오류 제어만 가능
패킷 오버헤드
20byte
8byte
사용 예
대부분의 L7 프로토콜(HTTP, FTP, SMTP, Telnet 등)
DNS, NFS, SNMP, RIP 등

References

Computer Networking 3판. James F. Kurose, Keith W.Ross