1 7 장. IP 프로토콜의 이해 (3) - IP 프로토콜 컴퓨터네트워크
2 이번시간의학습목표 IP프로토콜의기능과헤더의역할을이해 각필드의의미 IPv4 주소클래스 패킷분할의필요성과방법 DHCP 프로토콜
3 IP 프로토콜의주요특징 비연결형서비스 패킷분할 / 병합기능 데이터체크썸은없고, 헤더체크썸만제공 Best-effort
4 IP 헤더 (1) Service Type 필드 사용자에게제공하는서비스품질에관련된내용 0~2 비트는상위계층의응용서비스환경에따라설정 3, 4, 5 비트는일반적으로 0
5 IP 헤더 (2) DS(Differentiated Services) 사전에서비스제공자와서비스이용자사이에서비스등급에대해합의 동일한 DS 값을갖는트래픽들은동일한서비스등급으로처리됨 ECN(Explicit Congestion Notification) ECT 0 과 ECT 1 은동일한의미 ECN 기능을위하여 TCP 프로토콜의헤더에 ECE 필드와 CWR 필드가추가
6 IP 헤더 (3) 패킷분할관련필드 상위계층에서내려온데이터가하나의패킷으로전달하기에너무큰경우분할하여전송 Identification( 식별자혹은구분자 ) 분할되지않은패킷 : 값을순차적으로증가 분할된패킷 : 동일한번호부여 DF(Don t Fragment): 패킷분할금지 MF(More Fragment) 분할된패킷의처음과중간 : 1 분할된패킷의마지막 : 0 Fragment Offset (13bits) 분할되기전데이터에서의상대적인위치정보 8 바이트의배수로지정
7 IP 헤더 (4) 주소관련필드 Source Address: 송신호스트의 IP 주소 Destination Address: 수신호스트의 IP 주소 IP 주소체계 Network : NIC 에서할당 Host : 개별망에서관리 클래스 A 0.0.0.0 ~ 127.255.255.255 클래스 B 128.0.0.0 ~ 191.255.255.255 클래스 C 192.0.0.0 ~ 223.255.255.255 클래스 D 224.0.0.0 ~ 239.255.255.255 클래스 E 240.0.0.0 ~ 255.255.255.255
8 IP 헤더 (5) 기타필드 Version Number 일반적으로 4 (IPv4) Header Length 헤더길이를 32 비트단위로표시 IPv4의경우일반적으로 5 Packet Length: 헤더를포함한패킷의전체길이
9 IP 헤더 (6) 기타필드 ( 계속 ) Transport( 전송프로토콜 ) : [ 그림 7-14] 와같이 IP 프로토콜에데이터전송을요구한전송계층의프로토콜
IP 헤더 (7) 기타필드 ( 계속 ) Time To Live(TTL) 패킷의생존시간 라우터를거칠때마다 1 씩감소되며, 0 이되면네트워크에서 강제로제거 Header Checksum 우선이필드값을 0으로하고값을계산하여채움 헤더오류검출 Options 망관리나보안목적으로부여가능 Padding 10
패킷의분할 (1) 분할의필요성 각네트워크에서다루는프레임의크기가다르다 X.25, Ethernet 여러종류의네트워크를걸쳐패킷전달 11
패킷의분할 (2) 분할예 전송데이터 : 380 하부망최대크기 : 128 여기서헤더는 5 X 4 = 20 8 바이트단위로만분할가능 ( 이유는?) 따라서 104 바이트씩분할 (104 + 104 + 104 + 68) 오프셋은 13 씩증가 (104 / 8) 패킷길이 104 + 20 = 124 68 + 20 = 88 뒤에따라오는패킷이있는경우 MF = 1 12
BOOTP 와 DHCP (1) BOOTP(Bootstrap Protocol) DHCP 전에개발된호스트구성프로토콜 DHCP(Dynamic Host Configuration Protocol) DHCP 는 BOOTP 를바탕으로개선되었으며호스트구성서비스로서 BOOTP 가갖고있는특정제한을해결 BOOTP 와 DHCP 유사점 서버와클라이언트간에메시지를교환하는데사용하는형식구조 거의동일한요청메시지와응답메시지 클라이언트 / 서버통신에잘알려진 UDP 포트 (67, 68) 사용 구성서비스의필수적인부분으로 IP 주소배포 시작하는동안 IP 주소를클라이언트에할당 13
BOOTP 와 DHCP (2) BOOTP/DHCP 차이점 BOOTP 제한된부팅기능을사용하여디스크없는워크스테이션을구성하기위해사용 IP 주소임대에서기본 30 일만료가설정 Vend(Vendor-specific area: 64bytes) 이라는제한된수의클라이언트구성매개변수를지원 2 단계부트스트랩구성프로세스 클라이언트가 BOOTP 서버에연결하여주소결정과부팅파일이름선택을수행 클라이언트가 TFTP(Trivial File Transfer Protocol) 서버에연결하여부팅이미지의파일전송을수행 시스템이다시시작될때를제외하고 BOOTP 클라이언트가 BOOTP 서버와구성을다시바인딩하거나갱신하지않음 DHCP 로컬하드드라이브와모든부팅기능이있으며위치를자주이동하는네트워크에연결된컴퓨터 ( 휴대용장치등 ) 를구성하기위해사용 IP 주소임대에서기본 8 일만료가설정 Option 이라는더크고확장가능한클라이언트구성매개변수의집합을지원 DHCP 클라이언트가 DHCP 서버와협상하여 IP 주소를결정하고네트워크작업에필요한다른모든초기구성정보를얻는단일단계부팅구성프로세스 시스템이다시시작될때 DHCP 클라이언트가 DHCP 서버와구성을다시바인딩하거나갱신할필요가없음클라이언트가설정된시간간격에다시바인딩상태로자동으로전환되어 DHCP 서버와임대된주소할당을갱신 14
DHCP 프로토콜 (1) IP 주소를여러컴퓨터가공유해서사용 DHCP 메시지 15
DHCP 프로토콜 (2) DHCP 헤더 op(message op code) 1 = BOOTREQUEST, 2 = BOOTREPLY htype (hardware address type) hlen (hardware address length) hops Client sets to zero optionally used by relay agents xid(transaction ID) a random number chosen by the client secs (Time Elapsed) Filled in by client seconds elapsed since client began address acquisition or renewal process flags B: Broadcast flag 16
DHCP 프로토콜 (3) DHCP 헤더 ( 계속 ) ciaddr (Client IP address) only filled in if client is in BOUND, RENEW or REBINDING state and can respond to ARP requests yiaddr ('your' (client) IP address) siaddr (IP address of next server to use in bootstrap) returned in DHCPOFFER, DHCPACK by server giaddr (Relay agent IP address) used in booting via a relay agent chaddr (Client hardware address) sname (Optional server host name) null terminated string file (Boot file name) null terminated string options (Optional parameters field) 17
DHCP 프로토콜 (4) DHCP 기능 Configuration parameters repository provide persistent storage of network parameters for network clients stores a key-value entry for each client IP-subnet-number, hardware- address, Dynamic allocation of network addresses allocation of temporary or permanent network (IP) addresses to clients lease the period over which a network address is allocated to a client client may extend its lease with subsequent requests client may issue a message to release the address back to the server may ask for a permanent assignment by asking for an infinite lease 18
DHCP 프로토콜 (5) DHCP 메시지 DHCPDISCOVER Client broadcast to locate available servers. DHCPOFFER Server to client in response to DHCPDISCOVER with offer of configuration parameters. DHCPREQUEST Client message to servers either (a) requesting offered parameters from one server and implicitly declining offers from all others, (b) confirming correctness of previously allocated address after, e.g., system reboot, or (c) extending the lease on a particular network address. 19
DHCP 프로토콜 (6) DHCP 메시지 ( 계속 ) DHCPACK Server to client with configuration parameters, including committed network address. DHCPNAK Server to client indicating client's notion of network address is incorrect (e.g., client has moved to new subnet) or client's lease as expired DHCPDECLINE Client to server indicating network address is already in use. DHCPRELEASE Client to server relinquishing network address and cancelling remaining lease. DHCPINFORM Client to server, asking only for local configuration parameters; client already has externally configured network address. 20
DHCP 프로토콜 (7) DHCP 프로토콜의주요메시지 DHCP_DISCOVER : 클라이언트가 DHCP 서버를찾기위해전송하는브로드캐스트메시지 DHCP_OFFER : 클라이언트의 DHCP_DISCOVER 메시지에대한응답으로 DHCP 서버가응답하는메시지 DHCP_REQUEST : 주소를권고한 DHCP 서버에 DHCP_REQUEST 메시지를전송하여권고한주소를사용한다고알림 DHCP_ACK : 권고한 IP 주소가최종적으로사용가능한지판단후사용가능하면 D HCP_ACK 메시지를전송 DHCP_NACK : 클라이언트가 DHCP_DISCOVER 과정을다시하도록함 21
DHCP 프로토콜 (8) DHCP 프로토콜의동작과정 22
DHCP 프로토콜 (9) 프로토콜동작 DHCP 를통한새로운주소할당 Server (not selected) Client Server (selected) Determine configuration Collect replies Determine configuration Select configuration Commit configuration Graceful Shutdown 이미주소가할당된경우 Initialization complete 23
DHCP 프로토콜 (10) UDP/IP 프로토콜의캡슐화 24