이 절에서는 인터넷에서 어떻게 주소 지정과 포워딩이 되는지를 알아보겠습니다. IP로 들어가기 전 인터넷 네트워크 계층을 구성하는 요소들을 생각해 봅시다. 밑의 그림과 같이 네트워크 게층은 3가지의 주요 요소가 있습니다.
첫째는 이절의 주요 주제인 IP프로토콜이고, 두번째 요소는 출발지에서 목적지까지 데이터그램이 따라가는 경로를 결정하는 라우팅 요소입니다. 마지막 요소는 데이터그램의 오류를 보고하고, 특정 네트워크 계층 정보에 대한 요구에 대해 응답하는 기능이다.
< IP 데이터 그램 형식 >
네트워크 계층 패킷을 데이터그램이라고 부른다는 것을 떠올리자. IP 데이터그램의 주요필드는 다음과 같다.
버전 번호 : 4비트로 데이터그램의 IP프로토콜 버전을 명시한다.
헤더 길이 : 데이터그램은 옵션을 포함하므로 이 4비트로 IP 데이터 그램에서 실제 데이터가 시작하는 곳을 결정한다. 대부분 데이터그램은 옵션을 포함하지 않으므로 대체로 데이터그램 헤더는 20바이트이다.
TOS : 서비스 타입비트는 다양한 '타입'의 IP데이터그램을 허용하고, 과부하가 발생했을 때 각각을 구별해서 다르게 관리한다.
데이터그램 길이 : 바이트로 계산한 IP 데이터그램(헤더와 데이터)의 전체 길이다. 이필드의 크기는 16비트이다.
인식자,플래그,단편화 오프셋 : 세 필드는 IP단편화와 관련성이 있다. 흥미롭게도 IP의 새로운 버전인 IP6는 라우터 단편화를 허용하지 않는다.
TTL : 이 필드는 데이터그램이 네트워크에서 무한히 순환하지 않음을 보장한다. 이 필드값은 데이터그램을 처리할때마다 감소한다. TTL 필드가 0이되면 데이터그램은 폐기된다.
프로토콜 : 이 필드는 IP데이터그램이 최종 목적지에 도착했을때만 사용된다. 이 필드값은 IP데이터그램에서 데이터 부분이 전달될 목적지의 트랜스포트 계층 프로토콜을 명시한다.
헤더 체크섬 : 헤더 체크섬은 라우터가 IP데이터그램을 받을 때 비트 오류를 찾는 데 도움을 준다.
출발지와 목적지 IP주소 : 출발지가 데이터그램을 생성할 때, 자신의 IP주소를 출발지IP주소 필드에 넣고 목적지 IP주소를 목적지 IP주소 필드에 넣는다. DNS검색을 통해 목적지 주소를 결정한다.
옵션 : 옵션 필드는 IP헤더를 확장한다.
데이터 : 데이터그램이 존재하는 이유의 마지막이면서 가장 중요한 필드다. 대부분의 경우 IP데이터그램의 데이터 필드는 목적지에 배달하기 위해 트랜스포트 계층 세그먼트(TCP,UDP)를 포함하지만 ICMP메시지와 같은 데이터 형태를 담기도 한다.
< IP 데이터그램 단편화 >
Network내의 link들을 각기 MTU를 갖는다. MTU : 링크 계층 패킷이 전달할 수 있는 최대 양
각 IP 데이터그램은 한 라우터에서 다른 라우터로 전송하기 위해 링크 계층 패킷으로 캡슐화되므로 링크 계층 프로토콜의 MTU는 IP데이터그램의 길이에 강한 제약을 둔다.
- 서로 다른 유형의 link는 서로 다른 MTU를 가질 수 있음
다른 링크 계층 프로토콜과 다른 MTU를 사용하는 링크를 여러 개 가진 라우터를 가정하자. 하나의 링크에서 IP데이터 그램을 받으면 여러분은 출력 링크를 결정하기 위해서 라우팅 테이블을 검사한다. 이 출력 링크가 IP데이터그램의 길이보다 더 작은 MTU를 갖는다. 이커다란 IP패킷을 링크 계층 패킷의 페이로드 필드로 짜 맞추기 위해 어떻게 할것인가? 2개 이상의 IP 데이터그램으로 나누어서 여러개의 작은 데이터그램을 출력 링크로 보내면 된다. 이러한 작은 데이터그램 각각을 조각(fragement)이라고 한다.
큰 IP datagram은 나뉘게 됨 (fragmented)
- 한개의 datagram이 다수의 datagram가 됨
- 오직 최종 목적지에서만 재결합됨
- Fragment들을 식별하고 순서를 지정하는데 IP header bit들이 사용됨.
위의 예제를 살펴보면 4000바이트(IP헤더 20바이트, IP페이로드 3980바이트)의 데이터 그램이 라우터에 도착하면 MTU가 1500바이트인 링크로 전달해야 한다. 이것은 3980바이트인 원래 데이터그램을 세 분리된 조각으로 할당해야 한다는 것을 의미한다.
fragflag =1 : 추가로 더있다. fragflag = 0 : 마지막 단편이다.
offset 0 : 데이터를 바이트 순서 0 시작점부터 삽입해야 된다는 의미
offset 185 : 데이터를 바이트 순서 1480 시작점 부터 삽입해야된다는 의미 185*8 = 1480
offset 370 : 데이터를 바이트 순서 2960 시작점 부터 삽입해야된다는 의미 370*8 = 2960
< IP 주소 체계 >
IP주소체계를 알아보기전 호스트와 라우터가 네트워크에서 연결되는 방식에 관한 몇 가지 단어를 정의해 봅시다. 호스트는 보통 네트워크와 연결되는 하나의 링크를 가진다. 호스트IP가 데이터그램을 보낼 때 이 링크를 통해 보낼 것이다. 호스트와 물리적 링크 사이의 경계를 인터페이스라 부릅니다.
IP 주소 : host와 router interface 지정을 위한 32-bit 식별자
interface: host/router와 물리적 link 사이의 연결
- Router는 일반적으로 다수의 interface를 지님
- Host는 일반적으로 하나의 interface를 지님
- 각 interface에 IP 주소가 할당됨
모든 호스트와 라우터의 각 인터페이스는 유일한 IP주소를 갖는다 하지만 이 주소를 마음대로 정하는 것은 아닙니다. 인터페이스의 IP주소는 연결된 '서브넷'결정합니다.
위 그림은 IP주소체계와 인터페이스의 예를 보여 준다. 이그림은 3개의 인터페이스를 갖고 있는 한 라우터는 7개의 호스트를 연결한다. 호스트와 라우터 인터페이스에 할당된 IP주소를 잘 살펴보자.(왼쪽 3개의 호스트와 연결된 라우터는 인터페이스는 223.1.1.x유형의 IP주소를 갖는다. 즉, 동일한 왼쪽 24비트를 사용한다.)
IP주소의 구성
- subnet 부분 (high order bits)
- host 부분 (low order bits)
Subnet이란 ?
- IP주소의 같은 subnet부분을 가진 interface들로 구성됨
- 동일 subnet내의 host들은 물리적으로 router를 거치지 않고 서로 접속할 수 있음
IP용어로 세 호스트들의 인터페이스들과 라우터 인터페이스로 연결된 네트워크는 subnet을 구성한다고 말한다.
구분 방법
Subnet을 결정하기 위하여, 우선 host나 router에서 각 interface를 분리하여 고립된 network를 만든다. 이러한 고립된 network를 subnet이라 부른다.
예를들어 어떤 서브넷에 223.1.1.0/24라는 주소를 할당하는데, 여기서 '/24'는 서브넷 마스크라 부르는데, 32비트 주소의 왼쪽 24비트가 서브넷 주소라는 것을 가리킨다.
< 문제 Subnet 개수는? >
서브넷의 IP정의는 여러 호스트를 라우터 인터페이스에 연결하는 이더넷 세그먼트만을 의미하는 것은 아니다. 세 라우터가 점대점 링크로 연결된 위의 그림을 살펴보자. 각 라우터는 각 점대점 링크를 위해 2개, 두 호스트를 직접 연결하는 브로드 캐스트 링크를 위해 1개, 모두 3개의 인터페이스를 갖는다. 여기에서 어떤 IP서브넷이 존재하는가? 세 서브넷 223.1.1.0/24 223.1.2.0/24 223.1.3.0/24는 두번째 위의 그림과 유사하지만 세 서브넷 라우터 R1,R2를 연결하는 인터페이스용 223.1.9.0/24 , 그리고 R2,R3을 연결하는 인터페이스 용 223.1.8.0/24 , R1과R3를 연결하는 인터페이스용 223.1.7.0/24 서브넷에 추가되었다.
'Network > 컴퓨터 네트워크' 카테고리의 다른 글
[15] CH4 네트워크 계층 < 인터넷 프로토콜(IP) -3 > (0) | 2021.12.02 |
---|---|
[14] CH4 네트워크 계층 < 인터넷 프로토콜(IP) -2 > (0) | 2021.12.02 |
[11] CH4 네트워크 계층 < 라우터 안은 무엇이 있나? > (0) | 2021.11.24 |
[10] CH4 네트워크 계층 < Network 계층 개요> (0) | 2021.11.24 |
[12] CH4 네트워크 계층 < 라우팅 알고리즘 > (0) | 2021.11.22 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!