Download presentation
Presentation is loading. Please wait.
1
Internet Protocol Version4
Chapter 7 Internet Protocol Version4 (IPv4)
2
학습목표(OBJECTIVES): IP 프로토콜 일반 개념과 TCP/IP 프로토콜 그룹 내에서 IP의 위치
IPv4 데이터그램 일반 형식 데이터그램 단편화(fragmentation)와 재조립(reassembly) IPv4 데이터그램 옵션과 이의 응용 송신자의 IPv4 데이터그램 헤더의 검사합 계산 방법과 수신측 검사합 확인 방법 ATM 상의 IP와 LAN상의 IP 또는 점-대-점 WAN과 비교 설명 IP 패키지의 간단화된 버전과 일부 모듈의 의사코드 소개
3
Chapter Outline 7.1 개요 7.2 데이터그램(Datagram) 7.3 단편화(Fragmentation)
7.1 개요 Chapter Outline 7.2 데이터그램(Datagram) 7.3 단편화(Fragmentation) 7.4 옵션(Option) 7.5 검사합(Checksum) 7.6 ATM 상의 IP 7.7 보안(Security) 7.8 IP Package
4
7-1 인터넷 프로토콜(IP) 개요 TCP/IP에서 사용하는 전송 메커니즘 신뢰성 없는 비연결형 데이터그램 프로토콜
최선노력(best effort) 전달 서비스 오류 검사 및 추적 기능을 수행하지 않음 각 데이터그램은 독립적으로 처리 각 데이터그램은 서로 다른 경로로 전달될 수 있음 각 데이터그램은 순서가 바뀌어 전달될 수 있음
5
TCP/IP 프로토콜 그룹 내에서 IP의 위치
6
7-2 DATAGRAMS 네트워크(internet) 계층에서 패킷을 데이터그램 (datagram)이라고 한다. 데이터그램은 헤더와 데이터 부분으로 구성된 가변 길이 패킷이다. 헤더(header) 길이는 20에서 60 바이트까지이고 라우팅과 전달에 필요한 정보가 들어있다. TCP/IP에서 헤더는 4-바이트 단위로 보여준다. 각 필드에 대한 간단한 설명은 다음과 같다.
7
IP 데이터그램
8
IP 데이터 그램 가변 길이 패킷 헤더와 데이터 부분으로 구성
헤더 : 20 ~ 60 바이트 길이, 라우팅과 전달에 필요한 정보 헤더 내의 필드 버전(Ver) - IP 프로토콜 버전(4 비트) 헤더길이(HLEN) - 헤더의 전체 길이를 4 바이트 단위로 표시(4 비트)
9
서비스 유형(Service type) TOS(Type of Service) - (8 비트) 라우터에 의해 처리하는 방법
3 bit는 우선 순위, 4 bit는 서비스 유형
11
Note The total length field defines the total length of the datagram including the header.
12
Figure 7.4 Encapsulation of a small datagram in an Ethernet frame
전체 길이(total length) 16 bit 필드(65,535 까지 표현) IP 데이터그램의 전체 길이를 바이트 단위로 표시 데이터 길이 = 전체 길이 – 헤더 길이 이더넷 프레임에서 작은 데이터그램의 캡슐화
13
다중화(Multiplexing) 식별(Identification) – 단편화에 사용 플래그(flag) – 단편화에 사용
단편 옵셋(fragmentation offset) – 단편화에 사용 수명(time to live) – 데이터그램의 수명
14
프로토콜(protocol) – IP 계층 서비스를 사용하는 상위 계층 프로토콜
검사합(checksum) - 오류 확인 발신지 주소(source address) 목적지 주소(destination address)
15
Example 7.1 처음 8 비트가 다음과 같은 IP 패킷이 도착했다고 하자: 수신자는 패킷을 폐기한다. 왜 인가?
Solution 이는 패킷안에 오류가 있다. 가장 왼쪽 4 bit(0100)는 버전을 나타내는데, 정확하다. 다음 4 비트(0010)는 헤더 길이를 나타내는데, 잘못되어 있다(2 × 4 = 8). 헤더에 있는 바이트 단위 최소 숫자는 20이어야 한다. 패킷은 전송 중에 훼손되었다.
16
Example 7.2 IP 패킷에서, HLEN의 길이가 2진수로 1000이다. 이 패킷에는 옵션이 몇 바이트 있는가?
Solution HLEN 값은 is 8이다, 이는 헤더의 바이트 단위의 총 길이가 8 × 4 또는 32 바이트임을 의미한다. 처음 20 바이트는 기본 헤더이고, 다음 12 바이트는 옵션이다.
17
Example 7.3 IP 패킷에서, HLEN의 길이가 516 이고 총 길이 필드 값은002816이다. 이 패킷은 몇 바이트의 데이터를 전송하는가? Solution HLEN 값은 is 5이고, 이는 헤더 길이가 5 × 4 또는 20 bytes (no options)임을 의미한다. 총 길이는 40 byte 이므로 패킷은 20(40 − 20) 바이트 데이터를 전송한다.
18
Example 7.4 처음 몇 개의 16진수 값이 다음과 같은 IP 패킷이 도착하였다:
이 패킷은 폐기되기 전에 몇 개의 홉(hop)을 지나갈 수있는가? Dl 패킷은 어떤 상위 계층 데이터를 전송하고 있는가? Solution time-to-live 필드를 찾기 위해, 8 바이트(16개 16진수 값)를 뛰어 넘는다. time-to-live 필드는 9번째 바이트로 값은 01이다. 이는 이 패킷은 단지 한 홉을 갈 수 있다는 것을 의미한다. 프로토콜 필드는 다음 바이트(02)이고, 이는 상위계층 프로토콜이 IGMP (표 7.2 참조)임을 의미한다.
19
7-3 단편화(FRAGMENTATION) 네트워크가 사용하는 프로토콜에 따라 프레임형식과 크기가 서로 다르다
각 네트워크에서 전달되는 최대 전송 길이를 MTU (Maximum Transfer Unit) 라고 함 MTU 길이에 따라 나누어 보내는 것을 단편화 (fragmentation) 라고 함
20
MTU(Maximum Transfer Unit)
21
7.2 단편화 서로 다른 네트워크의 MTU
22
Only data in a datagram is fragmented.
Note Only data in a datagram is fragmented.
23
단편화와 관련된 필드 단편화와 관련된 필드 식별자(identification) – 단편들은 같은 식별자 값을 가짐
플래그(flag) – 3 비트 필드 단편화 옵셋(fragmentation offset) – 13비트 필드 –전체 데이터그램에서 단편의 상대적 위치(8바이트 단위)
24
단편화 예(Fragmentation example)
25
상세한 단편화 예(Detailed fragmentation example)
26
Example 7.5 M 비트 값이 0 인 패킷이 도착하였다. 이것은 첫 번째 단편인가, 마지막 단편인가, 중간 단편인가? 패킷이 단편화되었는지 알 수 있는가? Solution 만약 M 비트가 0 이면, 이는 더 이상 단편이 없음을 의미한다; 단편은 마지막 단편이다. 그렇지만 원래의 패킷이 단편화되었는지 아닌지는 말 할 수 없다. 단편화되지 않은 패킷은 마지막 단편으로 간주한다.
27
Example 7.6 M 비트가 1 인 패킷이 도착하였다. 이것은 첫 번째 단편인가, 마지막 단편인가, 중간 단편인가? 패킷이 단편화 되었는지 알 수 있는가? Solution M 비트가 1이면, 적어도 하나 이상의 단편이 더 있음을 의미한다. 이 단편은 첫 번째이거나 중간 것일 수 있다, 하지만 마지막 단편은 아니다. 첫 번째 것 인지 중간 것인지 알 수 없다;추가적인 정보(단편화 옵셋 값)가 필요하다. 다음 예도 참조하라.
28
Example 7.7 A packet has arrived with an M 비트 값이 1 이고, 단편화 옵셋이 0 인 패킷이 도착하였다. 이것은 첫 번째 단편인가, 마지막 단편인가, 중간 단편인가? Solution M 비트가 1 이기 때문에, 첫 번째 단편이거나 중간 단편일 수 있다. 옵셋 값이 0 이기 때문에 이것은 첫 번째 단편이다.
29
Example 7.8 옵셋 값이 100 인 패킷이 도착하였다. 첫 번째 바이트 번호는 무엇인가? 마지막 바이트 번호는 알 수 있는가? Solution 첫 번째 바이트의 번호를 알기 위해서, 옵셋 값에 8을 곱한다. 이것은 첫 번째 바이트 번호가 800 임을 의미한다. 여기서 데이터 길이를 모르고서 마지막 바이트의 번호를 알 수 없다.
30
Example 7.9 옵셋 값이 100 이고 HLEN 값이 5 이고, 총 길이 필드 값이 100 인 패킷이도착하였다. 첫 번째 바이트와 마지막 바이트의 번호는 무엇인가? Solution 첫 번째 바이트 번호는 100 × 8 = 800 이다. 총 길이는 100 바이트인데, 헤더 길이는 20 바이트(5 × 4) 로, 이는 데이터그램에 데이터가 80 바이트임을 의미한다. 만약 첫 번째 바이트 번호가 800이면, 마지막 바이트 번호는 879 가 된다.
31
7-4 옵션(OPTIONS) IP 데이터그램의 헤더는 두 부분으로 되어있다: 고정된 부분과 가변길이 부분. 고정된 부분은 20 바이트 길이이고 앞 절에서 설명하였다. 가변 길이 부분은 최대 40 바이트까지 될 수 있는 옵션들로 구성되어있다. 이름에서 알 수 있듯이, 옵션은 데이터그램에서 요구되는 것은 아니다. 옵션은 네트워크 테스팅과 디버깅에 사용될 수 있다. 비록 옵션은 IP 헤더의 요구된 부분은 아니지만 옵션 처리는 IP 소프트웨어의 필수 부분이다.
32
옵션 형식(Option format)
33
7.4 옵션 유형 필드(8 비트) : 고정 길이 길이 필드(8 비트) : 고정길이
복사(copy) 단편화에 옵션을 포함시킨 것인지 제어 클래스(class) 옵션의 목적을 나타냄 번호(number) 옵션 유형 길이 필드(8 비트) : 고정길이 옵션의 전체 길이 값(value) : 가변 길이 – 특정 옵션이 필요로 하는 데이터 포함
34
옵션 분류(Categories of options)
35
무연산 옵션(No operation option)
옵션 사이의 여백을 채워줌(1byte option)
36
옵션 종료 옵션(End-of-option option)
옵션 필드의 패딩 목적으로 사용 (1 byte option)
37
경로 기록 옵션(Record-route option)
데이터그램을 처리한 인터넷 라우터들을 기록
38
경로 기록 개념(Record-route concept)
39
엄격한 발신지 경로 옵션(Strict-source-route option)
데이터그램이 거쳐야할 경로를 미리 지정하기 위해 사용 데이터그램은 옵션에 정의된 모든 라우터 방문
40
엄격한 발신지 경로 옵션(Strict-source-route option)
41
느슨한 발신지 경로지정 옵션(Loose-source-route option)
엄격한 발신지 경로와 비슷하지만 리스트에 없는 라우터도 방문 가능
42
Figure 7.19 Time-stamp option
라우터가 데이터그램을 처리하는 시간 기록 세계 표준시 이용 millisecond 단위 표시
43
타임스탬프에서 플래그 사용(Use of flags in timestamp)
Flag 1: 라우터는 출력 인터페이스 IP 와 타임스탬프 기록 Flag 3: 라우터는 주어진 IP 주소와 입력 인터페이스 IP 주소 비교, 같으면 IP 주소에 출력 인터페이스 IP 주소 덮어쓰고, 타임스탬프 추가
44
타임스탬프 개념(Timestamp concept) : Flag 1
45
Example 7.10 6개의 옵션 중 어느 것이 각 단편에 복사되어야 하는가? Solution
각 옵션에 대한 유형의 첫 번째 비트(가장 왼쪽)를 살펴본다. No operation: type is ; not copied. End of option: type is ; not copied. Record route: type is ; not copied. Strict source route: type is ; copied. Loose source route: type is ; copied. Timestamp: type is ; not copied.
46
Example 7.11 6개의 옵션 중 어느 것이 데이터그램 제어에 사용되고 어떤 것이 디버깅과 제어에 사용되는가?
Solution 각 옵션에 대한 유형의 두 번째와 세 번째 비트(가장 왼쪽)를 살펴본다. No operation: type is ; datagram control. End of option: type is ; datagram control. Record route: type is ; datagram control. Strict source route: type is ; datagram control. Loose source route: type is ; datagram control. Timestamp: type is ; debugging and management control.
47
Example 7.12 Ping은 IP 패킷의 이동을 점검하기 위해 사용하는 UNIX 유틸리티 중 하나이다. 다음 장에서, ping 프로그램에 대해 자세히 살펴볼 것이다. 이 예에서, 이 프로그램을 사용하여 호스트에 연결이 가능한지를 점검하는 방법을 설명하고자 한다. De Anza 대학에 있는fhda.edu라는 서버에 ping 한다. 결과는 호스트의 IP 주소가 임을 보여준다. 또 결과는 사용된 바이트의 숫자도 보여준다.
48
Example 7.13 Ping 유틸리티를 -R 옵션을 사용하여 경로 기록 옵션을 구현하는 방법을 살펴본다. 결과는 인터페이스와 IP 주소들을 보여준다.
49
Example 7.14 traceroute 유틸리티를 사용하여 패킷의 경로를 추적할 수 있다. 결과는 방문한 세 라우터를 보여준다.
50
Example 7.15 traceroute 프로그램은 느슨한 발신지 경로지정 옵션을 구현하는데 사용할 수 있다. -g 옵션을 사용하여 발신지와 목적지 사이에 방문하게 될 라우터를 지정할 수 있다. 다음의 내용은 fhda.edu 서버로 전달되는 패킷이 중간에 라우터로 방문하는 방법을 보여준다.
51
Example 7.16 traceroute 프로그램은 엄격한 발신지 경로지정 옵션을 구현하는데 사용될 수 있다. -G 옵션은 명령라인에 지정한 라우터 만을 따라서 패킷이 전달되도록 한다. 다음은 패킷이 주소를 가진 라우터 만을 방문한 후 fhda.edu 서버에 도달하는 방법을 보여준다.
52
7-5 감사합(CHECKSUM) 대부분의 TCP/IP 프로토콜에서 사용되는 오류 탐지 방법은 검사합(checksum)이다. 검사합은 패킷 전달 중에 발생할 수 있는 오류에 대해 보호한다. 이는 패킷에 추가된 중복 정보이다. 검사합은 송신자가 계산해서 얻어진 값을 패킷과 함께 보낸다. 수신자는 검사합을 포함한 패킷 전체에 대해 같은 계산을 한다. 결과가 만족하면 패킷을 받아들이고 그렇지 않으면 폐기한다.
53
검사합 개념(Checksum concept)
54
1의 보수 연산을 이용한 검사합 (Checksum in one’s complement arithmetic)
55
Checksum in IP covers only the header, not the data.
Note Checksum in IP covers only the header, not the data.
56
Example 7.17 다음은 옵션이 없는 경우 송신자가 IP 헤더의 검사합을 구하는 예를 보여주고 있다. 헤더 16 비트 단위의 조각으로 나눈다. 모두 조각들을 합한 후 보수를 구한다. 그 결과를 검사합 필드에 삽입한다. 송신자가 계산한 검사합 예
57
Example 7.18 다음은 수신자(또는 중간 라우터)가 계산한 검사합 점검을 보여주고 있다. 헤더는 16 비트 조각으로 나눈다. 모든 조각을 더한 후 보수를 구한다. 결과가 16개의 0 이므로 패킷을 받아들인다.
58
Appendix D gives an algorithm for checksum calculation.
Note Appendix D gives an algorithm for checksum calculation.
59
7-6 ATM 상의 IP 앞 절에서, IP 데이터그램을 전달하는 기반 네트워크는 LAN이나 점-대-점 WAN으로 가정하였다. 이 절에서, IP 데이터그램이 ATM 같은 교환형 WAN을 통하여 어떻게 전달되는지 살펴보고자 한다. 이 둘 사이에는 유사점과 다른 점이 있다. IP 패킷은 셀(한 개 이상의)에 의해 캡슐화된다. ATM 네트워크는 장치의 물리 주소에 대한 자신의 지정을 가지고 있다. IP 주소와 물리 주소의 결합은 ATM ARP 프로토콜에 의해 이루어진다.
60
인터넷에서의 ATM WAN
61
AAL(ATM Adaptation Layer) 계층
The AAL layer used by the IP protocol is AAL5. Note 인터넷에서 사용하는 유일한 AAL은 AAL5 SEAL(Simple and Efficient Adaption Layer)라고도 함 65,536 바이트보다 적은 IP 패킷을 받아 8 바이트 트레일러 추가 메시지를 48 바이트단위로 나누어 ATM 계층에 전달
62
셀 라우팅(Cell Routing) 진입점(entering-point)과 진출점(exiting-point) 라우터 사이에 경로 생성
63
ATM상의 IP 에서 주소 결합(binding)
사용되는 주소 IP 주소: IP 계층에서 라우터(진입점, 진출점)가 갖는 주소 물리 주소: 진출점 라우터가 갖는 주소로 ATMARP를 이용 가상 회선 식별자(VCI와 VPI): 물리주소와 결합하여 셀을 라우팅하기 위한 정보
64
7-7 보안(SECURITY) 전체 인터넷과 같이 IPv4 프로토콜은 인터넷 사용자들이 서로 신뢰하던 시기에 시작되었다. IPv4 프로토콜은 보안을 제공하지 않았다. 오늘날, 상황이 달라졌다; 인터넷은 더 이상 안전하지 않다. 29장과 30장에서 일반적인 인터넷 보안과 IP 보안에 대해 설명할 것이나, 여기서는 IP 프로토콜에서 보안 문제점과 해결책에 대해 간단히 살펴본다.
65
보안 문제점들 패킷 엿보기(Packet Sniffing) 패킷 수정(Packet modification)
수동적인 공격으로 공격자가 패킷 내용은 고치지 않는다. 패킷을 암호화해서 침입자 시도 무력화/내용을 알 수 없음 패킷 수정(Packet modification) 능동적인 공격으로 공격자는 패킷을 가로채고 내용을 고쳐서 다시 보낸다 데이터 무결성 메커니즘 사용하여 수정을 탐지 IP 위장하기(IP spoofing) 공격자는 다른 사람으로 위장하여 패킷을 생성하여 송신 발신지 인증 메커니즘 적용 방지
66
IPSec(IP Security) 알고리즘과 키의 결정 패킷 암호화 데이터 무결성 발신지 인증
양쪽 개체(entity)간에 보안 목적으로 사용 패킷 암호화 기밀성 유지(패킷 엿보기 공격 무력화) 데이터 무결성 패킷 변경 유무 확인 발신지 인증 IP 위장 공격 방지
67
7-8 IP PACKAGE 이 절에서, 가상 IP 패키지의 간단한 예를 보인다. 목적은 이 장에서 설명할 서로 다른 개념간의 관계를 보고자 함이다.
68
Topics Discussed in the Section
Header-Adding Module Processing Module Queues Routing Table Forwarding Module MTU Table Fragmentation Module Reassembly Table Reassembly Module
69
IP 구성요소(components)
70
IP 헤더 추가 모듈
71
처리 모듈
72
IP 패키지(Package)(계속) 큐(Queue) 라우팅 테이블 포워딩 모듈 MTU 테이블
입력 큐(데이터링크 계층이나 상위 계층으로부터 온 데이터그램 저장) 출력 큐(데이터링크계층이나 상위계층으로 가는 데이터그램 저장) 라우팅 테이블 패킷 다음 홉 주소를 결정하기 위해 포워딩 모듈에 의해 사용 포워딩 모듈 처리 모듈로부터 IP 패킷을 받아서 패킷을 전달하기 위해 보내져야 할 노드의 주소와 패킷이 보내져야 하는 인터페이스 번호를 찾는다 MTU 테이블 단편화 모듈이 특정 인터페이스의 MTU를 찾기 위해 사용
73
단편화 모듈
75
재조립 테이블( Reassembly table)
재조립 모듈에 의해 사용 상태 필드: FREE 또는 IN-USE IP 주소 필드: 데이터그램 발신지 IP 주소 데이터그램 ID: 데이터그램을 지정하는 값 타임아웃: 정해진 시간내에 모든 단편이 도착해야함 단편 필드: 단편들의 연결 리스트에 대한 포인터
76
재조립 모듈
77
알림 연습문제 풀이해서 Report로 다음주까지(일주일 후) 제출해 주세요!
Similar presentations