4. ICMPv4
IPv4 프로토콜은 오류 보고와 오류 수정 기능이 없다. IP 프로토콜은 호스트와 관리 조회를 위한 메커니즘도 없다.
인터넷 제어 메시지 프로토콜 버전 4(ICMPv4, Internet Control Message Protocol version 4)는 위의 두 가지 단점을 보완하기 위해서 설계되었다.
- 메시지들
ICMPv4 메시지는 크게 오류보고(error-reporting) 메시지와 조회(query) 메시지로 나눌 수 있다.
- 오류 보고 메시지들
IP가 신뢰성 없는 프로토콜이기 때문에 ICMP의 주된 임무 중 하나는 IP 데이터그램의 프로세싱 동안 발생하는 오류를 보고하는 것이다. 그러나 ICMP는 오류를 수정하는 것이 아니고 단지 보고만 할 뿐이다. 쌍으로 발생하는 쿼리 메시지는 호스트 또는 네트워크 관리자가 라우터 또는 다른 호스트에서 특정 정보를 가져오는 데 도움이 된다.
오류 메시지는 크게 4가지로 나눌 수 있다.
- 목적지 도달 불가(Destination Unreachable)
- 발신지 억제(Source Quench)
- 재지정 메시지(Redirection)
- 시간 초과(Time exceeded)
- 매개변수 문제(Parameter problem)
- 조회 메시지(Query message)
조회 메시지는 인터넷에서 호스트나 라우터가 잘 도앚ㄱ하고 있는지를 알아보거나, 두 장치 사이의 IP 데이터그램이 단방향 시간이나 왕복시간을 알아낸다. 또는 두 장치의 클록이 동기화되었는지 여부를 확인한다.
조회 메시지도 크게 4가지로 나눌 수 있다.
- 에코 요청 및 응답 (Echo request / reply)
- 타임스탬프 요청 및 응답 (Timestamp request / reply)
- 주소마스크 요청 및 응답(Address-mask request / reply)
- 라우터 요청 및 홍보 (Router solicitation / advertisement)
- 디버깅 도구들
디버깅 도구에는 크게 핑(Ping)과 Traceroute가 있다.
- 핑(Ping)
핑(Ping) 프로그램을 사용하여 호스트가 활성화되어 있고 응답 중인지 확인할 수 있다.
- Traceroute or Tracert(경로 추적)
유닉스에서 traceroute 프로그램 또는 윈도우에서 tracert는 발신자에서 목적지까지 패킷의 경로를 추적할 수 있다. 경로를 지나는 동안 방문하게 되는 모든 라우터의 IP 주소를 찾을 수 있다.
- ICMP 검사합
ICMP에서 검사합은 전체 메시지(헤더 및 데이터)에 걸쳐 계산된다.
5. 이동 IP
노트북과 같은 모바일 및 개인용 컴퓨터가 점점 더 인기를 끌면서, 우리는 모바일 IP, 즉 모바일 컴퓨터가 연결이 가능한 모든 위치에서 인터넷에 연결할 수 있도록 하는 IP 프로토콜의 확장에 대해 생각해 볼 필요가 있다.
- 주소 지정
IP프로토콜을 사용하여 이동 통신 서비스를 제공하멩 있어서 해결되어야 하는 가장 중요한 문제는 주소 지정이다.
- 집 주소(Home address): 원래 주소, 영구 주소
- 관리 주소(Care-of address): 외부 네트워크와 연결된 임시 주소
- 에이 전트(Agents)
주소가 변경되는 것을 외부 인터넷에서 알게 하기 위하여 홈 에이전트(home agent)와 외지 에이전트(foreign agent)가 필요하다.
- 세 단계(Three phase)
원격 호스트와 통신하기 위해서 이동 호스트는 아래와 같이 에이전트 발견, 등록, 데이터 전송이라는 세 단계를 거친다.
- 데이터 전달
에이전트 발견과 등록 단계 이후에 이동 호스트는 원격지 호스트와 통신을 할 수 있다.
- 더블 크로싱
더블 크로싱(double crossing)은 원격지 호스트가 자신과 같은 네트워크(또는 사이트)로 이동한 이동 호스트와 통신할 때 발생한다. 이동 호스트가 원격지 호스트에 패킷을 보낼 때에는 비효율성의 문제가 없고 통신은 완전히 지역적으로 수행된다. 그러나 원격지 호스트가 이동 호스트에 패킷을 보내면 패킷은 인터넷을 두 번 지나가게 된다. 컴퓨터가 같은 지역 내의 다른 컴퓨터와 통신하는 것이 더 자주 발생하므로 더블 크로싱의 비효율성은 심각하게 된다.
- 삼각형 라우팅
덜 심강한 경우인 삼각형 라우팅(triangle routing)은 이동 호스트가 원격지 호스트와 같은 네트워크에 연결되어 있지 않는 경우 발생한다. 이동 호스트가 원격지 호스트에 패킷을 보낼 때는 비효율성이 전혀 없다. 그러나 원격지 호스트가 이동 호스트에 패킷을 보낼 때는 패킷이 원격지 호스트에서 홈 에이전트로 가고 다음 이동 호스트로 간다. 패킷은 삼각형의 한 변 대신에 두 변을 지나가게 된다.
6. IP 패킷의 포워딩(Forwarding of IP Packets)
포워딩(forwarding)은 패킷을 다음 홉으로 전달하는 것을 의미한다. IP프로토콜은 원래 비연결형 프로토콜로 설계되었지만, 요즘에는 연결형 프로토콜로 바뀌는 경향이 있다.
- 목적지 주소 기반 포워딩
이는 일반적으로 사용되고 있는 방식이다. 이 경우 포워딩을 위해 포워딩 테이블을 가진 호스트나 라우터가 필요하다. 호스트가 전송할 패킷이 있거나 라우터가 포워딩할 패킷을 수신한 경우 포워딩 테이블을 참조하여 패킷을 전달할 다음 홉을 찾는다.
아래 그림의 구성을 이용하여 라우터 R1의 포워딩 테이블을 작성하라.
테이블을 작성할 때에는 CID가 높은순으로 작성한다.
만약 위의 그림에서 패킷이 180.70.65.140의 목적지 주소를 가지고 R1에 도착할 떄 포워딩 과정을 보여라
1. 처음 마스크(/26)는 목적지 주소에 적용된다. 결과는 180.70.65.192로서 해당하는 네트워크 주소와 맞지 않는다.
2. 두 번째 마스트(/25)의 목적지 주소에 적용한다. 결과는 180.70.65.128로 해당하는 네트워크 주소와 매치된다. 다음 홉 주소와 인터페이스 번호 m0은 패킷 전송을 위해 추출된다.
- 주소 집단화
클래스 없는 주소 지정을 사용할 때 포워딩 테이블 항목의 수가 증가할 가능성이 높다. 이것은 클래스 없는 주소 지정이 모든 주소 공간을 관리 가능한 블록으로 나누기 때문이다. 테이블의 크기가 증가하면 테이블을 검색하기 위한 시간이 증가한다. 이러한 문제를 완화하기 위해 주소 집단화(Address aggregation)기법이 설계되었다.
R1은 각각 64개의 주소를 사용하는 4개의 기관에 연결되어 있다. R2는 R1에서 먼 곳에 위치한다. 패킷이 해당 기관에 정확하게 라우팅되어야 하므로 R1의 라우팅 테이블은 길어지게 된다. 반면 R2는 짧은 라우팅 테이블을 가질 수 있다. R2에서는 목적지 주소가 140.24.7.0과 140.24.7.255 사이에 있는 패킷은 기관의 수와 상관없이 m0인터페이스를 통하여 송신된다.
- 가장 긴 마스크 매칭
이 원리는 라우팅 테이블이 가장 긴 마스크에서 가장 짧은 마스크의 순으로 정렬되어 있다는 것을 의미한다. 목적지 주소 140.24.7.200을 가지고 있는 기관4로 가는 패킷이 도착하는 경우 라우터 R2에서 첫 번째 마스크가 적용되어 네트워크 주소 140.24.7.192가 나온다. 패킷은 인터페이스 m1을 통하여 라우팅되고 기관 4에 전달되게 된다. 그러나 라우팅 테이블이 가장 긴 접두사부터 정렬되어 저장되어 있지 않다면 /24마스크가 적용된 경우 패킷은 라우터 R1로 잘못 전달될 수 있다.
- 포워딩 테이블 검색 알고리즘
클래스 없는 주소 지정에서는 대상 주소에 네트워크 정보가 없다. 가장 간단하지만 가장 효율적이지 않은 검색 방법을 앞에서 설명한 것처럼 가장 긴 접두사 일치라고 한다.
-레이블 기반 포워딩
1980년대에, 라우팅이 스위칭으로 대체되는 연결 지향 프로토콜처럼 동작하도록 IP를 어떻게든 변경하려는 노력이 시작되었다. 연결 지향 네트워크(가상 회로 접근 방식)에서 스위치는 패킷에 부착된 라벨을 기반으로 패킷을 포워드한다. 라우팅은 일반적으로 테이블의 내용 검색을 기반으로 하며, 전환은 인덱스를 사용하여 테이블에 액세스하여 수행할 수 있다. 즉, 라우팅은 검색을 포함하고 스위칭은 액세스를 포함한다.
위 그림은 가장 긴 마스크 알고리즘을 사용한 포워딩 테이블 검색의 한 예이다. 더 효율적인 알고리즘이 있지만 기본 원리는 마찬가지이다. 포워딩 알고리즘이 패킷의 목적지 주소를 받으면 마스크 열을 찾아보게 된다. 각 항목에 대해 마스크를 적용하여 목적지 네트워크 주소를 찾는다. 매칭되는 항목을 찾을 때까지 테이블 내의 네트워크 주소를 검사한다. 라우터는 데이터 링크층으로 전달하기 위해 다음 홉 주소와 인터페이스 번호를 추출한다.
위 그림은 교환 테이블에 접속하기 위한 레이블을 사용한 예를 보여준다. 테이블에서 레이블이 인덱스로 사용되므로 테이블 내에서 정보를 신속하게 찾을 수 있다.
- 새로운 헤더
IP와 같은 프로토콜을 사용하여 연결형 교환을 시뮬레이션하기 위해 가장 먼저 필요한 일은 레이블을 포함할 수 있는 새로운 필드를 패킷에 추가하는 것이다. IPv4 패킷에서는 이러한 확장이 가능하지 않았다. 해결책은 IPv4 패킷을 MPLS 패킷으로 캡슐화하는 것이다. IP 패킷이 MPLS 패킷의 페이로드로 캡슐화되고 MPLS 헤더가 추가된다.
MPLS헤더는 실제로 곧 설명될 다중 레벨 계층적 교환에서 사용되는 서브헤더 스택에 해당한다. 아래 그림은 각 서브헤더의 길이가 32비트(4바이트)인 MPLS헤더의 형식을 보여준다.
- 계층적 교환
MPLS내의 레이블 스택은 계층적 교환을 가능하게 한다. 예를 들어 패킷이 2개의 레이블을 가진 경우 상위 레이블은 기관 외부의 교환기를 통하여 패킷을 포워드하기 위해 사용하고 하위 레이블은 기관 내에서 패킷을 목적지 서브넷까지 전달하기 위하여 사용할 수 있다.
'Study > Networking' 카테고리의 다른 글
8.2 라우팅 알고리즘 (0) | 2023.04.15 |
---|---|
7.5 IPv6 & 7.6 IPv4 to IPv6 (0) | 2023.04.14 |
7.4 IPv4 - (2) (0) | 2023.04.13 |
7.4 IPv4 - (1) (0) | 2023.04.12 |
7.3 Performance (0) | 2023.04.11 |