728x90
본 포스팅은 < 컴퓨터 네트워킹 하향식 접근[8판] James F. Kurose, Keith W. Ross 저/최종원, 강현국, 김기태 > 을 참고하여 작성되었습니다.
Ch03 Transport Layer
3. 연결없는 전송 UDP : Connectionless transport: UDP
UDP : User Datagram Protocol
UDP는 군더더기 없고 기본 핵심만 있는 프로토콜이다.
최선을 다하지만 데이터의 손상, 손실의 가능성 존재를 보장하지 않는다
- 비연결성 (connectionless)
- UDP 전송자, 수신자 끼리 핸드셰이킹이 없음
- 각 UDP 세그먼트는 각각 독립적으로 다뤄진다
왜 UDP인가?
- 연결을 맺지않음으로 RTT 지연이 존재하지 않는다 (빠르다)
- 전송자, 수신자 간의 연결 상태가 없으므로 간단하다
- 작은 헤더 오버헤드 (헤더번호, 체크썸 등 간단한 구성)
- 혼잡 제어가 없음 ➡️ 상황에 따라 장점이 된다 (항상 full speed)
이러한 이유들로 단점에도 불구하고 많이 응용되고 있다.
UDP 활용 서비스
UDP가 사용되는 경우
- 손실이 되어도 상관이 없는 멀티미디어 스트리밍 서비스 어플리케이션
- 모든 통신의 시작점이기 때문에 불필요한 delay 를 줄이기 위한 DNS
- SNMP (네트워크 관리 프로토콜)
- HTTP/3
- 어플리케이션층에 신뢰성을 추가
- 어플리케이션 층에서 혼잡제어 등을 요청 가능
UDP 의 동작
전송자
- 어플리케이션 층의 메세지를 가져옴
- UDP 세그먼트 헤더를 결정
- UDP 세그먼트를 생성
- IP로 세그먼트를 전송
수신자
- IP로 부터 세그먼트를 수신
- UDP checksum을 검사
- 어플레케이션층 메세지를 추출
- 소켓으로 메세지를 역다중화
UDP 세그먼트 헤더
UDP 검사합 checksum
- Checksum 검사합
- 무결성(integrity)을 제공하기 위한 필드
- 전송된 세그먼트의 에러를 검출한다
- 전송 전에 sum을 저장해놓았다가 받고 난 후에 다시 검사
전송자의 동작
- 헤더의 데이터를 16비트씩 쪼개어 합한후, 1의 보수를 취한다
- 그리고 UDP checksum 헤더 필드에 추가
수신자의 동작
- 받은 세그먼트이 checksum을 계산
- 에러를 검출할 수 있지만 따로 복구는 하지않음
- checksum이 같으면 오류가 없다고 본다 (통상적인 경우)
checksum은 무결성을 검사해주지만 공격을 감지할 수는 없다
728x90
'Computer Science > Computer Network' 카테고리의 다른 글
📡 [Network] 전송층의 신뢰성있는 데이터의 전송 : 파이프라이닝 (GBN Go-back-N, SR Selective Repeat) (0) | 2022.10.11 |
---|---|
📡 [Network] 전송층에서 신뢰성있는 데이터의 전송 (가상의 프로토콜 구축해보기) (0) | 2022.10.11 |
📡 [Network] 전송층 - 다중화와 역다중화 (Multiplexing & Demultiplexing) (0) | 2022.10.10 |
📡 [Network] 전송층(Transport Layer)에 대해서 (개요) (0) | 2022.10.10 |
간단한 클라이언트-서버 소켓 채팅 💬 프로그램 만들어보기 (with 파이썬🐍) (0) | 2022.10.06 |