이 장에서는 IP 패킷의 전송 및 전달에 대해 설명한다.
delivery란 패킷이 기본 네트워크에 의해 처리되는 방식을 말합니다.
네트워크 계층의 제어 하에서 작동한다.
direct 및 indirect 전달과 같은 개념이 논의된다.
forwarding은 패킷이 다음 스테이션으로 전달되는 방식을 의미한다.
forwarding의 두 가지 동향에 대해 논의한다.
패킷의 대상 주소를 기반으로 하는 forwarding과
패킷에 부착된 레이블을 기반으로 하는 forwarding이다.
네트워크 계층은 물리적 네트워크에 의한 패킷의 처리를 감독한다.
이 처리를 패킷의 delivery로 정의한다.
패킷을 최종 목적지로 배달하는 것은 direct와 indirect의 두 가지 다른 방법을 사용하여 이루어진다.
발생 상황
마스크를 사용하여 destination의 네트워크 주소를 추출하고
이 주소를 연결된 네트워크의 주소와 비교할 수 있다
이 때, 일치하는 항목이 있으면 direct delivery가 된다
라우터를 거치지 않고 전달
라우터를 경유하며 전달
direct
indirect
delivery에는 항상 하나의 direct delivery가 포함되지만 0개 이상의 indirect delivery가 포함, 또한 마지막은 항상 direct delivery이다
forwarding은 패킷을 destination으로 가는 경로에 배치하는 것을 의미한다.
오늘날 인터넷은 링크(네트워크)의 조합으로 이루어지기 때문에,
forwarding은 패킷을 next hop(최종 destination 또는 중간 연결 장치(라우터)일 수 있음)으로 전달하는 것을 의미한다.
IP 프로토콜은 원래 conectionless 프로토콜로 설계되었지만,
오늘날에는 IP를 conection oriented 프로토콜로 사용하는 경향이 있다.
IP가 conectionless 프로토콜로 사용될 때 forwarding은 IP 데이터그램의 destination 주소를 기반으로 한다.
Next-Hop Method
Network-specific method
Host-specific routing
Default routing
그림에서
Forwarding with Classful addressing without subnetting
forwarding 단계
Forwarding with Classful addressing with subnetting
classful에서 3개의 column이 있는 라우팅 테이블을 가진다
classless에선 적어도 4개의 col이 필요
Forwarding with Classless addressing
classless에선 클래스가 없다
forwarding을 위해선 각 블록에 대해 정보가 필요하다
네트워크 주소를 기준으로 테이블을 검색해야한다
패킷의 destination 주소는 네트워크 주소에 대한 단서를 주지 않는다
이를 해결하기 위해 마스크(/n)를 표에 추가해야한다
classful과 달리 하나의 열이 더 추가된다
Address aggregation
classfull에서 조직 외부의 각 사이트에 대한 라우팅 테이블에는 하나의 entry만 있다
사이트가 서브넷화된 경우에도 이 entry는 사이트를 정의한다
패킷이 라우터에 도착하면 라우터는 해당 entry를 확인하고 그에 따라 패킷을 전달한다
클래스리스에선 라우팅 테이블 항목의 수가 증가할 가능성이 높다
클래스리스의 목적은 전체 주소 공간을 관리 가능한 블록으로 나누는 것이기 때문이다
표 크기가 커지면 표 검색에 필요한 시간이 늘어난다.
이 문제를 완화하기 위해, address aggregation이 나왔다
R1은 각각 64개의 주소를 사용하는 4개 조직의 네트워크에 연결된다.
R2는 R1에서 멀리 떨어져 있다.
각 패킷이 적절한 조직에 올바르게 라우팅되어야 하므로 R1의 라우팅 테이블이 더 길다.
반면에 R2는 매우 작은 라우팅 테이블을 가질 수 있다.
R2의 경우 대상 패킷이 140.24.7.0 ~ 140.24.7.255인 경우 조직 번호에 관계없이 인터페이스 m0에서 전송된다.
4개 조직의 주소 블록이 하나의 더 큰 블록으로 집계되기 때문에 이를 address aggregation이라고 한다.
각 조직이 하나의 블록으로 집계할 수 없는 주소를 가지고 있다면 R2는 더 긴 라우팅 테이블을 가질 것이다.
address aggregation은 subnetting과 유사하지만, 여기에는 공통 사이트가 없다.
각 조직의 네트워크는 독립적이다.
또한 몇 가지 수준의 aggregation을 수행할 수 있다.
Longest mask matching
이전 그림의 조직 중 하나가 다른 세 조직과 지리적으로 가깝지 않으면 어떻게?
예를 들어, 조직 4가 어떤 이유로 라우터 R1에 연결할 수 없는 경우,
여전히 address aggregation을 사용하고 여전히 조직 4에 블록 140.24.7.192/26을 할당할 수 있나?
classless에서 라우팅은 longest mask matching을 사용하기 때문에 물음은 yes다
이 원리는 라우팅 테이블이 가장 긴 마스크에서 가장 짧은 마스크로 정렬됨을 나타낸다.
즉, 마스크가 /27, /26 및 /24인 경우 마스크 /27이 첫 번째 항목이고 /24가 마지막이어야 한다.
대상 주소가 140.24.7.200인 조직 4에 패킷이 도착한다고 가정.
라우터 R2의 첫 번째 마스크가 적용되어 네트워크 주소 140.24.7.192를 제공
패킷은 인터페이스 m1에서 올바르게 라우팅되어 조직 4에 도달
그러나 라우팅 테이블이 가장 긴 접두사 fi와 함께 저장되지 않은 경우 /24 마스크를 적용하면 패킷이 라우터 R1로 잘못 라우팅될 수 있음
제일 긴걸 매칭해라! 더 정확하니
Hierarchical routing
거대한 라우팅 테이블의 문제를 해결하기 위해 라우팅 테이블에 계층 구조를 만들 수 있다
인터넷은 계층을 가지고 있다
인터넷은 백본, 지역 및 지역 ISP로 나뉘어 있다
라우팅 테이블이 인터넷 아키텍처와 같은 계층 구조를 갖는 경우 라우팅 테이블의 크기가 감소할 수 있다