Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

wa_ter_ve

사용자 데이터그램 프로토콜(UDP) 본문

공부/컴퓨터네트워크

사용자 데이터그램 프로토콜(UDP)

수win 2024. 8. 23. 00:20

참조 교재: Wireshark로 배우는 컴퓨터 네트워크


 

사용자 데이터그램 프로토콜(UDP: User Datagram Protocol)

 


 

#️⃣ UDP 서비스

 

🔵 프로세스-대-프로세스 통신

 : IP 주소와 포트번호로 구성된 소켓 이용

 

 

🔵 비연결형 서비스

- 각 데이터그램은 서로 독립적이고, 연관 관계가 없음
- 연결 설정과 종료 과정 없이 서로 다른 경로로 전달될 수 있음
- 작은 메시지를 보내는 프로세스만이 UDP 사용

 

 

🔵 흐름 제어

: X (윈도우 메커니즘도 X)

 

 

🔵 오류 제어

: X (검사합을 제외한 기능 없음)

 

☑️ 검사합

     - 옵션 사항인 검사합 추가

      • 의사 헤더(Pseudo-header)
      • UDP 헤더
      • 응용 계층으로부터 온 데이터

검사합 계산을 위한 의사 헤더

 

간단한 UDP 사용자 데이터그램의 검사합 계산

► 다음의 가상 상황에서 검사합으로 어떤 값이 전송되는가?
a. 송신자는 검사합을 포함하지 않기로 결정한다.
b. 송신자는 검사합을 포함하기로 결정했지만, 검사합의 값이 모두 1이다.
c. 송신자는 검사합을 포함하기로 결정했지만, 검사합의 값이 모두 0이다.

{해답}
a. 검사합이 계산되지 않았다는 것을 알리기 위하여 검사합 필드의 값은 모 두 0으로 설정
b. 송신자가 합에 보수를 취한 결과가 모두 0이면, 전송하기 전에 결과 값에 다시 보수를 취한다. 즉, 검사합으로 전송되는 값은 모두 1이다. 두 번째 보수 연산은 a의 경우와의 혼돈을 피하기 위하여 필요.
c. 합의 계산에 포함되는 모든 항목의 값이 0인 상황은 결코 일어날 수 없는 불가능한 경우이다. 의사 헤더의 필드들은 0이 아닌 값을 가지고 있다.

 

 

 

🔵 혼잡 제어

: X

 

 

🔵 캡슐화와 역캡슐화

☑️ 캡슐화
UDP를 통해 보낼 메시지가 있는 프로세스는 UDP로 [ 메시지 + 한 쌍의 소켓 주소 + 데이터의 길이 ] 전송
→ 데이터를 받은 후 UDP 헤더 추가 & 소켓 주소와 함께 사용자 데이터그램을 IP로 전송
→ IP 자신의 헤더에 프로토콜 필드 값을 17로 설정하여, 데이터가 UDP로부터 왔음을 알림
IP 데이터그램을 전달 받은 데이터링크층은 자신의 헤더를 추가(경우에 따라 트레일러도 추가) 후, 물리층으로 전송
물리층은 비트들을 전기 또는 광 신호로 부호화 후, 원격 시스템으로 전송
☑️ 역캡슐화
메시지가 목적지 호스트에 도착시, 물리층은 [ 신호➡️ 비트 ]로 복호화 후, 데이터 링크층으로 전송
데이터링크층은 헤더(& 트레일러)를 이용해 데이터 확인
    오류가 없으면 헤더와 트레일러 제거 후, IP에 데이터 전송
IP 소프트웨어는 IP 단계의 검사 수행
    오류가 없으면 헤더 제거 후, [ 송신자/수신자 IP 주소 + 사용자 데이터그램 ]을 UDP에 전송 
→ UDP는 검사합을 사용해 전체 사용자 데이터그램 검사
    오류가 없으면 헤더 제거 후, 송신자 소켓 주소와 함께 응용 데이터를 프로세스에 전달

 

 

 

 

🔵 큐잉

• 클라이언트에서 프로세스가 시작될 때 운영체제에게 포트번호 요청(임시)

구현에 따라 입력 큐 또는 입/출력 큐 생성

      - 출력 큐에는 오버플로우 발생 가능성 O

프로세스가 종료되면 큐는 제거
   메시지가 클라이언트에 도착하면, UDP는 큐가 생성되지 확인

      큐가 있다면, 사용자 데이터그램을 큐의 끝에 추가

      큐가 없다면 ➡️ ICMP 프로토콜에게 ‘port unreachable’ 메시지를 보내고 UDP 데이터그램은 폐기

 

 

 

🔵 다중화와 역다화

☑️ 다중화
송신측: 다-대-일 관계
☑️ 역다중화
수신측: 일-대-다 관계

 

 

 

 

🔵 UDP와 일반 단순 프로토콜과 비교

► 비연결형 단순 프로토콜의 한 예
► 오류 감지를 위해서 부가적인 검사합을 패킷에 포함한다는 것만 차이
► 수신 UDP는 만일 패킷이 훼손되면 폐기
► 어떠한 피드백도 송신 측으로 전송되지 않음

 

 


#️⃣ UDP 응용

 

🔵 UDP 특징

► 비연결형 서비스: 각 UDP 패킷은 서로 독립적
► 클라이언트 응용이 서버에게 짧은 요청을 전송하고 짧은 응답을 수신
하는 경우에 장점
► 응용에서 지연이 주요 이슈인 경우는 비연결형 서비스가 바람직
오류 제어 제공 X
혼잡 제어 제공 X