비연결형 전송수단: UDP
아까 다중화를 할때 눈치를 챘으면 비연결형 역다중화에서 UDP를 사용한 것을 알수 있다. 그렇다 UDP는 비연결형 전송 수단인 것!
UDP:
- 날 것의, 깔끔하고, 야무진 인터넷 통신 프로토콜이다.
- 효율성에 모든 것을 걸었다 = 중간에 세스먼트를 잃어버림, 응용계층한테 말안하고 보냄당할 수 있다. (일단 보냈어~빨랐잖아 한잔해~)
- 헤더 크기 작음
- 혼잡 제어 없음 (보내기만 하니까)
비연결성:
UDP 발신자, 수신자 간 hanshake? 그런거 없음 연결할 필요 없이 일단 보냄
각 UDP 세그먼트는 다른 세그먼트와 독립적으로 처리된다.
UDP 사용처:
- 스트리밍 멀티미디어 앱(손실 허용, 속도 민감)
- DNS
- SNMP
UDP를 통한 안정적인 전송:
애플리케이션 계층에서 안정성 추가
애플리케이션별 오류 복구!
UDP 체크섬
목표: 변환된 세그먼트의 "에러(비트가 뒤바뀜)" 탐지
발신자:
- 헤더 필드를 포함한 세그먼트 내용을 16비트 정수 시퀀스로 처리한다.
- 체크섬: 세그먼트 내용의 추가(보충 합계)
- 발신자가 UDP 체크섬 필드에 체크섬 값을 입력한다.
수신자:
- 수신 세그먼트의 체크섬 계산
- 계산된 체크섬이 체크섬 필드 값과 동일한지 확인힌다:
- 아니요 - 오류가 감지되었다
- 예 - 오류가 감지되지 않았다. 하지만 그럼에도 불구하고 오류가 있을까? 더보기
숫자를 추가할 때 가장 중요한 비트의 수행을 결과에 추가해야 한다
패킷에 오류가 발생하지 않으면 수신기의 합(즉, sum+checksum)은 분명히 1111111111111111이 된다.
비트 중 하나가 0이면 패킷에 오류가 발생했음을 알 수 있다.
송신 측에서 UDP는 세크먼트 안에 있는 모든 16 비트 워드 합에 1의 보수를 수행하는데, 합을 구하는 과정에서 발생되는 오버플로우는 최상의 위치에서 최하의 위치로 순환한다 (wrap around).
송신측에서는 두 16비트 데이터와 16비트 체크섬을 수신측에 보낸다.
반응형