Forwarding
포워딩
- 패킷을 목적지로 보내기 위한 경로를 설정하는 것을 의미한다.
- 즉, 라우팅 테이블을 어떻게 구성할 것인지에 대한 개념이다.
- 포워딩은 목적지 주소에 기반하느냐, 레이블에 기반하느냐에 따라 목적지 주소 기반 포워딩, 레이블 기반 포워딩 두 가지 방법으로 나뉜다.
Forwarding based on Destination Address (목적지 주소 기반 포워딩)
- 목적지 주소 기반 포워딩에서 라우팅 테이블을 작게 만들어 처리 속도를 높이고 보안 문제를 해결하는 방법들로는 아래와 같은 방법들이 있다.
1. Next-Hop Method (다음 홉 방법)
- 패킷 헤더의 목적지 IP주소를 라우팅 테이블과 비교하여 Next-Hop 경로를 결정하는 방식이다.
- 전송 경로 상의, 각각의 노드에서는 진행할 바로 다음 노드만 계산하여 전송한다. (전체 경로는 신경쓰지 않는다.)
- 중간 경로의 노드에서 패킷의 전체 경로에 대한 주소(가변 길이 주소)를 모두 알아야 한다면, 주소 길이가 매우 길어질 위험*도 있고, 다른 네트워크의 수정 내용를 일일히 라우팅 테이블에 다 반영해야 하는 수고스러움이 발생한다.
- 바로 다음 경로만 생각함으로써, 목적지나 전송 경로상의 어떤 네트워크에 변화가 일어나 라우팅 테이블을 수정할 필요가 없고, 고정 길이의 주소(NHA)를 다룸으로써 처리 속도 또한 준수하게 유지할 수 있다.
* 한 국가내에서의 통신만 해도 평균적으로 10개 전후의 라우터를 경우한다.
2. Network-Specific Routing Table (네트워크 지정 라우팅 테이블)
- 같은 네트워크에 연결된 모든 호스트에 대한 Inerface, NHA 주소 엔트리를 갖는 대신, 같은 네트워크에 연결된 모든 호스트를 하나의 Entity로 간주하는 방식이다.
- 네트워크 지정 라우팅 테이블은 호스트 지정 라우팅 테이블보다 간결한 형태로 유지되어 처리속도에서 큰 차이가 난다.
Ex. 보안을 중시하는 Host로 인한 부분적 Host-Specific Entry
- 무선 네트워크는 고질적으로 오류가 잦고, 보안에 취약하다.
- D로 보내는 Entry와 Network 5로 보내는 Entry와의 중복은 목적지 주솟값을 체크하여 보다 구체적으로 매칭된 엔트리를 선택한다. (Multiple-Matching의 경우, 대응책)
(D로 보내는 패킷의 목적지 주소는 D의 32Bit 주소 전체와 일치할 것이고, Network 5 엔트리의 네트워크 주소 필드 일부에만 일치할 것이다. 즉, 라우터는 일치하는 Bit 수가 더 많은 경우인 D 엔트리를 선택하게 된다.)
- 보안을 중시하는 Host D로써는 전송 시간에서 손해를 보더라도 안전한 경로를 택해야 하기 때문에 S에서 D로 보내기 위해서 패킷을 R1이 아닌, R2로 보낸다.
3. Host-Specific Routing Table (호스트 지정 라우팅 테이블)
- 네트워크에 연결된 모든 호스트에 대한 Interface, NHA 주소를 모두 저장하는 방식이다.
- 다른 특별한 이유(보안 등)로 인해 효율성을 희생하는 방식이다.
4. Default Method (디폴트 방법)
- 몇 가지 목적지에 대한 엔트리를 따로 정의하고, 자주 보내지는 경로를 디폴트로 지정하는 방법이다.
- 확률함수에서 Otherwise 값을 지정하는 원리와 비슷하다.
- 디폴트 엔트리의 네트워크 주소와 마스크는 0.0.0.0이다.
(네트워크 필드 추출은 마스크와 목적지 주소의 AND 연산을 통해 이루어지는데, 다른 엔트리와 매칭되지 않은 목적지 주소가 0.0.0.0과의 AND 연산이 수행되면 그 결과 또한 0.0.0.0이 되어 디폴트 엔트리의 네트워크 주소인 0.0.0.0과 매칭되는 원리이다. 즉, 다른 엔트리와 매칭되지 않으면 무조건 디폴트 엔트리와 매칭될 수 밖에 없는 구조이다.)
Example 6.7, 6.8, 6.9, 6.10 (TCP/IP Protocol Suite pp.169-171.)
아래 그림을 참고하여, 라우터 R1에 대한 라우팅 테이블을 그리고, 주어진 목적지 주소들의 포워딩 프로세스를 서술하라.
1. 180.70.65.140
2. 201.4.22.35
3. 18.24.32.78
Solution 6.7 - 6.10
- Classless 주소 지정 방식에서의 라우팅 테이블에서는 네트워크 마스크 필드를 포함하여 적어도 4개의 필드가 필요하다.
Routing Table for R1 | |||
Network Mask | Network Address | Interface | NHA |
/26 (255.255.255.196) |
180.70.64.192 | m2 | Direct |
/25 (255.255.255.128) |
180.70.65.128 | m0 | Direct |
/24 (255.255.255.0) |
201.4.22.0 | m3 | Direct |
/22 (255.255.252.0) |
201.4.16.0 | m1 | Direct |
Default (0.0.0.0) |
Default (0.0.0.0) |
m2 | 180.70.64.200 |
1. 180.70.65.140 = 180.70.65.10001100 -> (180.70.65.128)
- 두 번째 엔트리의 네트워크 주소와 일치함을 확인할 수 있다.
- 즉 1번 패킷은 m0 인터페이스로 나가게 된다.
2. 201.4.22.35
- 세 번째 엔트리의 네트워크 주소와 일치함을 확인할 수 있다.
- 즉, 2번 패킷은 m3 인터페이스로 나가게 된다.
3. 18.24.32.78
- 라우팅 테이블의 어느 엔트리와도 일치하지 않으므로, Default 엔트리와 매칭된다.
Example 6.11 (TCP/IP Protocol Suite p.171)
라우터 R1에 대한 라우팅 테이블이 아래와 같이 주어졌을 때, R1을 중심으로 한 네트워크의 구성 형태를 그려라.
Solution 6.11
- 5가지 네트워크 주솟값이 존재하는 것으로 보아, 그려야 할 모식도에는 총 5개의 물리 네트워크가 존재해야 한다.
- Interface 필드에 3가지 값(m0, m1, m2)이 존재하는 것으로 보아, R1의 인터페이스 개수는 3개임을 알 수 있다. 또한, R1에 연결된 물리 네트워크 또한 3개임을 알 수 있다.
- NHA 필드에 Direct값(------)으로 지정된 3개의 네트워크 주솟값들이 R1에 직접적으로 연결된 네트워크임을 알 수 있다. 또한 그 네트워크들에 대한 인터페이스 값도 동시에 알 수 있다.
(즉, 직접 연결된 3개의 물리 네트워크, 간접 연결된 2개의 물리 네트워크가 존재한다.)
- NHA 필드에 특정 주솟값이 3종류로 있는 것으로 보아 R1과 하나의 물리 네트워크를 사이에 둔 상태로 연결된 라우터는 3개임을 알 수 있다.
-위 정보들을 토대로 그린 모식도는 아래와 같다.
Forwarding based on the Label (레이블 기반 포워딩)
- Connection-Oriented Delivery
- ATM Network
Reference: TCP/IP Protocol Suite 4th Edition
(Behrouz A. Forouzan 저, McGraw-Hill, 2010)
Reference: Data Communications and Networking 5th Edition
(Behrouz A. Forouzan 저, McGraw-Hill, 2012)