Transcript 성균관 대학교
TCP/IP 네트워크 제 3장 인터넷 프로토콜 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 목 차 3.1. 개 요 3.2. IP 헤더 3.3. IP 라우팅 3.4. 서브넷 주소지정 3.5. 서브넷 마스크 3.6. 특수한 경우의 IP 주소 3.7. 서브넷 예제 3.8. ifconfig 명령어 3.9. netstat 명령어 3.10. IP의 미래 3.11. 요약 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 1. 개 요 IP 특징 RFC791 모든 TCP,UDP,ICMP,IGMP에서 사용 unreliable (상위층에서 신뢰성 보장) connectionless (예:전송순서A,B도착순서 B,A) 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 2. IP 헤더(1/9) Size 20byte (Option 제외) 전송순서 0-7, 8-15, 16-23, 24-31 비트 순서 big endian = network byte order little endian 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 2. IP 헤더(2/9) 0 15 16 4-bit header length 4-bit version 8-bit type of service (TOS) 16-bit total length (in bytes) 3-bit flags 16-bit identification 8-bit time to live (TTL) 31 8-bit protocol 13-bit fragment offset 16-bit header checksum 20 bytes 32-bit destination IP address 32-bit source IP address option (if any) data 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 2. IP 헤더(3/9) IP 헤더 필드 프로토콜 버전(4bit) - IPv4 헤더 길이 (4bit) • Option+ Header length • 60바이트까지 제한 정보통신연구실 성균관 대학교 SungKyunKwan Univ. IP 헤더(cont’d) 서비스 유형 필드 • (TOS: Type-of service-8bit선행필드(3bit) - 현재 무시 • TOS(4bit) » 최소지연, 최대 처리율, 최대 신뢰성, 최소 비용 » 하나만 선택가능 4bit 모두 0일 시 표준서비스 제공 비사용 비트(1bit=0) 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 2. IP 헤더(4/9) Application Telnet/Rlogin FTP control data any bulk data TFTP SMTP command pahse data phase DNS UDP query TCP query zone transfer ICMP error query any IGP SNMP BOOTP NNTP Minimize delay Maximize throughput Maximize reliability Minimize monetary cost Hex value 1 0 0 0 0x10 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0x10 0x08 0x08 0x10 1 0 0 1 0 0 0 0 0x10 0x08 1 0 0 0 0 1 0 0 0 0 0 0 0x10 0x00 0x08 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0x00 0x00 0x04 0x04 0x00 0x02 TOS 정보통신연구실 권고 필드 값 성균관 대학교 SungKyunKwan Univ. 2. IP 헤더(5/9) TOS minimum delay (빠른응답 요구) FTP maximum reliability (최대 신뢰성 요구) Telnet, rlogin maximum throughput (최대 처리율 요구) Example SNMP, routing protocol minimize monetary cost (최소 비용 요구) NNTP 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 2. IP 헤더(6/9) 16 비트 전체 길이 16 비트 식별자 IP 데이터그램의 총 바이트 길이(최대65535byte) 전체길이-헤더 길이= 데이터 부분의 시작 한 호스트에 의해 보내지는 각 데이터그램을 식별 하기 위해 사용 데이터그램을 보내는 순서에 따라 1씩 증가 3 비트 플래그 D : Don’t fragment, M:More fragment, unused 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 2. IP 헤더(7/9) 13 비트 분할 옵셋 fragment의 시작 위치를 표시(11장에서 설명) TTL(Time-to live:8bit) 데이터그램의 수명을 제한(라우터 경유시 1씩 감소) - Why ? 패킷이 라우팅 과정에서 루프에 빠 지는 것을방지하기 위한 것 프로토콜(8bit) 어느 프로토콜이 IP로 데이터를 보냈는 가를 구분하 기 위한것 Why ? Demultiplexing을 하기 위하여 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 2. IP 헤더(8/9) header checksum(16bit) IP 헤더만 checksum Source IP address and destination IP address (각각 32bit) PAD (Option 부분) IP 헤더가 32 비트의 배수가 되도록 하기 위하여 사용 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 2. IP 헤더(9/9) option 데이터그램에 대한 가변길이 정보 보안과 제한 사항 (군사 응용에 관한 것은 RFC 1108을 참조) 레코드 route (각 router가 자신의 IP address 기록) time stamp (각 router가 자신의 IP address와 time 기록) loose source routing (데이터그램이 거쳐야 하는 IP address 기록) strict source routing (데이터그램은 기록된 IP address를 따라 목적지까지 가야함) 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 3. IP Routing(1/9) Routing 개념 If 호스트와 목적지가 직접 연결되어 있거나 공유된 네트워크 (예:Ethernet, token ring)일 경우 then 목적지로 직접 전송 else 데이터그램을 디폴트 라우터로 보낸 후, 라우터가 목적지로 직접전송 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 3. IP Routing(2/9) IP layer가 상위 계층(TCP, UDP, ICMP, IGMP) 혹은 Network Interface로부터 datagram을 받았을 때 memory 내의 routing table 검사 후 전송 If 수신 datagram의 IP address = 자신의 IP address 혹은 broadcast address then protocol 모듈에게 전달 else 1) IP layer가 router로 동작할 수 있도록 구성되었다면 데이터그램 전송 2) 그렇지 않다면 discard 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 3. IP Routing(3/9) Routing table이 갖고 있는 정보 Destination IP address : host or network address next-hop router 혹은 직접 접속된 네트워크의 IP address flags destination IP address가 network인지 host인지를 식별 next-hop router address가 실제 router인지 직접 접 속된 interface인지를 식별(9장에서 설명) 전송을 위해 datagram을 넘겨 줄 network interface specification 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 3. IP Routing(4/9) routing table의 예 svr4 % netstat -rn Routing tables Destination 140.252.13.65 127.0.0.1 default 140.252.53.32 정보통신연구실 Gateway 140.252.13.35 127.0.0.1 140.252.13.33 140.252.13.34 Flags Refcnt UGH UH UG U 0 1 0 4 Use Interface 0 0 0 25043 emd0 lo0 emd0 emd0 성균관 대학교 SungKyunKwan Univ. 3. IP Routing(5/9) IP routing routing table search If destination IP address = IP address then next-hop router나 직접 접속된 interface로 packet을 send routing table search If destination network ID=network ID then next-hop router나 직접 접속된 interface로 packet을 send Routing table에서 “default”를 찾는다. 만일 찾았다면 지시된 next-hop router로 packet을 send 위의 과정에서 일치하는 것이 없다면 datagram은 폐기되고 “host unreachable” or “network unreachable” message가 해당 application에게 return 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 3. IP Routing (6/9) Examples bsdi(140.252.13.35)에서 sun(140.252.13.33)으로 IP datagram을 보내는 경우 routing table search 같은 subnet임을 확인 ARP 수행 후 전달 destination network = 140.252.13.0 bsdi sun .13.35 .13.33 Ethernet, 140.252.13 link IP hdr hdr dest IP = 140.252.13.33 dest Enet = Enet of 140.252.13.33 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 3. IP Routing(7/9) bsdi(140.252.13.35)가 ftp.uu.net(192.48.96.9)로 IP datagram 을 보내는 경우 dest Enet = Enet of 140.252.1.4 Internet next hop = 140.252.104.2 (default) netb dest IP = 192.48.96.9 link hdr IP hdr .1.4 Ethernet, 140.252.1 .1.183 next hop = 140.252.1.4 (default) netb modem SLIP IP hdr modem dest IP = 192.48.96.9 .1.29 next hop = 140.252.13.33 (default) bsdi sun .13.35 next hop = 140.252.1.183 (default) .13.33 Ethernet, 140.252.13 link hdr IP hdr dest IP = 192.48.96.9 정보통신연구실 dest Enet = Enet of 140.252.13.33 성균관 대학교 SungKyunKwan Univ. 3. IP Routing(8/9) bsdi sun routing table search. Host or network entry와 match되 지 않음. 따라서 default를 사용. ARP후 sun에게 전달. destination address가 자신이 아니고 router의 기능을 갖고 있으므로 datagram을 forward. routing table search. Host or network entry와 match되 지 않음. 따라서 default를 사용하여 netb에게 전달. netb sun과 동일한 절차를 따름. 단 default를 사용하여 gateway에게 전달하고자 할 때 ARP를 사용하여 Enet. Address를 구함. 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 3. IP Routing(9/9) gateway 이전의 두 router와 동일한 절차를 따름. default를 사 용하여 next-hop router인 140.252.104.2에게 datagram 을 forward. Key points 모든 host와 router는 default를 사용 destination IP address는 변경되지 않으며, 모든 routing의 기준이 됨. 각 link별로 다른 link header와 link address가 사용됨. 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 4. Subnet Addressing(1/2) RFC 950 host ID부분을 subnet ID와 host ID로 나누어 사용. 예) Class B: 16bits 8bits 8bits - 254개의 subnet과 subnet당 254개의 host를 가질 수 있다 Subnet 장점- routing table의 크기를 줄일 수 있다. Example 140.252 network의 외부 Internet router에게는 subnet이 transparent하게 보인다. 이는 140.252로 시작하는 어 떤 호스트에 도달하기 위해서는 무조건 140.252.104.1 로 routing을 하기 때문이다. 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 4. Subnet Addressing(2/2) kpno .81.0 .51.0 .57.0 R52 Internet gateway 140.252.104.1 R53 .52.0 R57 .53.0 .1.4 .1.0 R2 R3 R4 R5 R6 R7 R8 R9 .2.0 .3.0 .4.0 .5.0 .6.0 .7.0 .8.0 .9.0 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 5. Subnet Mask(1/3) subnet mask는 subnetID와 hostID에 몇 bit가 할당되는 지를 결정하기 위해 사용( 32-bit) 일반적으로 IP address는 dotted-decimal notation으로 표기하나 subnet mask는 hexadecimal로 표현. 16 bits 8 bits 8 bits Class B netid subnetid hostid Subnet mask: 11111111 11111111 11111111 00000000 = 0xffffff00 = 255.255.255.0 16 bits 10 bits 6 bits Class B netid subnetid hostid Subnet mask: 11111111 11111111 11111111 11 000000 = 0xffffffc0 = 255.255.255.192 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 5. Subnet Mask(2/3) IP address와 subnet mask를 이용하면 (1) 같은 subnet인지, (2) 같은 network의 다른 subnet인지, (3) 다른 network인지를 알 수 있다. Example host address:140.252.1.1, subnet mask가 255.255.255.0일 때 destination IP address가 140.252.4.5면 같은 network의 다른 subnet이다. destination IP address가 140.252.1.22면 같은 subnet이다. destination IP address가 192.43.235.6이면 다른 network이 다. 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 5. Subnet Mask(3/3) end of class B network ID 16 bits Class B Subnet mask: Class B 정보통신연구실 end of specified subnet ID 8 bits 8 bits 1 1 11111111 11111111 11111111 00000000 network IDs equal subnet IDs not equal 140 140 252 252 4 = 0xffffff00 = 255.255.255.0 5 성균관 대학교 SungKyunKwan Univ. 6. 특수한 경우의 IP 주소 IP 주소 이용가능한 설명 Net ID Subnet Host ID 발신지? ID 수신지? 0 0 0 hostid OK OK 불가 불가 이 네트상의 호스트 자신 이 네트상의 특정 호스트 127 anything O.K OK 루프백 주소( 2.7 절 ) -1 -1 불가 OK 제한된 브로드캐스트(전송하지 않음) netid -1 불가 OK netid 의 네트-지정 브로트캐스트 netid subnetid -1 불가 OK netid, subnetid 의 서브넷-지정 브로드캐스트 netid -1 -1 불가 OK netid 의 모든 서브넷-지정 브로드캐스트 0all 정보통신연구실 0, -1 all 1, 공백 not 서브넷팅 성균관 대학교 SungKyunKwan Univ. 7. 서브넷 예제(1/3) Internet 140.252.1.29 gatewa y .4 slip SLIP .65 subnet .66 140.252.13.64 Ethernet,subnet 140,252,1 140.252.1.29 bsdi sun .35 .33 svr4 .34 Ethernet,subnet 140,252,13.32 Author’s subnet 140,252,13 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 7. 서브넷 예제(2/3) Variable-length subnet Class B Net ID = 140.252 11 bits 5 bits Subnet ID Host ID 8 bits = 13 Subnet mask 128 64 32 16 8 1 4 2 11111111 11111111 11111111 111 000 00 = 0xffffffe0 = 255.255.255.224 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 7. 서브넷 예제(3/3) Author’s subnet의 IP Address Host IP address Subnet mask Net ID / Subnet ID Host ID Comment sun 140.252.1.29 140.252.13.33 255.255.255.0 255.255.255.224 140.252.1 140.252.13.32 29 1 하나의 서브넷 저자의 서브넷 Svr4 140.252.13.34 255.255.255.224 140.252.13.32 2 Bsdi 140.252.13.35 140.252.13.66 255.255.255.224 255.255.255.224 140.252.13.32 140.252.13.64 3 2 이더넷 점-대-점 slip 140.252.13.65 255.255.255.224 140.252.13.64 1 점-대-점 140.252.13.63 255.255.255.224 140.252.13.32 31 이더넷의 브로드캐스트 주소 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 8. ifconfig 명령어(1/2) 물리적 네트워크 인터페이스 및 할당된 인터페이 스 주소에 대한 정보 제공 인터페이스 정상적 동작? 패킷 수신 준비 ? 네트워크 인터페이스 소프트웨어가 정상적으로 설 치? Option -a : 모든 인터페이스를 알려줌(Only SunOS 존재) 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 8. ifconfig 명령어(2/2) Sun % /usr/etc/ifconfig -a le0: flags=63<UP,BROADCAST,NOTRAILERS,RUNNING> inet 140.252.13.33 netmask ffffffe0 broadcast 140.252.13.63 sl0: flags=1501<UP,POINTTOPOINT,RUNNING,LINK0> inet 140.252.1.29 netmask ffffff00 lo0: flags=49<UP,LOOPBACK,RUNNING> inet 127.0.0.1 netmask ff000000 bsdi % /sbin/ifconfig we0 we0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX> inet 140.252.13.35 netmask ffffffe0 broadcast 140.252.13.63 bsdi % /sbin/ifconfig sl0 sl0: flags=1011<UP,POINTTOPOINT,LINK0> inet 140.252.13.66 --> 140.252.13.65 netmask ffffffe0 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 9. netstat 명령(1/2) 시스템 인터페이스에 대한 정보를 제공 MTU, 입력 패킷 개수, 입력 에러 개수, 출력 패킷 개 수, 출력 에러 개수, 충돌 개수, 현재 출력 큐의 크기 Option -i : 인터페이스 정보를 출력 -n : 호스트 이름 대신 IP 주소 출력 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 9. netstat 명령(2/2) Sun % netstat -in Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue le0 1500 140.252.13.32 140.252.13.33 67719 0 92133 0 1 0 sl0 552 140.252.1.183 140.252.13.33 48035 0 54963 0 0 0 lo0 1500 127.0.0.0 15548 0 0 0 정보통신연구실 127.0.0.1 15548 0 성균관 대학교 SungKyunKwan Univ. 10. IP의 미래(1/2) IP의 세 가지 문제점 현재의 IP할당 속도가 매우 빠름 32비트 주소공간이 장기적으로 부적당 현재의 라우팅 구조에서 라우팅 테이블의 크기 증 가 문제 - CIDR에서 대안 제시(10.8) IPng : SIP, PIP, TUBA , TP/IX 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 10. IP의 미래(2/2) IPv4 address 사용 TCP, UDP, ICMP, IGMP를 위한 패킷전송 서비스제공 멀티캐스팅 옵션으로 제공 32bit IPv6 IPv4를 대신하기 위하여 1990년대 중반에 설계 128bit address TCP, UDP, ICMPv6를 위한 패킷 전송 서비스제공 멀티캐스팅 필수 (No 브로드 캐스팅 기능) ICMPv6=ICMP+IGMP+ARP 정보통신연구실 성균관 대학교 SungKyunKwan Univ. 11. 요약 헤더 라우팅 서브넷 서브넷 마스크 ifconfig 와 netstat 차세대 IP 정보통신연구실 성균관 대학교 SungKyunKwan Univ.