프로토콜 모음에서 IP의 위치를 보여준다.

IP는 신뢰성이 없고 비연결형이 데이터그램 프로토콜로서 최선의 노력(best effort) 전달서비스이다. 최선의 노력이란 의미는 IP 패킷은 오류가 발생하거나, 분실되거나, 틀린 순서로 도착하거나, 지연될 수 있으며 네트워크 내에서 혼잡의 문제를 발생시킬 수 있다는 것이다.

 


데이터그램

네트워크(인터넷) 계층의 패킷은 데이터그램(datagram)이라고 한다. 데이터그램은 가변 길이의 패킷으로 헤더와 데이터의 두 부분으로 구성된다. 헤더는 20바이트에서 60바이트이고, 라우팅과 정달에 필요한 정보를 포함하고 있다.

  • 버전(VER) : IP 프로토콜의 버전을 나타낸다. 현재 버전은 4이다. 그러나 장래에 버전6(또는 IPv6)으로 대치될 것이다.
  • 헤더 길이(HLEN) : 데이터그램의 헤더 길이가 20바이트와 60바이트 사이에서 변할수 있으므로 이 필으가 필요하다.
  • 서비스 유형 : 이 필드는 현재 차별화 서비스(differentiated services)의 집합이라고 불린다.
  • 전체 길이 : 헤더와 데이터를 포함하는 IP 데이터그램의 전체 길이를 바이트 단위로 나타낸다.
  • 식별(identification) : 단편화를 위해 사용된다.
  • 플래그(flags) : 단편화를 위해 사용된다.
  • 단편화 옵셋(fragmentation offset) : 단편화를 위해 사용된다.
  • 수명(time to live) : 데이터그램에 의해 방문되는 최대 홉(라우터) 수를 제어하기 위해 사용된다.
  • 프로토콜(protocol) : IP 계층의 서비스를 사용하는 상위 계층 프로토콜을 정의한다. IP 데이터그램은 TCP, UDP, ICMP, IGMP와 같은 여러 종류의 상위 계층 프로토콜을 캡슐화할 수 있다.
  • 검사합(checksum)
  • 발신지 주소(source address) : 발신지의 IP 주소를 정의한다. IP 데이터그램이 발신지에서 목적지까지 전달되는 동안 이 값은 변해서는 안된다.
  • 목적지 주소(destination address) : 목적지의 IP 주소를 정의한다. IP 데이터그램이 발신지에서 목적지까지 전달되는 동안 이 값은 변해서는 안된다.

 


단편화

최대 전달 단위

대부분의 프로토콜에서 각 데이터링크 계층은 자신의 프레임 형식을 가지고 있다. 프레임의 형식에 정의된 필드 중의 하나는 데이터 필드의 최대 크기인 최대 전달 단위(MTU, Maxmum Transfer Unit)이다. 데이터 그램이 프레임 속에 캡슐화될 때 데이터그램의 크기는 이 최대 크기보다 작아야 한다.

MTU의 값은 물리 네트워크 프로토콜마다 다르다. MTU가 작은 다른 네트워크에서는 데이터그램을 나누어서 보내야 한다. 이것을 단편화(fragmentation)라고 한다. 단편화된 데이터그램이 더 작은 MTU 값을 갖는 네트워크를 지나게 되면 다시 단편화된다.

데이터그램이 단편화될 때 헤더에서 요구되는 부분들은 모든 단편에 복사되어야 된다. 데이터그램을 단편화하는 호스트나 라우터는 플래그, 단편화 옵셋, 전체 길이 필드의 값을 변경하여야 한다.

  • 식별자(identification) : 발신지 호스트로부터 나온 데이터그램을 유일하게 식별한다. 같은 식별자 값을 가지는 모든 단편은 하나의 데이터그램으로 재조립되어야 한다.
  • 플래그(flag) : 처음 비트는 사용되지 않는다. 두 번째 비트는 do not fragment비트이다. 이 플래그 값이 1이면 데이터그램 단편화해서는 안된다. 만약 이 값이 0이면 필요한 경우 데이터그램은 단편화될 수 있다. 세 번째 비트는 more fragment 비트이다. 이 값이 1이면 데이터그램은 마지막 단편이 아니라는 것을 알려준다. 만약 0이면 마지막 단편이거나 유일한 단편이다.
  • 단편화 옵셋(fragmentation offset) : 전체 데이터그램 내에서 단편의 상대적 위치를 나타낸다. 이 필드는 원 데이터그램 내에서 데이터의 옵셋을 8바이트 단위로 나타낸 것이다. 그러므로 호스트나 라우터가 데이터그램을 단편화할 때 각 단편의 첫 번재 바이트의 번호는 8로 나뉘어지는 숫자이어야 한다.

 


옵션

IP 데이터그램의 헤더는 고정 부분과 가변 부분으로 구성되어 있다. 고정 부분의 길이는 20바이트이고 가변 부분은 옵션으로 구성되고 최대 길이는 40바이트이다. 옵션은 데이터그램 내에서 반드시 필요한 것은 아니나 이들은 네트워크를 시험하거나 디버그하기 위하여 사용된다.

 

형식(Format)

한 바이트의 유형 필드와 한 바이트의 길이 필드, 가변 길이의 값 필드로 구성된다. TLV(Type-Length-Value)라고 불린다.

유형(Type)

  • 복사(Copy) : 단편화에 옵션을 포함시킬 것인지를 제어한다. 0인 경우에 옵션은 첫 번재 단편에만 복사되어야 한다. 1인 경우에는 옵션이 모든 단편에 복사되어야 한다.
  • 클래스(Class) : 옵션의 일반적인 목적을 정의한다. 00인 경우에는 옵션이 데이터그램의 제어에 사용된다는 것을 의미한다. 10인 경우에는 옵션이 디버그나 관리 목적이라는 것을 의미한다.
  • 번호(Number) : 옵션의 유형을 정의한다.

길이(Length)

길이 필드는 유형 필드와 길이 필드를 포함한 옵션의 전체 길이를 정의한다.

 

값(Value)

값 필드는 특정 옵션이 필요로 하는 데이터를 포함하고 있다. 

 

옵션 유형

  • 무연산(no operation) : 이 옵션은 한 바이트 옵션으로 옵션들 사이의 여백을 채워준다.
  • 옵션 종료 옵션(end of option) : 이 옵션은 한 바이트이고 옵션의 필드 끝의 패딩 목적으로 사용된다. 오직 하나의 옵션 종료만 사용될 수 있고, 이 옵션 이후에는 페이로드 데이터가 있다.
  • 경로 기록 옵션(record route) : 이 옵션은 데이터그램을 처리한 인터넷 라우터들을 기록하기 위해서 사용된다.
  • 엄격한 발신지 경로 옵션(strict source route) : 이 옵션은 데이터그램이 인터넷에서 거쳐야 할 경로를 미리 지정하기 위해 사용된다.
  • 느슨한 발신지 경로 옵션(loose source route) : 엄격한 발신지 경로와 비슷하나 제약이 조금 완화된다. 리스트 속의 각 라우터는 반드시 방문되어야 하지만 리스트에 없는라우터도 방문할 수 있다.
  • 타임스탬프(Timestamp) : 라우터가 데이터그램을 처리하는 시간을 기록하기 위해 사용된다.

 


검사합

검사합은 패킷의 전달 중에 발생할 수 있는 오류로부터 패킷을 보호한다. 

 

송신자의 검사합 계산

  • 패킷을 크기가 n비트인 k개의 조각으로 나눈다.
  • 모든 조각을 1의 보수 연산을 사용하여 합한다.
  • 합에 대한 1의 보수가 검사합이다.

 

수신자의 검사합 계산

  • 수신된 패킷을 k개의 조각으로 나눈후 전부 합한다.
  • 합에 대한 1의 보수를 구한다.
  • 만약 결과가 0이면 패킷을 받아들이고 그렇지 않으면 거부한다.

 

IP 패킷의 검사합

IP 검사합은 헤더만 대상으로 하고 데이터는 포함하지 않는다.

 


ATM 상 IP

ATM WAN

셀 교환 네트워크인 ATM은 IP 데이터그램을 위한 고속도로가 될 수 있다. IP 프로토콜이 사용하는 AAL 계층은 AAL5이다.

 

셀 라우팅하기

ATM 네트워크는 두 개의 라우터 사이에 경로를 생성한다.

셀을 하나의 특정 진입점 라우터에서 하나의 특정 진출점 라우터로 라우팅하기 위해서는 IP 주소, 물리 주소, 가상 회선 식별자가 필요하다.

  • IP주소 : ATM 네트워크에 연결된 각 라우터는 IP 주소를 갖는다.
  • 물리 주소 : ATM 네트워크에 연결된 각 라우터(또는 어떤 다른 장치)는 물리 주소를 갖는다.
  • 가상 회선 식별자 : ATM 네트워크 내의 교환기들은 가상 회선 식별자(VPI와 VCI)에 근거하여 셀을 라우팅한다.

 

주소 결합

ATM 네트워크는 셀을 라우팅하기 위해서 가상 회선 식별자를 필요로 한다. IP 데이터그램은 단지 발신지와 목적지 IP 주소만을 갖고 있다. 가상 회선 식별자는 목적지 IP 주소로부터 결정되어야 한다.

  1. 진입점 라우터는 IP 데이터그램을 수신한다. 이는 진출점 라우터인 다음 라우터 IP 주소를 찾기 위하여 목적지 주소와 라우팅 테이블을 사용한다. 
  2. 진입점 라우터는 진출점 라우터의 물리 주소를 찾기 위해 ATMARP라 불리는 프로토콜의 서비스를 사용한다.
  3. 가상 회선 식별자는 물리 주소에 결합된다.

 


보안

보안 문제점들

IP 프로토콜에 특별히 적용되는 문제점들이 있다.

  • 패킷 엿보기(Packet sniffing) : 침입자가 IP 패킷을 가로채어 복사본을 만들 수 있다. 패킷이 복사되었음을 송신자와 수신자가 알 수 없으므로 탐지하기가 매우 어렵다. 패킷 암호화를 통해 침입자의 시도를 무력화 시킬 수 있다.
  • 패킷 수정(Packet modification) : 패킷을 수정하는 것이다. 무결성 메커니즘을 사용하여 탐지될 수 있다.
  • IP 위장하기(IP spoofing) : 공격자는 다른 사람으로 위장하여 다른 컴퓨터의 발신지 주소를 포함한 IP 패킷을 생성할 수 있다. 발신지 인증(origin authenication) 메커니즘을 사용하여 방지될 수 있다.

 

IPSec

IPSec(IP Security)라고 불리는 프로토콜을 사용하여 보안 문제점들로 부터 IP 패킷을 보호할 수 있다. IP 패킷과 같이 사용되는 이 프로토콜은 두 엔티티가 보안 문제점들에 대해 걱정할 필요 없이 IP 패킷을 교환할 수 있도록 하는 연결 지향 서비스를 두 엔티티 사이에 생성한다.

  • 알고리즘과 키의 결정 : 자신들 사이에 안전한 채널을 생성하기를 원하는 두 엔티티는 보안 목적으로 사용될 사용 가능한 알고리즘과 키에 대해 합의한다.
  • 패킷 암호화 : 두 당사자 사이에 패킷은 기밀성을 유지하기 위하여 합의된 암호화 알고리즘과 키를 사용하여 암호화될 수 있다.
  • 데이터 무결성 : 패킷이 전달 중 변경되지 않았음을 확인할 수 있도록 한다.
  • 발신지 인증 : 패킷의 발신지를 인증하여 패킷이 공격자에 의해 생성되지 않았음을 확인할 수 있도록 한다.

 


IP 패키지

IP 패키시의 간단한 예

IP 패키지에는 8개의 구성요소가 있다.

  • 헤더 추가 모듈 : 상위 계층 프로토콜로부터 데이터와 목적지 IP 주소를 받은 위 IP 헤더를 더함으로써 IP 데이터그램 내에 캡슐화한다.
  • 처리 모듈 : 처리 모듈(processing module)은 IP 패키지의 핵심이다. 설계에서 처리 모듈은 인터페이스나 헤더 추가 모듈로부터 데이터그램을 받는다.  어디에서 왔는지 상관없이 데이터그램은 처리되고 라우팅되어야 한다. 패킷이 최종 목적지에 도착하였으면 패킷은 재조립 모듈로 보내지고, 노드가 라우터라면 수면(TTL, Time to live) 필드의 값을 1 감소시킨다. TTL이 0 이하면 데이터그램은 폐기되고 0보다 크면 라우팅 모듈에 보낸다
  • 큐 : 입력과 출력은 큐라는 저장소를 사용한다.
  • 라우팅 테이블 : 라우팅 테이블은 패킷의 다음 홉 주소를 결졍하기 위하여 포워딩 모듈에 의해 사용된다.
  • 포워딩 모듈 : 포워딩 모듈은 처리 모듈로부터 IP 패킷을 받는다. 이 모듈은 보내져야할 노드의 주소와 패킷이 보내져야 하는 인터페이스의 번호를 찾는다. 그리고 이 정보와 함께 패킷을 단편화 모듈에 보낸다.
  • MTU 테이블 : MTU 테이블은 단편화 모듈이 특정 인터페이스의 MTU를 찾기 위해 사용된다. 
  • 단편화 모듈 : 단편화 모듈은 MTU 테이블을 참조하여 해당하는 인터페이스 번호의 MTU를 찾는다. 만약 데이터그램의 길이가 더 크다면 단편화 모듈은 데이터그램을 단편화하고 각 단편에 헤더를 붙인 후 주소 해석(address resolution)과 전달을 위하여 ARP 패키지에 보낸다.
  • 재조립 테이블 : 재조립 테이블(reassembly table)은 재조립 모듈에 의하여 사용된다. 상태(state), 발신지 IP 주소, 데이터그램 ID, 타임아웃(time-out), 단편(fragment) 필드가 있다.
    • 상태 필드 : FREE이거나 IN-USE일 수 있다.
    • IP 주소 필드 : 데이터그램의 발신지 IP 주소를 정의한다.
    • 데이터그램 ID : 이 데이터그램에 속하는 단편들을 유일하게 정의하는 번호이다.
    • 타임아웃 : 미리 결정된 시간으로 모든 단편이 이 시간 내에는 도착하여야 한다.
    • 단편 필드 : 단편들의 연결 리스트(linked list)에 대한 포인터이다.
  • 재조립 모듈 : 재조립 테이블 내의 연결 리스트를 사용하여 데이터그래에 속한 단편의 순서를 맞추고 모든 단편이 다 들어온 후 한 데이터그래멩 속한 모든 단편을 재조립하는 것이다. 정의된 타임아웃이 만료되었는데도 아직 들어오지 않은 단편이 있으면 모듈은 모든 단편을 폐기한다.

 


연습문제

1. ________ 프로토콜은 TCP/IP 프로토콜 모음에 의해 전달 메커니즘으로 사용된다.

a. ARP

b. IP

c. RARP

d. 정답 없음

 

2. IP는 ________ 데이터그램 프로토콜이다.

a. 신뢰성 없는

b. 비연결형의

c. 신뢰성이 없고 비연결형의

d. 정답 없음

 

3. ________ 라는 용어는 IP가 오류 점검과 추적을 하지 않는다는 것을 의미한다. IP는 하부 계층이 신뢰성이 없다는 가정을 하므로 목적지까지 패킷을 전달하기 위하여 최선을 다하지만 반드시 전달되는 보장을 하지는 않는다.

a. 신뢰성 있는 전달

b. 연결 지향 전달

c. 최선의 노력 전달

d. 정답 없음

 

4. IP와 같은 최선의 노력 전달 서비스 ________ 을 포함한다.

a. 오류 점검

b. 오류 교정

c. 데이터그램 확인응답

d. 정답 없음

 

5. 10진수로 10인 HLEN의 값은 다음 중 무엇을 의미하는가?

a. 옵션에 10바이트가 있다.

b. 옵션에 40바이트가 있다.

c. 헤더에 40바이트가 있다.

d. 정답 없음

 

6. 단편화 옵셋이 100이라는 것은 무엇을 의미하는가?

a. 데이터그램은 단편화되지 않았다.

b. 데이터그램의 길이는 100바이트이다.

c. 데이터그램의 첫 번째 바이트는 800번째 바이트이다.

d. 정답 없음

 

7. 단편의 마지막 바이트의 번호를 결정하기 위해 무엇이 필요한가?

a. 옵셋 번호

b. 전체 길이

c. 옵셋 번호와 전체 길이

d. 정답 없음 (옵셋 번호, 전체 길이, 헤더 길이 필요)

 

8. IP 헤더의 크기는?

a. 20에서 60바이트

b. 20바이트

c. 60바이트

d. 정답 없음

 

9. IP 계층의 패킷은 ________라 불린다.

a. 세그먼트

b. 데이터그램

c. 프레임

d. 정답 없음

 

10. 전체 길이 필드는 다음 중 어떠한 것에 대한 길이를 정의하는가?

a. 헤더를 포함한 데이터그램

b. 헤더를 제외한 데이터그램

c. 헤더와 옵션

d. 정답 없음

 

11. 데이터그램이 프레임에 캡술화될 때 데이터그램의 전체 길이는 ________보다 짧아야 한다.

a. MUT

b. MAT

c. MTU

d. 정답 없음

 

12. 다음 중 어느 옵션이 데이터그램이 정확히 네 개의 라우터를 방문하도록 지정하기 위해 사용되었는가?

a. 경로 기록

b. 엄격한 발신지 경로

c. 느슨한 발신지 경로

d. 정답 없음

 

13. 타임스탬프 옵션에서 ________의 플래그 값은 방문된 라우터가 제공된 필드 내에 타임스탬프 값만을 기록하도록 한다.

a. 0

b. 1

c. 2

d. 정답 없음

 

14. 과거에 서비스 유형 필드라 불렸던 IP 헤더는 현재 ________ 필드라 불린다.

a. IETF

b. 검사합

c. 차별화 서비스

d. 정답 없음

 

15. ________ 모듈은 메시지 단편들을 모아서 순서대로 정리한다.

a. 처리

b. 단편화

c. 재조립

d. 정답 없음

 

16. 어느 모듈이 IP 패킷과 다음 홉 주소 그리고 인터페이스 정보를 출력하는가?

a. 처리

b. 포워딩

c. 단편화

d. 정답 없음

 

17. 어느 모듈이 TTL 값이 0이 된 데이터그램을 폐기하는가?

a. 처리

b. 포워딩

c. 단편화

d. 정답 없음

 

18. 어느 모듈의 출력이 상위 계층 프로토콜로 가는 IP 패킷인가?

a. 처리

b. 포워딩

c. 재조립

d. 정답 없음

 

19. 어느 모듈이 전달하기 위한 패킷으 크기를 결졍하기 위해 MTU 테이블을 참조하는가?

a. 처리

b. 포워딩

c. 단편화

d. 정답 없음

 

20. 옵션 내의 어느 부필드 값이 단편 내에 옵션이 복사될 것인지를 제어하는가?

a. 복사

b. 클래스

c. 번호

d. 정답 없음

 

21. 옵션 내의 어느 부필드 값이 옵션의 일반 용도를 정의하는가?

a. 복사

b. 클래스

c. 번호

d. 정답 없음

 

22. 옵션 내의 어느 부필드 값이 옵션의 유형을 정의하는가?

a. 복사

b. 클래스

c. 번호

d. 정답 없음

 

23. 데이터그램에는 몇 개의 옵션 종료 옵션만이 사용될 수 있는가?

a. 2

b. 3

c. 1

d. 정답 없음

 

24. ATM 상 IP를 사용하는 경우 ________ 셀만이 8바이트 트레일러를 IP 데이터그램에 더하여 적재한다.

a. 마지막

b. 첫 번째

c. 마지막과 첫 번째

d. 정답 없음

 

25. ATM 상 IP를 사용하는 경우, 패딩은 단지 ________혹은 ________에 더하여질 수 있다.

a. 첫 번재 셀 ; 마지막 셀

b. 마지막 두개 셀; 마지막 세 개 셀

c. 마지막 셀; 마지막 두개 셀

d. 정답 없음 (답을 모르겠다.)

 

26. 진출점 라우터(exiting -point router)의 물리 주소를 찾기 위해서 ATM은 ________서비스를 사용한다.

a. ARP

b. PVC

c. ATMARP

d. 정답 없음

 

27. 인버스 요청과 인버스 응답 메시지들은 ________ 상태에서 IP 주소에 물리 주소를 바인드할 수 있다.

a. SVC

b. PVC

c. SVC와 PVC

d. 정답 없음(모르겠다.)

 

28. 요청과 응답 메시지는 ________ 상태에서  IP 주소에 물리 주소를 바인드하기 위해 사용될 수 있다.

a. SVC

b. PVC

c. SVC와 PVC

d. 정답 없음(모르겠다.)

 

29. ________은 여러 개의 논리적인 서브넷들로 분할된 ATM 네트워크를 허락한다.

a. LAS

b. LAN

c. LIS

d. 정답 없음(모르겠다.)

 

연습문제는 정답이 아닐수 있음. 이번에는 모르는것도 있었음

'네트워크 프로토콜' 카테고리의 다른 글

ARP  (0) 2021.10.25
IP 패킷의 전달과 포워딩  (0) 2021.10.24
IPv4 주소  (0) 2021.10.22
네트워크 계층의 소개  (0) 2021.10.21
기반 기술(1)  (0) 2021.10.18

+ Recent posts