UDP (User Datagram Protocol)

Slides:



Advertisements
Similar presentations
AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www. nms4you.com 1 AMAN2002 추가 기능 실습 Chapter 13:
Advertisements

HTTP (Hypertext Transfer Protocol)
16장 X.25 패킷 교환망 16.1 X.25 계층 구조 16.2 패킷 계층 프로토콜 16.3 요약.
Network Lab. Byoung-Son, Choi
Chapter 13 전송층 개요.
Chapter 4: 이더넷 (Ethernet)
Image & Video processing
Chapter 14 User Datagram Protocol (UDP).
Network Lab. Young-Chul Hwang
윤 홍 란 다이알로그(대화상자) 윤 홍 란
Chapter 1: OSI 참조 모델과 TCP/IP
Chapter 2: LAN 기술 및 네트워크 장비 규격
24 장 TCP/IP 24.1 개요 24.2 네트워크층 24.3 주소 지정 24.4 서브넷팅틍
Network 네트워크 이론 및 실습 TCP / IP 4장.
Load Balancing L4와 L7은 어떻게 동작할까?.
FTP (File Transfer Protocol)
23 장 TCP/IP 23.1 개요 23.2 네트워크층 23.3 전송층 23.4 응용층 24.5 요약.
VoIP (Voice Over Internet Protocol)
Chapter 6: 인터넷 제어 메시지 프로토콜(ICMP)
9장 데이터 링크층 개요 (Introduction To Data-Link Layer)
제 17 장 TCP : 전송 제어 프로토콜 정보통신연구실.
제 14장 Multicast & Broadcast
Traceroute 기능 분석 및 프로그래밍
Chapter 3: AMAN 2002 구성 및 사용법
무선인터넷 보안기술 컴퓨터공학부 조한별.
네트워킹 CHAPTER 13 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
11 장 LAN 기본 개념과 Ethernet LAN
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
IP (Internet Protocol)
Chapter 21 Network Layer: ARP, ICMP (IGMP).
Department of Computer Engineering
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
ARP Project 조 충 호 교수님 김 세 진 조교님 조 진 형 변 익 수
Socket Address Structure and Byte Ordering Functions
Socket Address Structure and Byte Ordering Functions
Chapter 19 솔라리스 네트워크 관리 Solaris1 . TCP/IP 개요
WOL(Wake-On Lan) 컴퓨터공학과 4학년 박기웅.
9장 데이터링크층 소개 (Introduction To Data-Link Layer)
U D P 전공 : 정보보호 학번 : 이름 : 배 지 태.
제 11 장 UDP 11.1 프로세스-대-프로세스 통신 11.2 사용자 데이터그램 11.3 검사합 11.4 UDP 동작
멀티 쓰레드 기반의 채팅 프로그램 문성영 김현진 학번 이름 장용하 차희진 연구제안서.
22 장 전송층(Transport Layer)
제 15 장 BOOTP와 DHCP BOOTP 15.2 동적 호스트 설정 프로토콜.
21 장 전송층(Transport Layer)
Internet 데이터 전송 목표: 인터넷의 개요 및 기본 내용을 살펴보고 VB에서의 데이터 전송 프로그래밍에 대하여 학습한다. 주요내용 인터넷의 개요 인터넷 데이터 전송 인터넷 프로그래밍 Winsock Client Server 프로그래밍.
TAG Visual Basic, 표준시간, 타임 서버, PC 시간 설정, NTP, RFC 2030.
User Datagram Protocol (UDP)
Chapter 04. OSI 참조 모델.
Chapter 01. OSI 계층 모델.
TCP/IP TCP/IP의 이해 TCP UDP IP 한빛미디어(주).
Network 네트워크 이론 및 실습 TCP / IP 4장.
Packet sniffing 응용 레벨이 아닌 네트워크 디바이스 레벨에서의 데이타을 얻는 것 네트워크 상의 트래픽을 분석
10 기타 전송 계층 프로토콜.
Chapter 26 IP over ATM.
제 11장 User Datagram Protocol(UDP)
Ping Test.
모바일인터넷기초 전산정보학부 모바일인터넷과 권 춘 우
연습 문제 풀이 HTTP 메시지의 종류 요청/ 응답 구별  메소드로 시작되므로 요청 메시지임
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
05. General Linear List – Homework
제 13 장 인터넷 그룹 관리 프로토콜 정보통신연구실.
Chapter 02. 윈도우 소켓 시작하기.
Part 05 TCP/IP 1. 네트워크 2. 포트번호.
4. IP 데이터그램과 라우팅 (6장. 인터넷과 IP) IP 데이터그램 : 특정 물리망에 종속되지 않은 가상의 패킷 형식.
Network Lab. Young-Chul Hwang
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
Department of Computer Engineering
Presentation transcript:

UDP (User Datagram Protocol) Chapter 9: UDP (User Datagram Protocol) 2003. 6.

사용자 데이터그램 프로토콜 특징 비연결형 IP 전달 서비스 + 최소한의 신뢰성 제공 (선택적 체크 섬) 포트 대 포트(port-to-port) 전송 대표적인 응용 : SNMP(Simple Network Management Protocol) 실시간 인터넷 방송 5001 5000 161 162 TCP IP 데이터링크 물리계층 Echo Daytime SNMP SNMP/ Trap 7 13 Client Server

UDP의 구조 근원지 / 목적지 포트 길이 체크 섬 근원지,목적지 컴퓨터의 프로그램이 사용하는 포트 번호 20byte + 옵션 UDP헤드 (8byte) UDP 데이터 IP 데이터 근원지 포트 목적지 포트 길이 체크 섬 0 8 16 24 31 IP 헤더

UDP 데이터그램 분석

UDP 데이터그램 분석 근원지 포트 / 목적지 포트 길이 / 체크 섬 근원지 / 목적지 포트 0x07C1은 1985번 Registered Port 사용 ※ Registered Port : 1024~49151번 길이 / 체크 섬 UDP 데이터그램의 길이는 0x001C 즉 28바이트임 체크 섬을 위한 코드는 0x242E(9262)임 근원지 포트 (16 bit) 목적지 포트 (16 bit) 7 C 1 길이 (16 bit) 체크 섬 (16 bit) 1 C 2 4 E

포트 번호 표 교재, TCP/IP 프로토콜 분석 및 네트워크 프로그래밍, 부록 5 참조 AMAN2002 Online Help의 “well-known port” 참조

연습문제 10 00 20 00 00 80 AB CD 헤더 필드 설명 필드 명 값(10진수) 설명 근원지 포트번호 목적지 포트번호 길이 체크 섬

Guru를 이용한 UDP 데이터그램 분석

UDP 데이터그램 캡처 프로그램 작성 ※ 프로젝트 생성 및 라이브러리 경로 설정은 『ch04. 이더넷(Ethernet)』의 “이더넷 캡처 프로그램 작성”과 동일

대화상자 디자인 Edit Box Button List Control 1 2 3 4 5 6

Control 속성 # 종류 ID 속성 변수이름 1 List Control IDC_LIST View: Report m_ListUdpPacketInfo 2 Edit Box IDC_EDIT_Monitoring m_EDIT_iCountInput 3 IDC_EDIT_Monitored Read-only m_EDIT_iCountOutput 4 Button IDC_BUTTON_Start 5 IDCANCEL Default Button 6 IDC_BUTTON_Info

이벤트 처리 ※ 어댑터 오픈 대화상자 표시, 어댑터 열기, 패킷 캡처, 어댑터 닫기 # 종류 ID 메시지 함수명 20 Button IDC_BUTTON_Start BN_CLICKED OnBUTTONStart() 21 IDCANCEL OnCancel() 22 IDC_BUTTON_Info OnBUTTONInfo() ※ 어댑터 오픈 대화상자 표시, 어댑터 열기, 패킷 캡처, 어댑터 닫기 함수의 설명은 『ch04. 이더넷(Ethernet)』 과 동일하므로 생략함

패킷 분석 UDP 헤더의 시작지점 14바이트 8바이트 arrTemp[0] arrTemp[14] arrTemp[14 + IpHLen] arrTemp[14]의 하위 4비트 14바이트 8바이트 arrTemp 헤더길이 : IpHLen 이더넷 헤더 IP 헤더 UDP 헤더 arrTemp[14+9] 프로토콜 필드 0x11(17) → UDP

패킷 분석 . . . // 획득된 패킷은 arrTemp에 저장 List Control 에 패킷 헤더 정보 표시 . . . // 획득된 패킷은 arrTemp에 저장 int iLengthOfPacket = pDlg->Ncap(arrTemp, MaxBufferLen); if(iLengthOfPacket <0 ) continue; #define EtherHeaderLength 14 // UDP 프로토콜은 IP 헤더의 프로토콜 필드값이 0x11(17)이므로 // - IP의 프로토콜 필드 값이 0x11인 것만 골라냄 if( arrTemp[EtherHeaderLength + 9] == 0x11) { // IP 헤더 길이 정보 획득 unsigned char MASK = 0x0F; arrTemp[EtherHeaderLength] = arrTemp[EtherHeaderLength] & MASK; int iIpHeaderLength = arrTemp[EtherHeaderLength]<<2;

패킷 분석 CString strUdpSrcPort = _T(""); List Control 에 패킷 헤더 정보 표시 // 근원지 포트 CString strUdpSrcPort = _T(""); unsigned int iSourcePort = pDlg->Twobytes_to_number( arrTemp[EtherHeaderLength + iIpHeaderLength], arrTemp[EtherHeaderLength + iIpHeaderLength+1]); strUdpSrcPort.Format("SRC : %d", iSourcePort); m_ListUdpPacketInfo.SetItem(i, 1, LVIF_TEXT, strUdpSrcPort, 0, 0, 0, 0); // 목적지 포트 CString strUdpDesPort = _T(""); unsigned int iDestinationPort = pDlg->Twobytes_to_number( arrTemp[EtherHeaderLength + iIpHeaderLength +2], arrTemp[EtherHeaderLength + iIpHeaderLength+3]); strUdpDesPort.Format("DEST : %d", iDestinationPort); m_ListUdpPacketInfo.SetItem(i, 2, LVIF_TEXT, strUdpDesPort, 0, 0, 0, 0); . . .

패킷 분석 //UDP 데이터그램의 전체 길이 CString strUdpTotalLength = _T(""); List Control 에 패킷 헤더 정보 표시 //UDP 데이터그램의 전체 길이 CString strUdpTotalLength = _T(""); unsigned int iTotalLength = pDlg->Twobytes_to_number( arrTemp[EtherHeaderLength + iIpHeaderLength +4], arrTemp[EtherHeaderLength + iIpHeaderLength+5]); strUdpTotalLength.Format("TOTAL : %d", iTotalLength); m_ListUdpPacketInfo.SetItem(i, 3, LVIF_TEXT, strUdpTotalLength, 0, 0, 0, 0); // 체크 섬 CString strUdpCheckSum = _T(""); unsigned int iCheckSum = pDlg->Twobytes_to_number( arrTemp[EtherHeaderLength + iIpHeaderLength + 6], arrTemp[EtherHeaderLength + iIpHeaderLength+7]); strUdpCheckSum.Format("CHK : %d", iCheckSum); m_ListUdpPacketInfo.SetItem(i, 4, LVIF_TEXT, strUdpCheckSum, 0, 0, 0, 0); . . .

UdpViewer 실행 화면

UdpViewer를 이용한 Udp 데이터그램 분석 0번 패킷 분석 근원지 포트번호  송신지에서 7671번 Registered Port를 사용함 목적지 포트번호  수신지에서 38329번 Registered Port를 사용함 길이  17493바이트임 체크 섬  송신지에서 계산한 체크 섬은 16904임

참고 문헌 서승호 외, AMAN2002를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍, 정익사, 2002. RFC 768, J. Postel, User Datagram Protocol, August 1980. RFC 1240, C. Shue, W. Haggerty, OSI Connectionless Transport Service on top of UDP Version: 1, June 1991. RFC 1791, T. Sung, TCP And UDP Over IPX Networks With Fixed Path MTU, April 1995. Behrouz Forouzan, “Introduction to Data Communication and Networking”, Mcgrwohill, 1999 Fred Halsall, “Data Communications, Computer Networks and Open Systems”, Addison-wesley, 1995.