성균관 대학교

Download Report

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 의 모든 서브넷-지정 브로드캐스트

0all
정보통신연구실
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.