3. 비연결형 전송 : UDP
비연결형이라는 말은 UDP 수신자와 발신자 사이의 handshaking이 없고, source와 관계 없이 각 세그먼트를 독립적으로 처리된다.
네트워크 계층의 host 전달 서비스에 추가 서비스가 없고, "beest effort" 서비스를 하므로 UDP 세그먼트는 패킷 로스가 발생하거나 순서가 바뀌어 들어올 수 있다.
UDP를 통한 안정적 전달
데이터 무결성이 중요한 경우 UDP를 사용하기도한다.
어플리케이션 계층에서 메세지가 안정적으로 들어왔는지 검사하고, 오류 발생 시 복구할 수 있는 방법을 보유하고있기 때문에 UDP를 택하기도한다.
UDP 장점
connection을 안하기 때문에, 연결 상태를 송/수신자 모두 저장하지 않는다.
그리고 헤더 사이즈가 작다. -> traffic overhead 작다
혼잡 제어가 없으므로 데이터 생성 속도로 데이터를 밀어넣을 수 있다.
UDP 세그먼트 헤더
세그먼트들은 (source port, dest port, length, checksum) + 어플리케이션 데이터(playload)로 구성된다.
length : 헤더를 포함한 UDP 세그먼트 길이 (byte)
checksum :
UDP checksum
: 전송된 세그먼트로부터 오류 감지하는 역할을 한다.
전송측
헤더 필드 포함 세그먼트를 16bit int로 취급하여 세그먼트들을 더한다(sum). sum을 1의 보수(Ones' complement)를 취한것을 checksum필드에 넣는다.
수신측
전송측과 동일한 방식으로 받은 세그먼트의 체크섬을 계산한다. 체크섬이 전송측에서 만든 체크섬과 동일한지 비교한다.
일치하지 않으면 전송하는 동안 bit flipping과 같은 전송 오류가 발생했다고 보고,
일치하면 성공적으로 전송되었다고 본다.
UDP는 데이터 전송에 오류 여부를 확인하는 것까지 한다. (그 이후는 어프리케이션이 어떻게 처리할 지 결정)
checksum방식에는 한계가있다.
전송 오류가 발생했는데 우연히 checksum이 동일하게 나올 수 있다.
'CS > 네트워크' 카테고리의 다른 글
[네트워크] 전송 계층 - TCP : segment 구조 (0) | 2025.01.12 |
---|---|
[네트워크] 전송 계층 - 신뢰성 있는 데이터 전송의 5 원리 (0) | 2025.01.12 |
[네트워크] 전송 계층 Transport Layer (0) | 2025.01.02 |
[네트워크] 응용 계층 Application Layer : TCP와 UDP 소켓 프로그래밍 (0) | 2024.12.11 |
[네트워크] 응용 계층 Application Layer : P2P (0) | 2024.12.11 |