네트워크는 유선 고정 사용자 ( PSTN, ISDN 등의 음성 서비스 ) 에서 무선 이동 사용자 ( 광대역 멀티 미디어 ) 로 추세가 바뀌고 있다. 이때 우리는 이동 사용자의 IP를 어떻게 처리할지 고려해야한다.
이동IP프로토콜
이동 IP 프로토콜은 터널링 방식으로 구현된다.
터널링 방식을 서울에서 일본으로 여행을 가는 것으로 생각해보자.
기존 유선 고정 사용자 방식에서는 철수가 서울에서 공항까지 버스를 타고 버스에서 내려서 비행기를 타고 비행기에서 내려서 일본에 도착한다. 즉 철수는 자신이 교통수단을 환승하는 사실을 인지한다.
무선 이동 사용자 방식에서는 철수는 버스에서 내리지 않는다. 대신에 버스를 비행기에 태운다..!
철수가 잠이 들었다면 자신이 버스인지 비행기인지 알 수 없을 것이다.
이런 방식을 터널링 방식이라고 한다.
데이터는 자신의 원IP프로토콜로만 처리되는줄 안다. 하지만 데이터가 다른 서브넷을 지날 때 다른 프로토콜을 사용해야 한다면 다른IP프로토콜의 데이터에 원IP 패킷을 캡슐화해서 서브넷을 지나간다. 이때 사용자는 터널링 과정에서 부담을 가질 필요가 없고 라우터가 알아서 다 해준다.
이동IP프로토콜에서는 그럼 고유IP를 유지할까 아니면 새로운 IP를 위치마다 부여할까? 라우팅 특성상 위치마다 새로운 IP를 부여하는게 적합하다. 그러나 이 과정은 매우 까다롭기도 하고 현실적으로 불가능한 경우가 있기도 해서 IETF기관에서 표준안을 발표했다.
1. 호스트의 위치가 바뀌면 해당 지역을 관장하는 Foriegn Agent Old 로부터 FAnew로 연결을 옮기고, FAnew로부터 새로운 COA를 얻는다.
*COA(Care Of Address) : 이동호스트가 위치를 변경할 때 마다 새로운 지역에서 할당되는 일시적인 IP주소
2. 호스트에게 할당한 COA를 이용해 FAnew는 H와 연결된 HomeAgent와 터널을 형성한다. 그리고 HA의 고정IP주소를 이동호스트에게 할당해준다. 이 값은 위치가 변해도 바뀌지 않는다.
3. 송신호스트는 이동 호스트에게 전송시 HA의 주소를 Destination Address로 사용해 패킷을 전송한다.
정리
송신 호스트가 HA의 IP주소로 패킷을 전송한다. 패킷을 수신한 HA는 이 패킷을 COA를 Destination address로 하는 패킷에 캡슐화해서 FAnew에게 전송한다. (터널링)
FAnew는 패킷을 받아서 캡슐에서 데이터를 꺼낸 뒤 Destination address를 HA 고정IP로 하는 패킷을 이동 호스트에게 전달한다.
제어프로토콜
제어 프로토콜은 네트워크 계층에서 오류 메시지를 전송하는 ICMP와 MAC/IP 주소를 얻기 위한 ARP/RARP 그리고
멀티캐스팅 그룹을 관리하기 위한 IGMP가 있다.
ARP
- 수신 호스트
IP 주소 : 파일 시스템에 존재
MAC 주소 : 자신의 LAN 카드에 내장된 주소 읽기
- 송신 호스트
IP 주소 : 수신 호스트가 보내고자 하는 호스트 주소
MAC 주소 : ???
LAN에서 데이터를 전송하기 위해서는 MAC 주소와 IP 주소가 둘 다 필요하다. 하지만 송신 호스트는 수신 호스트의 MAC 주소를 바로 알 수는 없기 때문에 ARP 프로토콜을 이용해 수신 호스트의 MAC 주소를 얻는다.
송신 호스트는 먼저 ARP 패킷에 수신/송신 호스트의 IP 주소를 담아서 서브넷에 브로드캐스팅한다.
(MAC 주소를 모르기 때문에 브로드 캐스팅으로 전파!)
수신 호스트는 방송된 패킷에 있는 자신의 IP주소를 보고 ARP reply 패킷을 송신 호스트에게 유니캐스트로 회신한다.
(IP/MAC 주소 모두 알고 있기 때문에 유니캐스트로 전파!)
송신 호스트는 이 정보를 IP-MAC 쌍으로 캐시에 저장해 데이터 전송시마다 패킷을 브로드캐스팅하는 불상사를 예방한다.
RARP
그런데.. 만약 수신 호스트가 파일시스템이 없는 호스트라면 수신호스트는 자신의 IP주소를 모르고 MAC 주소만 알고 있다. 이 경우에 송신 호스트가 ARP 패킷을 보내도 자신에게 온 패킷인 줄 모르기 때문에 MAC주소를 전달해 줄 수 없다.
이를 위해 네트워크에는 하나 이상의 RARP 프로토콜 처리 서버가 존재한다.
수신 호스트가 자신의 MAC 주소를 매개변수로 RARP 패킷을 브로드캐스팅하면 이 패킷으로 IP 주소를 반환할 수 있는 RARP 서버만이 회신한다.
이렇게 수신 호스트가 IP주소를 획득하면, ARP 요청에 응답할 수 있다.
ICMP
IP 프로토콜에는 오류제어기능이 존재하지 않는다. 즉 단순히 데이터 전송용 프로토콜이라는 것. 따라서 네트워크계층의 전송오류등을 처리하기 위해 ICMP가 그 기능을 담당한다.
TCP/IP 기반 네트워크에서는 오류 발생시 라우터가 ICMP 메시지를 자동으로 송신호스트에게 회신한다.
ICMP 메시지는 기본적으로 오류보고 메시지와 질의 메세지가 있다.
오류보고 메시지는 발생 오류를 송신 호스트에게 전송하기 위한 목적으로 오류의 해결은 상위 계층의 몫이다.
- Destination Unreachable : 수신 호스트 탐색 실패
- Source Quench : 패킷 분실 발생
- Time Exceeded : TTL = 0 발생
등의 오류 메시지가 존재한다.
질의 메시지는 호스트나 라우터의 정보를 얻기 위해 보내는 메시지이다.
- Echo Request/Reply : UNIX의 PING 프로그램에서 사용하는 것으로 네트워크의 신뢰도 확인을 위함
- Timestamp Request/Reply : 네트워크의 지연정도를 확인하기 위함
ICMP는 네트워크 계층 프로토콜이기는 하나 IP 패킷의 데이터로 캡슐화 되어서 전송된다.
IGMP
IGMP는 멀티캐스팅 라우팅 프로토콜에 상용되는 프로토콜로 그룹의 생성과 제거, 그룹 파티원의 참여와 탈퇴의 기능을 담당한다.
멀티캐스팅 라우터는 어느 그룹에 어느 호스트가 있는지 알아야 하고 호스트 정보변경시 관련 경로정보도 보완해야 한다. 경로정보 보완하는 방식은 호스트가 라우터에게 통보하는 방식과 라우터가 호스트에게 문의하는 방식이 있는데 IGMP는 후자의 방식을 사용한다.
IGMP 메시지에는 보고 메시지와 질의 메시지가 있다.
보고 메시지는 질의 메시지에 대한 호스트의 응답메시지이다.
질의 메시지는 라우터가 그룹정보를 물어볼 때 사용하는 메시지이다.
IGMP는 네트워크 계층 프로토콜이기는 하나 IP 패킷의 데이터로 캡슐화 되어서 전송된다.
2021-11-30
'Computer Science > Computer Network' 카테고리의 다른 글
전송계층 (0) | 2021.12.12 |
---|---|
TCP 프로토콜 (0) | 2021.12.05 |
IP 프로토콜 (0) | 2021.11.26 |
데이터 링크 계층 (0) | 2021.11.24 |
MAC 계층 (0) | 2021.11.18 |