Transcript 성균관 대학교
TCP/IP 네트워크
2장 링크 계층
성균관 대학교
SungKyunKwan Univ.
목 차
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
Introduction
Ethernet and IEEE 802 Encapsulation
Trailer Encapsulation
SLIP : Serial Line IP
Compressed SLIP
PPP : Point-to-Point Protocol
Loopback Interface
MTU (maximum transmission unit)
Path MTU
Serial Line Throughput Calculations
요약
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
2
2.1 Introduction
링크계층의 목적
IP module을 위한 IP datagram의 send/receive
ARP module을 위한 ARP request와 reply
RARP module을 위한 RARP request와 reply
TCP/IP는 서로 다른 Link Layer를 지원한다
즉, TCP/IP 아키텍처는 어떤 종류의 물리적 네트워크
상에서도 수행할 수 있도록 설계되어 있다.
Ethernet, token ring, FDDI, RS-232 serial line, etc.
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
3
2.2 Ethernet and IEEE 802
Encapsulation
Ethernet
일반적으로 DEC, Intel, Xerox사가 1982년에 제안한
표준을 의미하며 CSMA/CD (Carrier Sense, Multiple
Access with Collision Detection) 라고 하는 access
method를 사용
전송속도 10Mbps, 48-bit address
IEEE 802 위원회
802.2 LLC(Logical Link Control)
802.3 CSMA/CD
802.4 token bus
802.5 token ring
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
4
2.2 Ethernet and IEEE 802
Encapsulation (Cont’d)
IP datagram encapsulation define
Ethernet에 대한 RFC 894
IEEE 802 network에 대한 RFC 1042
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
5
2.2 Ethernet and IEEE 802
Encapsulation (Cont’d)
Host Requirement RFC
RFC 894(Ethernet) encapsulation을 사용하는 packet을 송수신할 수
있어야 한다
RFC 894 packet과 혼합된 RFC 1042(IEEE 802) packet을 수신할 수
있어야 한다
RFC 1042 encapsulation을 사용한 packet을 송신할 수도 있어야 한
다. 호스트가 두 타입의 packet을 송신할 수 있다면 송신한 packet
의 타입을 구성할 수 있어야 하고 구성 옵션은 RFC 894를 따라야
한다.
RFC 894 encapsulation이 가장 일반적으로 사용되고 있다.
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
6
IEEE 802.2/802.3 캡슐화(RFC 1042)와
이더넷 캡슐화(RFC 894)
IEEE 802.2/802.3 Encapsulation(RFC 1042)
802.3 MAC
802.2 LLC
dest
addr
src
addr
leng
6
6
2
DSAP
AA
1
SSAP
AA
1
802.2 SNAP
cntl
03
1
org code
00
3
Ethernet
Encapsulation
(RFC 894)
dest
addr
src
addr
6
6
type
2
type
0800
2
type
0806
2
type
0835
2
data
CRC
38-1492
4
IP datagram
38-1492
ARP request/reply
28
RARP request/reply
28
PAD
10
PAD
10
46-1500 bytes
data
type
2
46-1500
type
0800
2
type
0835
2
정보통신연구실
4
IP datagram
2
type
0806
CRC
46-1500
ARP request/reply
28
RARP request/reply
28
PAD
18
PAD
18
성균관 대학교
SungKyunKwan Univ.
7
2.3 Trailer Encapsulation
RFC 893은 trailer encapsulation이라고 하는 또 다른 형태의
Ethernet encapsulation을 설명
이것은 IP datagram의 필드 순서를 바꿈으로서 성능 개선을
꾀한 실험에서 비롯되었음
즉, IP와 TCP header를 data 부분의 끝으로 옮김으로써 data가
kernel내로 복사될 때 memory to memory copy가 효율적으로
이루어지도록 한 것임
현재는 사용되지 않음
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
8
2.4 SLIP : Serial Line IP
RFC 1055
RS-232 serial port를 통해 Internet에 접속할 때 사용
framing rule
IP datagram의 앞뒤에 special character END(0xc0)를 추가. 이는 어떤
line noise가 데이터로 해석되는 것을 막기 위함.
IP datagram 내에 0xc0는 0xdb, 0xdc로 변환하여 전송(0xdb는 SLIP
ESC character라 함)
IP datagram 내에 0xdb는 0xdb, 0xdd로 변환하여 전송
IP datagram
END
c0
db
1
1
ESC
ESC
END
c0
db
dc
db
dd
c0
1
1
1
1
1
1
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
9
2.4 SLIP : Serial Line IP(Cont’d)
SLIP의 단점
각 end system은 서로의 IP address를 알고 있어야 한다. 즉, IP
address를 알려 줄 방법이 없다.
Ethernet의 type field와 유사한 type field가 없다. 어떤 serial line
이 SLIP을 사용하고 있다면 동시에 다른 protocol을 사용할 수
없다.
SLIP은 Ethernet의 CRC와 같은 아무런 checksum을 하지 않는
다. SLIP을 통해 전송하고 있는 datagram은 잡음으로 인해 잘
못될 수 있고, 이는 상위 계층이 검출해야 한다. 따라서 IP의
header checksum, TCP의 header와 data checksum, UDP의 header
와 data(optional) checksum이 이를 담당한다.
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
10
2.5 Compressed SLIP
RFC 1144 [Jacobson 1990a]
SLIP line은 저속(19200bits/sec or below)이며 interactive traffic(TCP
를 사용하는 Telnet or Rlogin)에 빈번히 사용 : 1 byte를 전송하기 위
해 40bytes(TCP 20, IP20)의 overhead가 있음.
이러한 성능상의 결점을 해결하기 위해 CSLIP을 고안
일반적으로 어떤 접속에 사용되는 두 header의 일부 field는 바뀌지
않는다는 성질을 이용하여 40 bytes의 header를 3 or 5 bytes로 줄여
서 전송. 따라서 이러한 작은 header는 interactive response time을 많
이 개선한다.
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
11
2.6 PPP : Point-to-Point Protocol
PPP는 SLIP의 모든 단점을 수정하며 다음과 같은 3개의 요소
로 구성된다.
Serial link상의 IP datagram을 encapsulation하는 방법. PPP는 8 bits
data, no parity를 사용하는 asynchronous link와 bit-oriented synchronous
link를 모두 지원한다.
Data-link connection을 설정, 구성, 테스트 하기 위한 LCP(Link
Control Protocols). 따라서 각 end system은 다양한 option을 협상할 수
있다.
NCP (Network Control Protocols)로 다른 네트워크 계층의 프로
토콜 지정. 현재 IP, OSI network layer, DECnet, AppleTalk를 위한 RFC
가 존재.
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
12
2.6 PPP : Point-to-Point Protocol
(Cont’d)
RFC 1331 : encapsulation method and link control protocol
RFC 1332 : network control protocol for IP
flag
7E
addr
FF
control
03
protocol
information
CRC
flag
7E
1
1
1
2
up to 1500 bytes
2
1
protocol
0021
IP datagram
protocol
C021
link control data
protocol
8021
network control data
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
13
2.6 PPP : Point-to-Point Protocol
(Cont’d)
information field에 0x7e가 나타난 경우
동기식 링크인 경우 bit stuffing
비동기식 링크인 경우 escape character(0x7d) 사용하며 escape
character가 PPP frame에 나타난 경우(두 번째 바이트의 6번째
bit를 보수로 바꿈)
• 0x7e는 0x7d, 0x5e
• 0x7d는 0x7d, 0x5d
• 0x20보다 작은 값은 무조건 투명유지 작업을 하게 된다. 예를 들
면 0x01은 0x7d, 0x21로 바꾸어 전송. 이는 호스트나 모뎀상의
serial driver가 ASCII control character로 인식하는 것을 막기 위함.
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
14
2.6 PPP : Point-to-Point Protocol
(Cont’d)
SLIP과 마찬가지로 constant(flag, address)를 생략하고 protocol을 1
byte로 줄여 사용할 수 있다. 그러나 이 경우에도 3 byte(CRC 2,
protocol 1)의 overhead가 생김. 또한 CSLIP과 마찬가지로 IP, TCP
header의 크기를 줄여서 사용할 수 있다.
SLIP보다 PPP가 주는 장점
한 serial line에 multiple protocol을 제공
각 frame에 cyclic redundancy check
IP network control protocol을 사용하여 IP address의 동적 협상 가능
CSLIP과 유사한 TCP, IP header compression
link control protocol을 통한 다수의 data-link option 협상
결과적으로 이러한 이점은 3 byte의 overhead, link를 설정할 때 협상을 하기 위
한 몇 개의 frame, 훨씬 더 복잡한 구현에 대한 대가이다.
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
15
2.7 Loopback Interface
같은 호스트내의 client와 server가 TCP/IP를 이용하여 통신하기 위
해 대부분 loopback interface를 제공
이름은 localhost, IP address는 127.0.0.1
IP output
function
IP input
function
Ethernet driver
place on IP
input queue
yes
destination IP address
equal broadcast address
or multicast address?
loopback driver
yes
no
destination IP address
equal interface IP address?
place on IP
input queue
IP
no, use ARP to
get des tination
Ethernet addres s
ARP
ARP
s end
demultiplex based on
Ethernet frame type
receive
Ethernet
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
16
2.7 Loopback Interface (cont’d)
Key points
loopback address로 보내진 모든 것은 IP input에 나타난다.
broadcast or multicast address로 보내진 datagram은 loopback interface
로 복사되고 Ethernet으로 보내진다. 이는 broadcasting과 multicasting
의 정의가 sending host를 포함하기 때문이다.
자신의 IP address 중 하나로 보내진 어떤 것도 loopback interface로 보
내진다.
모든 transport와 IP layer가 loopback data를 처리하는 것이 비효율
적으로 보일지도 모르겠지만 이는 network layer에게 loopback
interface가 단지 다른 link layer로 보이기 때문에 설계를 단순화 시
킨다.
또한 자신의 IP address 중 하나로 송신한 IP datagram은 네트워크
상에 절대로 나타날 수가 없다는 것을 암시한다.
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
17
2.8 MTU
frame의 크기를 제한하는 link layer의 특성을 MTU (maximum transmission unit)
라 한다.
IP datagram이 link layer의 MTU보다 크면 fragmentation이 일어나며 각
fragment는 MTU보다 작아야 한다.
이 중 Point-to-Point에 대한 MTU는 network media의 물리적 특성에 따른 것이
아니라 대화형 응용의 적당한 response를 제공하기 위한 논리적인 제한.
Network
Hyperchannel
16 Mbits/sec token ring(IBM)
4 Mbits/sec token ring(IEEE 802.5)
FDDI
Ethernet
IEEE 802.3/802.2
X.25
Point-to-Point(low delay)
정보통신연구실
MTU(bytes)
65535
17914
4464
4352
1500
1492
576
296
성균관 대학교
SungKyunKwan Univ.
18
2.9 Path MTU
두 호스트가 같은 network 상에서 통신할 때는 MTU가 중요한 factor이다.
그러나 두 호스트 사이에 multiple network가 개입되어 있는 경우 두 호스트가 접
속한 network의 MTU 보다는 중계 network의 가장 작은 MTU가 더 중요하며 이를
path MTU라 한다.
Path MTU는 일정하지 않으며 이는 어떤 시점에 사용된 경로에 의존하기 때문이
다.
또한 routing은 대칭이 아니다. 즉, A에서 B로 가는 경로와 B에서 A로 가는 경로가
다를 수 있기 때문이다. 따라서 path MTU는 두 방향이 서로 다를 수 있다.
RFC 1191에는 path MTU를 결정하기 위한 방법(path MTU discovery mechanism)을
설명하고 있다.
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
19
2.10 Serial Line Throughput
Calculations
line speed 9600bps, data 8 bits, start 1 bit, stop 1bit인 경우 960
byte/sec이며 1024 byte packet 전송에 1066ms가 소요된다.
이러한 가정하에 SLIP link 상에서 1024 byte frame을 나르는
application과 interactive application이 사용되는 경우 interactive
packet을 보내는데 평균 1066/2 = 533ms를 기다려야 한다.
Interactive traffic은 100-200ms를 넘어서면 좋지 않은 것으로 판
단한다[Jacobson 1990a](인간 공학 연구)
• MTU가 256인 경우 266ms(256/960) 소요되며 평균 wait는
133ms이다. 133이 완벽한 throughput은 아니나 64나 128보
다는 utilization이 좋다.
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
20
2.10 Serial Line Throughput
Calculations(Cont’d)
Point-to-Point link에서 MTU를 296으로 정한 이유
256+40(TCP + IP header)=296이다. 그러나 CSLIP을 사
용하는 경우 40을 5로 줄이기 때문에 261byte frame이
되고 261 중에서 98.1%(256/261)는 data, 1.9%(5/261)가
header이므로 좋은 utilization 이라고 할 수 있다.
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
21
2.11 요약
이더넷과 IEEE 802.2/802.3캡슐화의 차이점
SLIP과 PPP 캡슐화 차이점
SLIP과 PPP는 둘 다 저속 링크에서 사용되기 때문에 종종 변하
지 않는 필드는 압축하는 방법사용
루프백 인터페이스
MTU와 path MTU
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
22