• 검색 결과가 없습니다.

Objectives IPv4

N/A
N/A
Protected

Academic year: 2022

Share "Objectives IPv4"

Copied!
67
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

• IP 패킷의 헤더 구조 및 각 필드에 대한 이해

• IP 패킷의 단편화 개념

• IP 패킷의 헤더

Objectives

Chapter 7

IPv4

(2)

2

• 소개

• 데이터그램

• 단편화

• 옵션

• 검사합

• IP 패키지

(3)

소개

7.1

(4)

4

7.1 소개

IP 프로토콜

 TCP/IP에서 사용하는 전송 메커니즘

 신뢰성 없는 비연결형 데이터그램 프로토콜

 최선노력(best effort) 전달 서비스

 데이터에 대한 오류 검사 및 추적 기능을 수행하지 않음

 각 데이터그램은 독립적으로 처리

 각 데이터그램은 서로 다른 경로로 전달될 수 있음

 각 데이터그램은 순서가 바뀌어 전달될 수 있음

(5)

7.1 소개(계속)

IP 프로토콜의 위치

(6)

6

데이터그램

7.2

(7)

7.2 데이터그램

IP 데이터그램

(8)

8

7.2 데이터그램 (계속)

가변 길이 패킷

헤더와 데이터 부분으로 구성

헤더 : 20 ~ 60 바이트 길이, 라우팅과 전달에 필요한 정보

(9)

7.2 데이터그램 (계속)

버전(Ver) - IP 프로토콜 버전(4비트)

헤더길이(HLEN)

헤더의 전체 길이를 4 바이트 단위로 표시(4 비트)

기본값(Option 필드가 없는 경우) : 5

최대값 : 15

(10)

10

7.2 데이터그램 (계속)

서비스 유형(Service type) - (8 비트)

라우터에 의해 데이터그램이 처리되는 방법을 지정

3 bit는 우선 순위, 4 bit는 서비스 유형

Precedence interpretation

0 0 0

x x

x 0

0 1 x x

x x

x x x

x x x

x x

1 1 Differential service

interpretation x

(11)

7.2 데이터그램 (계속)

차별화된 서비스(Differentiated Service)

 오른쪽 3비트가 0이면 우선순위와 같은 의미로 해석

 오른쪽 3비트가 0이 아니면 기관에서 정의된 서비스

코드 포인트의 값

(12)

12

7.2 데이터그램 (계속)

전체 길이(total length)

16 bit 필드(65,535 까지 표현)

IP 데이터그램의 전체 길이를 바이트 단위로 표시

데이터 길이 = 전체 길이 – 헤더 길이

이더넷 프레임에서 작은 데이터그램의 캡슐화

(13)

7.2 데이터그램 (계속)

식별(Identification) – 단편화에 사용

플래그(flag) – 단편화에 사용

단편 옵셋(fragmentation offset) – 단편화 에 사용

수명(time to live) – 데이터그램의 수명

데이터그램의 수명

기본값 : 16

(14)

14

7.2 데이터그램 (계속)

프로토콜(protocol)

IP의 서비스를 사용하는 상위 계층 프로토콜

(15)

7.2 데이터그램 (계속)

프로토콜(protocol) (계속)

(16)

16

7.2 데이터그램 (계속)

검사합(checksum)

오류 확인

발신지 주소(source address)

목적지 주소(destination address)

(17)

7.2 데이터그램 (계속)

Example

처음 8비트가 “01000010”인 IP 패킷을 수신

HLEN = 2 이므로

총 헤더의 길이 = 2 * 4 = 8 바이트

최소 헤더의 길이는 20바이트이다.

따라서 패킷을 폐기한다.

(18)

18

7.2 데이터그램 (계속)

Example

HLEN = 1000(2진수) = 8

총 헤더의 길이 = 8 * 4 = 32 바이트

20바이트를 제외한 12바이트가 옵션이다.

(19)

7.2 데이터그램 (계속)

Example

HLEN = 0x5

총 헤더의 길이 = 5 * 4 = 20 바이트

전체 길이 = 0x0028 = 40 바이트

헤더를 제외한 나머지 20바이트가 데이터이다.

(20)

20

7.2 데이터그램 (계속)

Example

도착한 패킷의 16진수 값

45000028000100000102...

수명 필드 = 01 이므로 더 이상 전달하지 않는다.

프로토콜 필드 = 02 이므로 상위계층 프로토콜은 IGMP 이다.

(21)

단편화

7.3

(22)

22

7.3 단편화

물리 네트워크의 종류에 따라 프레임 형식과 크기가 서로 다르다

각 네트워크에서 전달되는 최대 전송 길이를 MTU (Maximum Transfer Unit) 라고 함

MTU 길이에 따라 나누어 보내는 것을 단편

화 (fragmentation) 라고 함

(23)

7.3 단편화 (계속)

MTU(Maximum Transfer Unit)

(24)

24

7.3 단편화 (계속)

서로 다른 네트워크의 MTU

(25)

7.3 단편화 (계속)

단편화와 관련된 필드

식별자(identification)

 발신지 호스트로부터 나온 데이터그램을 유일하게 식별

 단편들은 같은 식별자 값을 가짐

플래그(flag)

 3 비트 필드

 D 비트 : 단편화 할 수 없음을 표시

 M 비트 : 한 데이터그램의 마지막 단편이 아님을 표시

(26)

26

7.3 단편화 (계속)

 D 비트가 1이면서 사용 가능한 네트워크로 데이터그램을 전달할 수 없으면, 데이터그램을 폐기하고 ICMP 오류 메시 지를 발신지 호스트로 전달한다.

단편화 옵셋(Fragmentation offset)

 13 비트 필드

 전체 데이터그램에서 단편의 상대적인 위치(8 바이트 단위)

(27)

7.3 단편화 (계속)

단편화 예

(28)

28

7.3 단편화 (계속)

상세한 단편화 예

(29)

7.3 단편화 (계속)

수신한 단편들의 재조립

첫 번째 단편의 옵셋 값은 0

첫 번째 단편의 데이터 길이를 8로 나눈 값이 두 번째 단편의 옵셋 값과 동일

(두 번째 단편의 데이터 길이를 8로 나눈 값 + 두 번 째 단편의 옵셋) 이 세 번째 단편의 옵셋 값과 동일

M 비트가 0이면 마지막 단편

(30)

30

7.3 단편화 (계속)

Example

M 비트가 ‘0’인 패킷 도착

마지막 단편이 확실함

옵셋 값이 ‘0’이면 단편화 되지 않은 첫 번째 단편

아니면 마지막 단편

(31)

7.3 단편화 (계속)

Example

M 비트가 ‘1’인 패킷 도착

마지막 단편이 아님이 확실함

옵셋 값이 ‘0’이면 단편화 된 첫 번째 단편

아니면 중간 단편

(32)

32

7.3 단편화 (계속)

Example

M 비트가 ‘1’이고 옵셋이 ‘0’인 패킷 도착

단편화 된 첫 번째 단편

(33)

7.3 단편화 (계속)

Example

옵셋이 ‘100’인 패킷 도착

이 단편의 첫 번째 바이트 번호 = 8 * 100 = 800

(34)

34

7.3 단편화 (계속)

Example

옵셋이 ‘100’이고 HLEN가 ‘5’이고 전체 길이가 ‘100’인 패킷 도착

이 단편의 첫 번째 바이트의 번호 = 8 * 100 = 800

데이터 길이 = 전체 길이 – 헤더 길이 = 100 – 20 = 80

마지막 바이트의 번호 = 879

(35)

옵션

7.4

(36)

36

7.4 옵션

 옵션 형식

IP 데이터그램 헤더 내의 가변 부분(최대 40바이트)

(37)

7.4 옵션 (계속)

코드 필드(8 비트) : 고정 길이

복사(copy)

 단편화에 옵션을 포함시킨 것인지 제어

클래스(class)

 옵션의 목적을 나타냄

번호(number)

 옵션 유형

(38)

38

7.4 옵션 (계속)

옵션 유형

(39)

7.4 옵션 (계속)

무연산(No Operation)

옵션 사이의 여백을 채워줌 (1 byte option)

(40)

40

7.4 옵션 (계속)

종료 옵션(End of Option)

옵션 필드의 패딩 목적으로 사용 (1 byte option)

마지막 옵션으로만 사용

(41)

7.4 옵션 (계속)

경로 기록(Record Route) 옵션

데이터그램을 처리한 인터넷 라우터들 기록

(42)

42

7.4 옵션 (계속)

Pointer : 첫 번째 빈 엔트리의 바이트 번호

라우터는 Pointer 필드 값과 옵션의 길이 필드 비교

Pointer 필드 값이 크지 않은 경우에만 기록

데이터그램이 떠나는 인터페이스의 IP 주소를 기록

Pointer 값을 4만큼 증가

(43)

7.4 옵션 (계속)

데이터그램이 라우터를 경유하여 이동하는 과정

67.34.30.6 138.6.25.40

4.10.22 .10.5.4 .14.7.9 .14.7.14 .6.22.26

0.10.6.3

7 15 7 15

140.10.6.3

7 15 12 140.10.6.3 200.14.7.9

7 15 16 140.10.6.3 200.14.7.9 138.6.22.26

4 8

(44)

44

7.4 옵션 (계속)

엄격한 발신지 경로(Strict Source Route) 옵션

데이터그램이 거쳐야 할 경로를 미리 지정하기 위해 사용

(45)

7.4 옵션 (계속)

데이터그램은 옵션에 정의된 모든 라우터를 방문

데이터그램 폐기하고, ICMP 오류 메시지 발행하는 경 우

 리스트에 없는 라우터를 방문

 최종 목적지에서 데이터그램의 Pointer 값이 옵션 길이보다 적 은 경우 (방문하지 않은 라우터가 리스트에 존재)

 라우터로 들어온 데이터그램의 Pointer 값이 옵션 길이보다 큰 경우 (지정된 모든 라우터를 방문한 경우)

정상적으로 처리되면 Pointer 위치의 IP 주소를 들어온

(46)

46

7.4 옵션 (계속)

엄격한 발신지 경로 개념

67.34.30.6 138.6.25.40

67.14.10.22

140.10.0.0/16

140.10.5.4 200.14.7.9

200.14.7.0/24

200.14.7.14 138.6.22.26

138.6.0.0/16

140.10.6.3

Network Network Network Network

67.0.0.0/24

Source: 67.34.30.6 Destination: 67.14.10.22

200.14.7.14140.10.5.4 15 4 137

138.6.25.40

Destination:140.10.5.4 Source: 67.34.30.6

8 15 137

138.6.25.40 67.14.10.22 200.14.7.14

Source: 67.34.30.6 Destination:200.14.7.14

12 15 137

138.6.25.40 67.14.10.22 140.10.5.4

Source: 67.34.30.6 Destination:138.6.25.40

16 15 137

67.14.10.22 200.14.7.14 140.10.5.4

(47)

7.4 옵션 (계속)

느슨한 발신지 경로(Loose Source Route) 옵 션

엄격한 발신지 경로와 비슷하지만 리스트에 없는 라우 터도 방문 가능

(48)

48

7.4 옵션 (계속)

타임스탬프(Timestamp) 옵션

라우터가 데이터그램을 처리하는 시간 기록

세계 표준시(1900/01/01 00:00)의 millisecond 단위 표시

(49)

7.4 옵션 (계속)

하나의 라우터에서 다른 라우터로 가는데 걸리는 시간 추정

오버플로우(O-Flow) 필드

 시간을 기록하지 못한 라우터의 수 기록

플래그

 0 : 타임스탬프만 기록

 1 : 나가는 IP 주소와 타임스탬프 기록

 3 : 주어진 IP 주소와 데이터그램이 들어온 IP 주소가 같으면 IP

(50)

50

7.4 옵션 (계속)

타임스탬프에서 플래그 사용

(51)

7.4 옵션 (계속)

타임스탬프 개념

67.34.30.6

4.10.22 .10.5.4 .14.7.9 4.7.14 .6.22.26

.10.6.3

68 28 5 0 1 68 28 13 0 1

140.10.6.3 36000000

68 28 21 0 1 140.10.6.3

36000000 200.14.7.9 36000012

68 28 29 0 1 140.10.6.3

36000000 200.14.7.9 138.6.22.26

36000012 36000020

(52)

52

검사합

7.5

(53)

7.5 검사합

To create the checksum the sender does the following:

1. The packet is divided into k sections, each of n bits.

2. All sections are added together using

Note:

(54)

54

7.5 검사합 (계속)

검사합 개념

(55)

7.5 검사합 (계속)

Example 2 진수 검사합의 예

(56)

56

7.5 검사합 (계속)

Example 16 진수 검사합의 예

(57)

IP 패키지

7.8

(58)

58

7.8 IP 패키지

IP 패키지 구성요소

(59)

7.8 IP 패키지 (계속)

IP 패키지 구성 요소

헤더 추가 모듈

처리 모듈

라우팅 모듈

단편화 모듈

재조립 모듈

큐

(60)

60

7.8 IP 패키지 (계속)

헤더 추가 모듈(Header-Adding Module)

Receive: data, destination address

1. Encapsulate the data in an IP datagram.

2. Calculate the checksum and insert it in the checksum field.

3. Send the data to the corresponding input queue.

4. Return.

(61)

7.8 IP 패키지 (계속)

처리 모듈(Processing Module)

1. Remove one datagram from one of the input queues.

2. If (destination address is 127.X.Y.Z or matches one of the local addresses)

1. Send the datagram to the reassembly module.

2. Return.

3. If (machine is a router) 1. Decrement TTL.

4. If (TTL less than or equal to zero) 1. Discard the datagram.

(62)

62

7.8 IP 패키지 (계속)

 큐(Queue) – 입/출 큐

 라우팅 테이블 : 패킷의 다음 홉 주소를 결정하기 위 해 라우팅 모듈이 사용

 라우팅 모듈 : 처리 모듈로부터 받은 데이터그램 처리

 MTU 테이블 : 단편화 모듈이 특정 인터페이스의 MTU를 찾기 위해 사용

(63)

7.8 IP 패키지 (계속)

단편화 모듈(Fragmentation Module)

Receive: an IP packet from routing module 1. Extract the size of the datagram.

2. If (size > MTU of the corresponding network) 1. If (D (do not fragment) bit is set)

1. Discard the datagram.

2. Send an ICMP error message 3. Return.

2. Else

1. Calculate the maximum size.

2. Divide the datagram into fragments.

3. Add header to each fragment.

4. Add required options to each fragment.

(64)

64

7.8 IP 패키지 (계속)

재조립 테이블(Reassembly table)

재조립 모듈에 의해 사용

재조립 테이블

(65)

7.8 IP 패키지 (계속)

재조립 테이블 필드

상태(state) : FREE 또는 IN-USE

IP 주소 : 발신지 주소

데이터그램 ID : 단편을 구분하는 번호

타임 아웃 : 단편이 도착해야 하는 시간

단편 : 연결 리스트의 포인터

(66)

66

7.8 IP 패키지 (계속)

재조립 모듈(Reassembly Module)

Receive: an IP datagram from the processing module 1. If (offset value is zero and the M bit is 0)

1. Send the datagram to the appropriate queue.

2. Return.

2. Search the reassembly table for the corresponding entry.

3. If (not found)

1. Create a new entry.

(67)

7.8 IP 패키지 (계속)

재조립 모듈(Reassembly Module) (계속)

4. Insert the fragment at the appropriate place in the link list.

1. If (all fragments have arrived) 1. Reassemble the fragments.

2. Deliver the datagram to the corresponding upper layer protocol.

3. Return.

2. Else

1. Check the time-out.

참조

관련 문서

Inclusion and Inclusiveness: Shared Vision of Youth for Local, National, and Global Village Inclusion at large stands for embracing populations with disabilities and

It is impossible to change the voltage across a capacitor by a finite amount in zero time, for this requires an infinite current through the capacitor.. (A capacitor resists

The index is calculated with the latest 5-year auction data of 400 selected Classic, Modern, and Contemporary Chinese painting artists from major auction houses..

The key issue is whether HTS can be defined as the 6th generation of violent extremism. That is, whether it will first safely settle as a locally embedded group

The “Asset Allocation” portfolio assumes the following weights: 25% in the S&P 500, 10% in the Russell 2000, 15% in the MSCI EAFE, 5% in the MSCI EME, 25% in the

1 John Owen, Justification by Faith Alone, in The Works of John Owen, ed. John Bolt, trans. Scott Clark, "Do This and Live: Christ's Active Obedience as the

In a recent study([10]), Jung and Kim have studied the problem of scalar curvature functions on Lorentzian warped product manifolds and obtained partial

metaphors) (conceptual metonymy), (profile shift) 와 같은 인기 기제를 통해서 원형적인 의미들로부터 확장되어 나온다고 주장 한다 이러한 다의어의 의미