본문 바로가기

Computer Science/네트워크

[쉽게 배우는 데이터 통신과 네트워크] CH8. 네트워크 계층

반응형
SMALL

01. IPv6 프로토콜

호스트 주소 공간을 대폭 확장한 IPv6는 기존 인터넷 환경에서 사용하는 IPv4를 대체하기 위한 차세대 프로토콜이다.

 

✓ 주소 공간 확장

  • 송수신 호스트의 주소를 표현하는 공간이 32비트에서 128비트로 확장되었다.
  • 이론적으로 호스트를 최대 2^128개까지 지원하여 무한으로 확장되는 인터넷 접속자를 모두 수용할 수 있다.
  • 개인이 무선으로 연결하는 유비쿼터스 장비가 기하급수적으로 보급되는 환경에도 쉽게 대처할 수 있다.

 

✓ 헤더 구조 단순화

  • 불필요한 필드가 제외되거나 확장 헤더 형식으로 변경되었다.
  • 기존에 과도하게 수행하는 오류 제어와 같은 오버헤드를 줄여 프로토콜의 전송 효율을 높이기 위함이다.

 

✓ 흐름 제어 기능 지원

  • 흐름 제어 기능을 지원할 수 있는 필드(Flow Label)을 도입해 일정 범위 내에서 예측 가능한 데이터 흐름을 지원한다.
  • 실시간 기능이 필요한 멀티미디어 응용 환경을 수용할 수 있다.

 

1. IPv6 헤더 구조

IPv6 기본 헤더의 구조

  • 9개의 기본 필드를 지원한다.
  • 총 40바이트 중 32바이트는 주소 공간으로 할당되고, 8바이트만 프로토콜 기능을 위해 사용된다.
  • 기본 헤더 바로 뒤에 확장 헤더를 하나 이상 둘 수 있다.
    • Hop-by-Hop Options Header
    • Routing Header
    • Fragment Header
    • Destination Options Header
    • Authentication Header
    • Encapsulating Security Payload Header

 

1.1 DS/ECN 필드

  • 차등 서비스가 도입되면서 6비트의 DS 필드2비트의 ECN 필드가 정의되었다.

 

1.2 Flow Label 필드

  • 라우터는 필요한 흐름 정보를 저장하여 처리할 수 있어야 한다.
  • Flow Label 필드는 실시간 서비스가 필요한 응용 환경에서 사용한다.
  • 기본 원칙은 다음과 같다.
    • Flow Label 필드를 지원하지 않는 호스트/라우터에서는 Ipv6 패킷을 생성할 때 0으로 지정한다.
    • Flow Label 필드의 값이 0 이외의 동일한 번호로 부여받은 패킷은 모든 확장 헤더를 동일하게 지정한다.
    • Flow Label 필드 값은 최대 범위 내에서 랜덤하게 선택된다. (중복 허용X)

 

1.3 기타 필드

  • Version Number(버전 번호): IP 프로토콜의 버전 번호
  • Payload Length(페이로드 길이): 헤더를 제외한 패킷의 크기
  • Next Header(다음 헤더): 기본 헤더 다음에 이어지는 헤더의 유형을 수신 호스트에 알려준다.
  • Hop Limit(홉 제한): IPv4의 TTL 필드와 동일한 역할 수행 (IPv4와 달리 중개되는 횟수로만 처리)
  • Source Address/Desination Address(송신 호스트 주소/수신 호스트 주소): 송수신 호스트의 IP 주소

 


2. IPv6 주소

2.1 주소 표현

IPv6의 주소 표현

  • 16비트의 숫자 8개를 콜론(:)으로 구분한다.

 

2.2 주소 공간

IPv6의 주소 공간

  • 주소 공간을 주소대별로 다른 용도로 사용한다.
    • 상위 8비트가 0000 0000으로 시작하는 첫 번째 예약 공간에는 IPv4의 주소 공간도 포함된다.
    • Link/Site 지역 주소 공간은 지역적으로 사용하는 주소로, 개별 지역에서 사용하므로 외부와 충돌이 발생하지 않는다.
    • 멀티캐스트 주소 공간에서는 128비트의 전체 주소 필드가 상위 8비트의 1111 1111과 4비트의 플래그, 4비트의 스코우프 플래그, 112비트의 그룹 구분자로 구성된다. (스코우프 플래그는 멀티캐스트 적용 범위를 특정 기관이나 사이트로 제한)
  • IPv6에서는 애니캐스트(Anycast)라는 새로운 주소 체계도 지원한다.
    • 애니캐스팅 방식은 멀티캐스팅과 유사한 기능을 제공한다.
    • 그룹 내의 특정 호스트에만 패킷을 전송한다. (멀티캐스팅과의 차이)

 


02. 이동 IP 프로토콜

기존 유선망 환경을 위주로 한 고정 통신망에서 유무선이 복합된 이동 광대역 통신망 시대가 본격적으로 진행되고 있다.

점점 더 유무선 통합 서비스가 확대되며, 고속의 멀티미디어 서비스 지원이 가속화될 것이다.

 

1. 터널링 원리

1.1 상이한 전송 수단

상이한 전송 수단

  • 터널링 원리를 이해하기 위한 사람이 육지와 섬을 거쳐 이동하는 경우의 예시이다.
  • 버스와 배는 모두 네트워크 계층을 지원하는 IP 프로토콜로, 버스와 배에 실려서 이동하는 홍길동전송 데이터로 볼 수 있다.
  • 👎 문제점은 홍길동 스스로 IP 프로토콜을 교체하는 작업이 추가로 이루어져야 한다.

 

1.2 터널링 방식

IP 터널링의 원리

  • IP 프로토콜을 교체하는 방식보다 문제를 간단히 해결하는 방법은 터널링 기능을 이용하는 것이다.
  • 홍길동은 출발지에서 목적지까지 버스만 이용하므로, 네트워크 최종 사용자인 홍길동은 IP 프로토콜의 교체 과정에 개입하지 않을 수 있다.
  • 터널링이 필요한 지점의 추가 작업은 제3자가 처리하는 구조이다. (이동 IP를 처리하는 과정에서 사용자는 터널링 관련 부분에 대한 부담이 없음)

 


2. IP 터널링

  • 컴퓨터 네트워크 환경에서 2개의 호스트를 연결해 통신하려면 몇 가지 선결 조건이 필요하다.
    • 통신할 상대방을 다른 상대자와 구분한다. (IP 주소 사용)
    • IP 주소가 호스트의 위치에 따라 변경되도록 하는 것이 현재의 인터넷 환경에 적합한 방식이라고 할 수 있다.

 

이동 IP 프로토콜의 기본 동작 원리

  • 이동 호스트의 위치가 바뀌면 새로운 위치를 관장하는 FA(Foregin Agent)new로부터 COA(Care of Address)를 얻는다.
    • COA는 이동 호스트의 HA(Home Agent)에 등록되어 FAnew와 HA 사이에 터널을 형성하는 데 사용된다.
    • HA로 라우팅된 패킷을 이동 호스트에 전달하려면 새로 형성된 터널을 통해 FAnew로 전달해야 한다.
    • 이동 호스트는 네트워크에 있는 다른 호스트와 통신할 때 홈 주소를 사용한다.
    • 호스트가 이동할 때마다 새로운 COA가 할당되고 기존 COA는 회수되는 과정이 반복된다.
  • 송신 호스트가 이동 호스트를 목적지 주소로 표기하여 패킷을 전송하는데, 패킷은 홈 에이전트 쪽으로 전달된다.
  • 홈 에이전트는 이동 호스트를 관장하는 FA와 설정된 터널을 이용해 패킷을 중개하고, FA가 패킷을 다시 이동 호스트에 전달함으로써 데이터 전송을 완료한다.

 

IP 터널

  • 송수신 호스트 사이에서 동작하는 IP 프로토콜과는 별도로 추가적인 IP 프로토콜을 사용해 패킷을 중개해야 한다.
  • 원 IP 패킷을 데이터로 취급하는 새로운 형태의 IP 캡슐 패킷이 구성되어 전달된다.
    • 원 패킷의 Desination Address 필드에는 이동 호스트의 홈 주소가 들어간다.
  • 캡슐 패킷으로 변경하는 과정에서 새로운 IP 헤더가 추가된다.
    • 추가된 헤더의 Destination Address 필드에는 COA가 들어간다.

 


03. 기타 네트워크의 계층 프로토콜

인터넷 환경에서 데이터 전송 과정이 올바르게 이루어지려면 전송 프로토콜 외에도 다양한 제어 프로토콜이 필요하다.

 

1. ARP 프로토콜

IP 주소로부터 수신 호스트의 MAC 주소를 얻는 작업이 추가로 필요하다.

 

1.1 MAC 주소

ARP의 필요성

  • IP 프로토콜 헤더에서 필요한 송수신 호스트의 IP 주소와 함께 MAC 계층에서도 송수신 호스트의 MAC 주소가 필요하다.
  • 송신 호스트의 내부 정보로는 MAC 주소를 얻을 수 없다. 따라서 수신 호스트의 IP 주소를 매개변수로 하여 ARP 기능을 통해 수신 호스트의 MAC 주소를 얻어야 한다.
  • ARP를 사용하는 호스트는 가장 최근에 얻은 IP 주소와 MAC 주소 매핑 값을 보관하는 캐시 정보를 이용한다. (트래픽 증가를 막기 위함)

 

1.2 RARP 프로토콜의 필요성

  • MAC 주소를 이용해 IP 주소를 제공한다.
  • 디스크가 존재하지 않는 곳에서는 파일 시스템이 없으므로 IP 주소를 보관할 방법이 없다.

 

RARP의 필요성

  • LAN 카드에 내장된 MAC 주소를 매개변수로 하여 RARP 기능을 수행함으로써 자신의 IP 주소를 얻어야 한다.
  • 모든 호스트가 RARP 변환 요청을 받아도 해당 정보를 보관하고 있는 RARP 서버만 응답을 수행한다.

 


2. ICMP 프로토콜

ICMP는 인터넷 환경에서 오류에 관한 처리를 지원한다.

 

2.1 ICMP 메시지

메시지 설명
DESTINATION
UNREARCHABLE
수신 호스트가 존재하지 않거나, 존재해도 필요한 프로토콜이나 포트 번호 등이 없어 수신 호스트에 접근이 불가능한 경우에 발생한다. IP 헤더의 DF 필드가 설정된 패킷을 라우터가 분할해야 하는 경우에도 해당 패킷을 버리고 이 메시지를 회신해준다.
SOURCE QUENCH 네트워크에 필요한 자원이 부족하여 패킷이 버려지는 경우에 발생한다. 이 메시지를 이용해 송신 호스트에 혼잡 가능성을 경고함으로써, 패킷을 송신하는 호스트가 데이터를 천천히 전송하도록 알릴 수 있다.
TIME EXCEEDED 패킷의 TTL 필드 값이 0이 되어 패킷이 버려진 경우에 주로 발생한다. 기타 시간 초과 현상에 의해 패킷이 버려진 경우도 이에 해당한다.

오류 보고 메시지

  • IP 패킷을 전송하는 과정에서 발생하는 문제를 보고하는 것이 목적이다.
  • IP 패킷을 전송한 송신 호스트에 전달된다.

 

메시지 설명
ECHO REQUEST.ECHO REPLY 유닉스의 ping 프로그램에서 네트워크의 신뢰성을 검증하기 위하여 ECHO REQUEST 메시지를 전송하고, 이를 수신한 호스트는 ECHO REPLY를 전송해 응답한다. 특정 호스트가 인터넷에서 활성화되어 동작하는지 확인할 수 있다.
TIMESTAMP REQUEST.
TIMESTAMP REPLY
두 호스트 간의 네트워크 지연을 계산하는 용도로 사용한다.

질의 메시지

  • 라우터 혹은 다른 호스트들의 정보를 획득하려는 목적으로 사용된다.

 

2.2 ICMP 헤더 형식

ICMP 메시지: 오류 보고 메시지

  • Type(유형): 1바이트 크기로 메시지의 종류를 구분한다.
  • Code(코드): 메시지 내용에 대한 자세한 정보를 제공하는 매개변수 값이다.
  • Checksum(체크섬): ICMP 전체 메시지에 대한 체크섬 기능을 지원한다.
  • IP 헤더와 이어지는 8바이트의 정보가 오류 보고 메시지에 포함된다.

 

ICMP 메시지: 질의 메시지

  • Identifier와 Sequence Number 필드를 사용하여 메시지를 구분하는 기능이 사용된다.

 

2.3 ICMP 메시지 전송

ICMP 메시지의 전송

  • ICMP 메시지는 IP 프로토콜의 데이터로 처리되므로 IP 헤더에 캡슐화되어 계층 2 프로토콜로 전달된다.

 


3. IGMP 프로토콜

특정 그룹에 속하는 모든 호스트에 메시지를 전송하는 방식을 멀티캐스팅이라 하고,

이때 필요한 라우팅 알고리즘을 멀티캐스트 라우팅이라 한다.

 

3.1 그룹 관리

  • 멀티캐스트 라우팅에서는 다수의 호스트를 논리적인 하나의 단위로 관리하기 위한 그룹 관리 기능이 필요하다.
  • 멀티캐스팅은 다음과 같은 측면에서 유니캐스팅보다 복잡한 기능을 제공한다.
    • 다중 수신 호스트를 표시하는 멀티캐스트 그룹 주소 표기 방법을 통일해야 한다.
    •  라우터에서 IP 멀티캐스트 주소와 이 그룹에 속하는 멤버 호스트의 네트워크 주소 사이의 연관성을 처리할 수 있다.
    • 멀티캐스트 라우팅 알고리즘은 그룹에 속한 모든 멤버에게 도달하는 가장 짧은 경로를 선택하는 기능을 제공한다.

 

3.2 IGMP(Internet Group Management Protocol) 헤더 구조

IGMP 헤더의 구조

  • 크게 질의 메시지와 보고 메시지로 구분한다.
    • 질의 메시지: 멀티캐스트 라우터가 그룹에 대한 정보를 얻기 위하여 호스트에 전달한다.
    • 보고 메시지: 위에 대한 응답으로 호스트가 회신한다.
  • Type(유형): 크게 3가지 값을 가질 수 있다.
    • 0x11: 멀티캐스트 라우터가 전송한 질의 메시지
    • 0x16: 호스트가 전송하는 보고 메시지
    • 0x17: 그룹 탈퇴에 관한 메시지
  • Max Response Time(최대 응답 시간): 질의에 대한 보고 메시지가 전송되어야 하는 최대 응답 시간
  • Checksum(체크섬): IP 프로토콜에서 사용하는 알고리즘과 동일한 방식을 사용한다. 오류 검출용으로 이용된다.
  • Group Address(그룹 주소): 질의 메시지는 0으로 채우고, 보고 메시지에는 호스트가 가입을 원하는 그룹 주소를 표기한다.

 

3.3 IGMP 동작 과정

IGMP 동작 과정

  • (a)처럼 그룹에 가입하려면 해당 멀티캐스트 주소를 표기한 IGMP 보고 메시지를 전송한다.
  • (b)처럼 개별 호스트가 자신의 그룹 멤버를 유지하기 위해 IGMP 보고 메시지를 사용해 IGMP 질의에 응답해야 한다.
  • (c)처럼 라우터의 질의 메시지에 대해 호스트의 보고 메시지 응답이 이루어지지 않으면 그룹에서 탈퇴한 것으로 간주된다.

 

3.4 IGMP 메시지의 전송

IGMP 메시지의 전송

  • IGMP 메시지는 IP 프로토콜의 데이터로 처리되기 때문에 IP 패킷의 헤더에 실려서 계층 2 프로토콜로 전달된다.

 


References

반응형
LIST