이동 IP

모든 프로그램은 소켓이라는 API를 사용한다.

  • protocol(UDP/TCP)
  • source IP/Port
  • Destination IP/Port

이 정보들이 바뀌면 연걸이 끊어진다. 즉, 라우팅을 하지 못한다.

호스트가 한 네트워크에서 다른 네트워크로 이동하면 IP주소 구조도 변경되어야 한다.


2개의 주소

호스트가 home address라 불리는 원주소와 care-of address라 불리는 임시주소를 갖는 것이다. home address는 영구정으로 사용되며 호스트의 영구적 홈이되는 네트워크인 home Network에 호스트를 연결한다. 호스트가 한 네트워크에서 다른 네트워크로 이동하게 되면 care-of address는 변경 된다.


Agent

홈 에이전트는 원격 호스트가 이동 호스트에게 패킷을 보낼 때 홈 에이전트는 이동 호스트를 대신해서 동작한다. 홈에이전트는 패킷을 수신하여 이 패킷을 foreign 에이전트에 보낸다.


등록

foreign network로 이동하여 foreign 에이전트를 발견한 후 이동 호스트는 홈 에이전트에 등록을 해야한다.

  1. 이동 호스트는 foreign 에이전트에서 정보를 가져온다.
  2. 이동 호스트는 홈 에이전트에 자신을 등록한다. 보통 이 과정은 이동 호스트를 대신하여 외지 에이전트가 수행한다.
  3. 만료가 된 후에는 이동 호스트를 다시 등록해야 한다.
  4. 홈 네트워크로 돌아온 후 이동 호스트는 자신의 등록을 취소 해야한다.

데이터 전달

  1. 원격지 호스트로부터 홈 에이전트까지

    원격지 호스트는 마치 이동 호스트가 홈 네트워크에 있는 것과 같이 패킷을 전송 한다.

  2. 홈 에이전트에서 외지 에이전트까지

    패킷을 받은 홈에이전트는 터널링 을 이용하여 이 패킷을 foreign 에이전트에 전송한다. 홈 에이전트는 자신의 주소를 근원지 주소로 foreign 에이전트 주소를 목적지 주소로 사용하는 IP패킷 내에 이 패킷을 캡슐화 한다.

  3. foreign 에이전트에서 이동 호스트까지

    foreign에이전트가 패킷을 받으면 원래의 패킷을 추출한다. foreign 에이전트는 등록 테이블을 참조하여 이동 호스트의 care-of address를 찾는다. 그렇지 않으면 패킷은 홈 네트워크에 되돌려 보내진다.

  4. 이동 호스트에서 원격지 호스트까지

    정상적인 방법과 같이 전송한다. 자신의 홈 주소를 근원지 주소로 그리고 원격지 주소를 목적지 주소로 하여 패킷을 준비한다. foreign 네트워크에서 전송되지만 이동 호스트의 홈 주소를 가지고 있다.


이동 IP의 비효율성

  • 더블 크로싱

    원격지 호스트가 자신과 같은 네트워크로 이동한 이동 호스트와 통신 할 때 발생한다.

    double crossing

  • 삼각형 라우팅

    이동 호스트가 원격지 호스와 같은 네트워크에 연결되어 있지 않은 경우 원격지 호스트가 이동 호스트에 패킷을 보낼때 발생한다.

    triangle routing