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