네트워크 - Internet Protocol Overview

2020-12-12

컴퓨터 네트워크를 공부하면서 정리를 한 내용들 입니다.

-참고 K-mooc 부산 대학교 유영환 교수님 : 컴퓨터 네트워크 강의


Internet Layer

인터넷 계층의 주 역할은 라우팅포워딩입니다.

라우팅 일을 하는 프로토콜들은 그림의 오른쪽에 약자로 적혀있습니다.

이 라우팅 프로토콜들이 공통적으로 하는 일은

소스로부터 목적지까지 길을 결정 해 주는 역할입니다.

라우팅 프로토콜들, 라우팅 알고리즘들이 동작 하기 위해서는

IP 프로토콜이 제공하는 정보가 필요합니다.

이 정보들은

  • 가장 기본적으로 주소
  • 주소가 부여 되는 형태
  • 주소가 부여 되면 어떤 형식으로 전체 네트워크가 구성 되는가?
  • 데이터그램의 구성
  • 패킷들을 어떻게 처리하는가?

를 포함하고 있습니다.

IP에서도 에러가 발생 하면, 라우터들이 알려 주어야 하는데

ICMP(Internet Control Message Protocol)가 그 역할을 담당합니다.

IP Datagram Format

그림은 IP 데이터그램의 헤더 형태 입니다.

TCP와 유사하게 전체 기본적인 헤더가 20 byte의 길이를 갖습니다.

선택적인 옵션 헤더가 더 붙을 수도 있습니다.

Version

첫 번째 필드는 version인데 4 bit 길이를 갖습니다.

인터넷 프로토콜 버전을 어떤 버전을 쓰느냐를 나타냅니다.

대부분은 버전 4지만 최신은 버전 6으로, 4 또는 6의 값을 가집니다.

Header length

다음에 header length가 있습니다.

UDP의 경우 옵션이 없었기에 명확하게 8byte 헤더를 갖기 때문에 없었다면,

TCP나 IP의 경우에는 옵션으로 인해 헤더가 어느 정도의 길이인지

명확하게 나타내기 위해서 header length가 필요합니다.

Type of Service

type of service라는 것은 type of data,

멀티미디어 데이터인지, 실시간성이 필요한 데이터인지와 같이

데이터의 종류를 뜻하기 위해서 만들어 놓은 필드입니다.

Length

length는 전체 데이터그램의 길이를 뜻합니다.

16-bit Identifier, Flag, Fragment Offset

다음에 세 개의 필드(16-bit identifier, flag, fragment offset)은

라우터가 너무 큰 segment를 데이터그램으로 분할하고,

목적지에 도착해서 재조립 하기 위해 필요한 정보를 담는 곳입니다.

TTL

다음은 TTL(Time To Live) 입니다.

TTL은 도착할 때 까지 최대 몇 hop을 거칠 수 있는지 정하는 필드입니다.

파랑 글씨로 설명은 “남아 있는 hop의 최대 값”으로 되어있는데,

출발 할 때 결정 하는 값 입니다.

하나의 라우터를 거칠 때 마다 1씩 줄어들고,

0이 되어도 목적지에 도달하지 못하면 datagram을 drop 시킵니다.

Upper Layer

upper layer 라는 것은, 트랜스포트 계층에서의 프로토콜이 무엇인가를 의미합니다.

TCP 또는 UDP Seement가 들어가고, 목적지에선 TCP 또는 UDP 처리부 중

어느쪽으로 넘겨줘야할지 결정하는 역할을 합니다.

Header Checksum

마지막으로 header checksum이라는 것은

CRC(Cyclical Redundancy Check)라는 방식으로

데이터를 담아서 전달을 하면, 헤더가 정확한지 아닌지 알 수 있습니다.

헤더만을 checksum 하는 이유는 굳이 IP에는 전체 데이터가 모두 정확하게 도착 할 필요는 없고,

헤더만은 중요하게 다루겠다는 의미입니다.

헤더가 문제가 생긴다는 것은 주소가 잘못 될 가능성이 있는 것이기 때문입니다.

IP Fragmentation & Reassembly

그림으로 예를 들면 source쪽 네트워크는 최대 사이즈 4000 byte를 지원 하는 네트워크입니다.

4000 byte 크기의 데이터가 전송되어 날아가고 있습니다.

이 라우터의 다음은 이더넷을 사용하는, 최대 사이즈 1500 byte를 지원하는 네트워크로 바뀐다면,

IP 프로토콜로 4000 byte 짜리를 잘게 나누어야 된다는 것입니다.

세 개의 프레임으로 나누어서 보내야 된다는 것입니다.

빨간색으로 되어 있는 부분이 데이터이고 파란 부분이 헤더라고 하면

빨간 부분을 잘게 세 개로 나눠서 각각에 헤더를 붙여서 전달을 하게 해야 됩니다.

이것이 fragmentation & reassembly의 역할이라는 것입니다.

그래서 네트워크 링크나 링크 계층에서는 maximum transfer unit, maxium transfer size

정해져 있고, 링크 레벨에 의해서 제약을 받게 됩니다.

그래서 이더넷이나 FDDI나 서로 다른 방식의 링크 프로토콜을 사용하게 되면,

허용하는 MTU, 최대 전송 사이즈가 달라지게 됩니다.

그래서 큰 데이터그램을 지원하던 네트워크에서 작은 크기의 데이터그램을 지원하는 네트워크로

패킷을 전달하기 위해서는 데이터의 분할이 일어나야 합니다.

이렇게 분할이 된 데이터를 목적지에 도달해서는 원래의 데이터그램으로 복원해야 하기 때문에

그런 제약이 있는 것이고 이를 위해서 IP 헤더에 몇 가지 정보를 담도록 했습니다.

그것이 16-bit identifier, flag, fragment offset입니다.