User Datagram Protocol (UDP)

Slides:



Advertisements
Similar presentations
(C) Ho-Won Jung, Korea University 1 Chapter 13:Accessing and Using the Internet College of Business Administration Korea University Ho-Won Jung, office.
Advertisements

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www. nms4you.com 1 AMAN2002 추가 기능 실습 Chapter 13:
Python Socket/HTTP overmania. 목표  소켓을 이용하여 기본적인 서버 - 클라이언트 모델을 구현할 수 있다.  간단한 웹서버를 소켓을 이용하여 작성할 수 있다.
멀티미디어 서비스를 위한 IP 네트워크 순천향대학교 정보기술공학부 이 상 정
Window 2000 윈도우 2000 기본 프로세스들.
Chapter 7 ARP and RARP.
Chapter 03. 네트워크 보안 : 길을 지배하려는 자에 대한 저항
TCP/IP 통신망 특론 3장 인터넷프로토콜( IP ).
Internet Protocol Version4
Chapter 13 전송층 개요.
Network Lab. Yong bae, Kim
Chapter 7 Networking.
암호화 기술(SSL, IPSec) 손재성 권기읍 안복선 최준혁
Chapter 06. 프로토콜.
22 장 프로세스간 전달 : UDP와 TCP 22.1 프로세스간 전달 22.2 사용자 데이터그램 프로토콜
TCP/IP 소켓 프로그래밍 - C 버전 중에서
{ ] [ HelpCom 개요 HelpCom이란? HelpCom의 특징
Dept. of Computer Engineering, Hannam Univ. Won Goo Lee
Dynamic Host Configuration Protocol
20 장 네트워크층 프로토콜 : ARP, IPv4, ICMP, IPv6, ICMPv6
Internet Group Management Protocol (IGMP)
Delivery and Routing of IP Packets
제 9 장 ICMP 목원대학교 정보통신공학과 이 명 선.
Internet Control Message Protocol (ICMP)
Network 네트워크 이론 및 실습 TCP / IP 4장.
Minicom,tftp,nfs설정,vnc설정
Web Servers (IIS & Apache)
PART 01 개념 컴퓨터 네트워크 Chapter 3 OSI 참조모델과 인터넷 임효택.
제 18 장 TCP/IP 연결 확립과 종료 정보통신연구실.
Internet 및 EC 관련 기술들.
Domain Name System (DNS)
Chapter 02 네트워크에 대한 이해.
Chapter 2 OSI 모델과 TCP/IP 프로토콜.
1. SNMP SNMP(Simple Network Management Protocol)은 네트워크의 중앙집중화된 관리를 목적으로 만들어졌으며, 현재까지 버전 3까지 세가지 버전이 만들어졌다. 각 버전의 차이는 대부분 보안상의 문제에 의한 것이다. SNMP 발전 과정 버전.
JAVA 프로그래밍 12장 네트워킹(Networking).
PART 02 프로토콜 컴퓨터 네트워크 chapter 06 트랜스포트 계층 임효택.
PPP (Point-to-Point Protocol)
S N M P (Simple Network Management System).
Processing resulting output
Chapter 05 목록화.
Access Control Lists Access Control List
PART 01 개념 컴퓨터 네트워크 Chapter 3 OSI 참조모델과 인터넷 임효택.
Chapter 13 사용자 네트워크 보안.
Department of Computer Engineering
네트워크 관리 개요 및 SNMP Protocol 동작 과정
3부 해킹 전 정보 획득 Chapter 6. 풋프린팅과 스캔
Network Programming(1)
Chapter 15 Transmission Control Protocol (TCP).
U D P 전공 : 정보보호 학번 : 이름 : 배 지 태.
TCP/IP 인터네트워킹 INTERNETWORKING with TCP/IP <vol
제 11 장 UDP 11.1 프로세스-대-프로세스 통신 11.2 사용자 데이터그램 11.3 검사합 11.4 UDP 동작
네트워크와 소켓 프로그래밍 Chapter 01. * 학습목표 TCP/IP 프로토콜의 동작 원리를 개관 소켓의 기본 개념을 이해
School of Electronics and Information. Kyung Hee University.
Transmission Control Protocol (TCP)
TCP/IP 네트워크 구조 TCP/IP 개요 TCP/IP 프로토콜 한빛미디어(주).
Internet Protocol Objectives Chapter 8
팀 프로젝트 [데이터통신] 김진억 성보라 문제명 박상민 이혜영.
8 네트워크 계층 프로토콜 학습 목표 IPv6의 필요성과 헤더 구조를 이해한다. 이동 IP 프로토콜의 터널링 원리를 이해한다.
Operating System Multiple Access Chatting Program using Multithread
Internet & WWW Protocols
제 11장 User Datagram Protocol(UDP)
TCP/IP 인터네트워킹 INTERNETWORKING with TCP/IP <vol
Part TCP / IP 1. TCP / IP 프로토콜 2. 기본 프로토콜.
Chapter 17 BOOTP and DHCP.
제 9 장 ICMP 9.1 메시지 유형 9.2 메시지 형식 9.3 오류 보고 9.4 질의 9.5 검사합 9.6 ICMP 설계
Internet 인공지능연구실
실시간 음성 채팅 서비스 (Voice Chatting Programe)
소켓의 생성과 프로토콜의 설정 School of Electronics and Information.
6. 오류 보고 체계 (ICMP) (6장. 인터넷과 IP)
Department of Computer Engineering
Presentation transcript:

User Datagram Protocol (UDP) Chapter 11 User Datagram Protocol (UDP)

CONTENTS PROCESS-TO-PROCESS COMMUNICATION USER DATAGRAM CHECKSUM UDP OPERATION USE OF UDP UDP PACKAGE

TCP/IP 프로토콜에서 UDP의 위치

UDP 전송 프로토콜 임무 프로세스-대-프로세스 통신 생성 : 포트번호 이용 최소한의 오류 제어 메커니즘 수행 프로세스로부터 데이터 단위를 받아 신뢰성 없는 전달 제공 비연결형, 신뢰성이 없는 전송 프로토콜 최소한의 오버헤드만 사용하는 간단한 프로토콜

PROCESS TO COMMUNICATION 11.1

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

11.1 프로세스-대-프로세스 통신 포트 번호 프로세스-대-프로세스 통신 방법 : 클라이언트 / 서버 클라이언트와 서버 프로세스는 같은 이름을 가짐 Daytime client process / daytime server 원격 컴퓨터는 여러 개의 서버 프로그램 실행 로컬 컴퓨터로 여러 개의 클라이언트 프로그램 수행

11.1 프로세스-대-프로세스 통신 프로세스 통신을 위해 필요한 사항 로컬 호스트(local host) 로컬 프로세스(local process) 원격 호스트(remote host) 원격 프로세스(remote process)

11.1 프로세스-대-프로세스 통신 프로세스 통신에서 포트 번호의 역할 로컬 호스트와 원격 호스트 : IP 주소 프로세스 : 포트 번호 포트 번호 범위 : 0 ~ 65,535 사이 정수 잘 알려진 포트 번호(well-known port number) 임시 포트 번호(ephemeral port number)

11.1 프로세스-대-프로세스 통신 포트 번호

11.1 프로세스-대-프로세스 통신 IP 주소 대 포트 번호

11.1 프로세스-대-프로세스 통신 IANA(Internet Assigned Numbers Authority) 범위 잘 알려진 포트 : 0 ~ 1,023 등록된 포트(registered port) : 1,024 ~ 49,151 동적 포트(dynamic port) : 49,152 ~ 65,535

11.1 프로세스-대-프로세스 통신 UDP에서 사용되는 잘 알려진 포트 Port Protocol Description 7 Echo Echoes a received datagram back to the sender 9 Discard Discards any datagram that is received 11 Users Active users 13 Daytime Returns the date and the time 17 Quote Returns a quote of the day 19 Chargen Returns a string of characters 53 Nameserver Domain Name Service 67 Bootps Server port to download bootstrap information 68 Bootpc Client port to download bootstrap information 69 TFTP Trivial File transfer Protocol 111 RPC Remote Procedure Call 123 NTP Network Time Protocol 161 SNMP Simple Network Management Protocol 162 Simple Network Management Protocol(trap)

11.1 프로세스-대-프로세스 통신 소켓 주소(Socket Address) 각 종단 점에서 연결을 만들기 위해 필요한 주소

USER DATAGRAM 11.2

11.2 사용자 데이터그램 8 바이트 고정 크기 헤더 발신지 포트 번호(source port number) 목적지 포트 번호(destination port number) 길이(length) : 헤더 + 데이터 검사합 : 오류 발견

UDP length = IP length - IP header’s length 11.2 사용자 데이터그램 UDP length = IP length - IP header’s length

CHECKSUM 11.3

11.3 검사합 UDP 검사합에 포함된 부분 의사 헤더(Pseudoheader) UDP 헤더 응용 계층으로부터 온 데이터

11.3 검사합 UDP 헤더에 첨부된 의사 헤더

11.3 검사합 송신자 검사합 계산 UDP 데이터그램에 의사 헤더 추가 검사합 필드 0으로 채움 전체를 16 비트(2 바이트) 단위로 나눔 전체 바이트가 짝수가 아니면 값이 0 인 바이트 추가 1 의 보수 연산 이용 16 비트 섹션을 전부 더함 결과의 부수를 취하여 검사합 필드에 삽입 의사 헤더와 추가된 패딩 제거 데이터그램을 IP 소프트웨어에 전달

11.3 검사합 UDP 사용자 데이터그램 검사합 계산

UDP OPERATION 11.4

11.4 UDP 동작 비 연결형 서비스 흐름제어와 오류제어 각 데이터그램은 서로 독립적 연결 설정과 종료 과정 없이 서로 다른 경로로 전달될 수 있음 작은 메시지를 보내는 프로세스만이 UDP 사용 흐름제어와 오류제어 간단하고 신뢰성 없는 프로토콜 흐름제어도 없고 윈도우 메커니즘도 없음 검사합 외에는 오류 제어 메커니즘이 없음

11.4 UDP 동작 캡슐화와 역 캡슐화

11.4 UDP 동작 UDP에서 사용되는 큐(Queue)

11.4 UDP 동작 큐잉(Queueing) 클라이언트에서 프로세스가 시작될 때 운영체제에게 포트번호 요청(임시) 구현에 따라 입력 큐 또는 입/출력 큐 생성 프로세스가 종료 되면 큐는 제거 큐가 생성되어 있지 않으면 ICMP 프로토콜에게 “port unreachable” 메시지를 보낸 데이터그램은 폐기

11.4 UDP 동작 다중화와 역 다중화

USE OF UDP 11.5

11.5 UDP 용도 단순한 요청-응답을 필요로 하는 프로세스 흐름 제어와 오류 제어가 크게 필요하지 않은 프로세스 내부적인 흐름 제어와 오류 제어 메커니즘을 가지고 있는 프로세스 멀티캐스팅과 브로드캐스팅을 위한 전송 프로토콜 SNMP와 같은 관리 프로세스 RIP(Routing Information Protocol)와 같은 경로 갱신 프로토콜에 사용

UDP PACKAGE 11.6

11.6 UDP 설계 UDP 패키지 구성 요소 제어 블록 테이블 입력 큐 제어 블록 모듈 입력 모듈 출력 모듈

11.6 UDP 설계 UDP 설계

11.6 UDP 설계 제어 블록 테이블(Control Block Table) 입력 큐(Input Queue) 연결 포트를 추적하기 위한 테이블 테이블 엔트리(상태, 프로세스 ID, 포트 번호, 큐 번호) 입력 큐(Input Queue) 프로세스당 하나씩 배정

11.6 UDP 설계 제어 블록 모듈(Control-Block Module) 제어 블록 테이블 관리 담당 프로세스가 시작될 때 운영체제에게 포트 번호 요청 운영 체제는 서버에게 잘 알려진 포트 번호, 클라이언트는 임시 포트 번호 배정 프로세스 번호와 포트 번호를 제어 블록으로 보냄

11.6 UDP 설계 제어 블록 번호 알고리즘 Receive: a process ID and a port number. 1. Search the control block table for a FREE entry. 1. If(not found) 1. Delete an entry using a predefined strategy. 2. Create a new entry with the state IN-USE. 3. Enter the process ID and the port number. 2. Return

11.6 UDP 설계 입력 모듈(Input Module) IP로 부터 데이터그램을 받는다 제어 블록 테이블을 찾아서 데이터그램과 같은 포트 번호를 가진 엔트리를 찾는다 있으면 엔트리 정보를 이용하여 데이터를 큐에 넣는다 없으면 ICMP 메시지를 생성

11.6 UDP 설계 입력 모듈 알고리즘 Receive: a user datagram from IP 1. Look for the corresponding entry in the control-block table. 1. If(found) 1. Check the queue field to see if a queue is allocated. 1. If(no) 1. Allocate a queue. 2. Enqueue the data in the corresponding queue. 2. If(not found) 1. Ask the ICMP module to send an “unreachable port” message. 2. Discard the user datagram. 2. Return

11.6 UDP 설계 출력 모듈(output module) 데이터그램을 생성하여 보내는 책임을 가짐 Receive: data and information from a process Create a UDP user datagram. Send the user datagram. Return.

11.6 UDP 설계 제어 블록 데이터의 초기값 State Process ID Port Number Queue Number -------- ------------ -------------- ------------------ IN-USE 2,345 52,010 34 IN-USE 3,422 52,011 FREE IN-USE 4,652 52,012 38

11.6 UDP 설계 Example 1 처음 동작은 목적지 포트 번호가 52,012인 사용자 데이터 그램이 도착하는 것이다. 입력 모듈은 이 포트 번호를 탐색하여 찾아낸다. 이 포트에는 큐 번호 38이 배당되어 있으므로 포트가 전에 이미 사용되었음을 알 수 있다. 입력 모듈은 데이터를 38번 큐에 보낸다. 제어 블록 테이블은 변하지 않는다.

11.6 UDP 설계 Example 2 몇 초 후 프로세스가 시작된다. 이 프로세스는 운영체제에 포트 번호를 요청하고 52,014를 할당받는다. 프로세스는 자신의 ID 4,978과 포트 번호를 제어 블록 모듈에 보내어 테이블 내에 엔트리를 생성한다. 모듈은 첫 번째의 FREE 엔트리를 취하여 수신된 정보를 입력한다. 이 목적지를 향한 사용자 데이터 그램이 도착하지 않았으므로 모듈은 이 시점에 큐를 배당하지 않는다.

11.6 UDP 설계 예제 2후에 수정된 테이블 State Process ID Port Number Queue Number -------- ------------ -------------- ------------------ IN-USE 2,345 52,010 34 IN-USE 3,422 52,011 IN-USE 4,978 52,014 IN-USE 4,652 52,012 38 FREE

11.6 UDP 설계 Example 3 52,011 포트에 사용자 데이터그램이 도착한다. 입력모듈은 테이블을 검사하여 이 목적지를 위한 큐가 아직 배당되지 않았음을 알게 된다. 이것은 이 패킷이 이 목적지로 온 첫 번째 사용자 데이터그램이기 때문이다. 모듈은 43번 큐를 생성한다. 표 11.4를 보라

11.6 UDP 설계 예제 3후에 수정된 테이블 State Process ID Port Number Queue Number -------- ------------ -------------- ------------------ IN-USE 2,345 52,010 34 IN-USE 3,422 52,011 43 IN-USE 4,978 52,014 IN-USE 4,652 52,012 38 FREE

11.6 UDP 설계 Example 4 몇 초 후 52,222 포트에 사용자 데이터 그램이 도착한다. 입력 모듈이 테이블을 검사한 결과 이 목적지를 위한 엔트리를 발견하지 못한다. 사용자 데이터 그램은 폐기되고 발신지에 “unreachable port” 메시지를 보낼 것을 ICMP에 요청한다.

11.6 UDP 설계 Example 5 몇 초 후 프로세스가 사용자 데이터그램을 보내고자 한다. 이 프로세스는 데이터를 출력 모듈에 보내고 이 모듈은 UDP 헤더를 붙여서 보낸다.