본문 바로가기

컴퓨터네트워크

네트워크층: 데이터전송 - 이동 IP

728x90
반응형

노트북과 같은 모바일 및 개인 컴퓨터가 급속히 보편화됨에 따라, 기존의 IP 프로토콜을 확장한, 즉 어디서나 인터넷을 활용할 수 있는 이동 IP 기술이 필요하게 되었다.

IP 프로토콜을 사용하는 이동 통신 서비스를 제공함에 있어서 해결해야 하는 가장 중요한 문제는 주소 지정이다.

 

주소 지정

1) 정지 호스트(stationary host)

본래 IP 주소 지정은 호스트가 하나의 특정한 네트워크에 연결되어 정지되어 있다는 가정을 기반으로 하고 있다.

라우터는 IP 주소를 사용하여 IP 데이터그램의 경로를 선정한다.

주소는 호스트가 특정 네트워크에 연결되어 있을 때에만 유효하게 된다. 만약 네트워크가 바뀐다면 주소는 더 이상 유효하지 않게 된다.

라우터는 이러한 연관성을 사용하여 패킷의 경로를 지정한다. 라우터는 접두사(Prefix)를 사용하여 호스트가 연결된 네트워크로 패킷을 전달한다. 

 

2) 이동 호스트(mobile host)

호스트가 한 네트워크에서 다른 네트워크로 이동하면, IP 주소 지정의 구조도 변경되어야한다. 이를 위해 주소 변경하기, 2개의 주소 등 몇 가지 방법이 제안되었다.

 

a) 주소 변경하기 

간단한 해결책으로 이동 호스트가 새로운 네트워크로 갈 때 자신의 주소도 변경하도록 하는 것이다. 그러나 이 방법은 많은 문제를 발생시키므로 오늘날에는 사용하지 않는 방법이다.

b) 2개의 주소

호스트가 홈 주소(home address)라는 원래의 주소와 의탁 주소(care-of address)라는 임시 주소를 갖는 것이다.

홈 주소(home address)는 영구적으로 사용되며 호스트의 영구적인 홈이 되는 네트워크인 홈 네트워크(home network)에 호스트를 연관시킨다.

의탁 주소(care-of address)는 임시 주소로서 호스트가 한 네트워크에서 다른 네트워크로 이동하게 되면 의탁 주소는 변경되며, 호스트가 이동하여 도착한 네트워크, 외지 네트워크(foreign network)와 연관된 주소이다.

이동 후, Foreign Agent에서 임시 주소인 CoA(의탁주소)를 할당 받음

 

에이전트

주소가 변경되는 것을 외부 인터넷에서 알게 하기 위하여 홈 에이전트(home agent)와 외지 에이전트(foreign agent)가 필요하다.

홈 에이전트와 외지 에이전트

홈 에이전트(Home agent)

홈 에이전트는 일반적으로 이동 호스트의 홈 네트워크에 연결된 라우터이다.

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

홈 에이전트는 패킷을 수신하여 이 패킷을 외지 에이전트에 보낸다.

 

외지 에이전트(foreign agent)

외지 에이전트는 일반적으로 외지 네트워크에 연결된 라우터이다.

외지 에이전트는 홈 에이전트로부터 받은 패킷을 이동 호스트에게 전달한다.

이동 호스트는 외지 에이전트의 역활을 수행할 수도 있다. 즉, 이동 호스트와 외지 에이전트가 같을 수 있다. 이는 이동 호스트 자신이 의탁 주소를 수신할 수 있어야 하고, 홈 주소와 의탁 주소를 모두 가지고 있어야 한다. 이러한 이중 주소 지정은 응용 프로그램에 투명하여야 한다. 즉, 응용 프로그램이 이러한 사실을 알지 못하도록 해야 한다.

이동 호스트와 외지 에이전트가 같을 때 의탁 주소는 동위치 의탁 주소(collocated care-of address)라고 불린다.

동위치 의탁 주소의 장점은 외지 에이전트의 가용섬을 염려할 필요 없이 이동 호스트가 어떤 네트워크로도 이동할 수 있다는 것이다.

그러나 단점으로는 이동 호스트가 자신의 외지 에이전트 역할 수행하기 위한 추가 소프트웨어가 필요하다.

 

세 단계

원격 호스트와 통신하기 위해서 이동 호스트는 A)에이전트 발견, B)등록, C)데이터 전송이라는 세 단계를 거친다.

A) 에이전트 발견 (agent discovery)

이동 통신에서 첫 단계인 에이전트 발견은 2개의 세부 과정으로 구성된다.

이동 호스트는 자신의 홈 네트워크를 떠나기 전에 홈 에이전트의 주소를 알아야 한다. 그리고 외지 네트워크에 들어간 후에 외지 에이전트를 발견해야한다.

이 발견 과정은 외지 에이전트 주소뿐 아니라 의탁 주소를 아는 것도 포함한다.

발견은 광고(advertisement)와 간청(solicitation)이라는 2개의 메시지를 포함한다.

 

 

 

 

 

1) 에이전트 광고(agent advertisement)

라우터가 ICMP 라우터 광고 메시지를 사용하여 자신의 존재를 광고할 때 만약 자신이 에이전트로서 동작하고 있다면 패킷에 에이전트 광고 메시지를 추가할 수 있다.

이동 IP는 에이전트 광고를 위하여 새로운 패킷 유형을 사용하지 않는다.

ICMP의 라우터 광고 패킷을 사용하여 에이전트 광고 메시지를 추가한다.

유형(type) : 8비트 유형 필드는 16이란 값을 가진다.

길이(length) : 8비트의 길이 필드로 확장 메시지의 전체 길이를 정의한다.(ICMP 광고 메시지의 길이가 아님)

순서 번호(sequence number): 16비트의 순서 번호 필드는 메시지 번호를 저장한다. 수신자는 이 번호를 사용하여 메시지가 손실되었는지 결정할 수 있다.

수명(lifetime) : 수명 필드는 에이전트가 요청받을 시간을 초 단위로 나타낸다. 만약 이 필드 값이 1로만 된 스트링이라면 수명은 무한대이다.

코드(code) : 코드 필드는 8비트 플래그로써 각 비트는 1 또는 0의 값을 가진다.

코드 비트

의탁 주소(care-of address) : 이 필드는 의탁 주소로써 사용이 가능한 주소의 목록을 포함한다. 이동 호스트는 이 주소 중의 하나를 선택할 수 있다. 이 의탁 주소의 선택은 등록 요청 단계에서 알려진다. 이 필드는 외지 에이전트만이 사용한다.

 

2) 에이전트 간청 (agent-solicitation)

이동 호스트가 새로운 네트워크로 이동했지만 에이전트 광고를 받지 못했다면, 에이전트 간청을 시작할 수 있다.

ICMP 간청 메시지를 사용하여 에이전트에게 도움이 필요하다는 것을 알릴 수 있다.

이동 IP는 에이전트 간청을 위하여 새로운 패킷 유형을 사용하지 않고 ICMP의 라우터 간청 패킷을 사용한다.

 

B) 에이전트 등록(agent registration)

외지 네트워크로 이동하여 외지 에이전트를 발견한 후 이동 호스트는 등록을 하여야 한다.

등록에는 네 가지 측면이 있다.

a) 이동 호스트는 외지 호스트에 자신을 등록해야 한다.

b) 이동 호스트는 홈 에이전트에 자신을 등록해야 한다. 보통 이 과정은 이동 호스트를 대신하여 외지 에이전트가 수행한다.

c) 만약 등록이 종료되면, 이동 호스트를 다시 등록해야 한다.

d) 홈 네트워로 돌아온 후 이동 호스트는 자신의 등록을 취소해야 한다.

 

등록 요청

이동 호스트가 외지 에이전트에게 등록 요청을 보냄으로써 의탁 수조를 등록할 뿐 아니라 자신의 홈 주소와 홈 에이전트 주소를 알린다.

이 요청 메시지를 받아 요청을 등록한 후 외지 에이전트는 이 메시지를 홈 에이전트에게 중계한다.

중계를 위하여 사용되는 IP 패킷은 외지 에이전트의 IP 주소를 발신지 주소로 가지고 있으므로 홈 에이전트는 외지 에이전트의 주소를 알게 된다.

등록 요청 형식

유형(type) : 8비트의 유형 필드는 메시지의 유형을 정의한다. 요청 메시지의 경우 이 필드의 값은 1이다.

플래그(flag) : 8비트 플래그 필드는 포워딩(forwarding) 정보를 정의한다. 각 필드의 값은 0 또는 1이 될 수 있다.

등록 요청 플래그 필드 비트

수명(lift time) : 이 필드는 등록이 유효한 기간을 초 단위로 나타낸다. 만약 이 필드 값이 0으로만된 스트링이라면 요청 메시지는 등록 취소(deregistration)를 요청하는 것이다. 만약 1로만 된 스트링이라면 수명은 무한대이다.

홈 주소(home address) : 이 필드는 이동 호스트의 영구적인(첫 번째) 주소를 포함한다.

홈 에이전트 주소(home agent address) : 이 필드는 홈 에이저ㄴ트의 주소를 포함한다.

의탁 주소(care-of address) : 이 필드는 이동 호스트의 임시(두 번째) 주소를 포함한다.

식별(identification) : 이 필드는 64비트 값으로써 이동 호스트가 요청 메시지에 삽입하고 응답 메시지에 그대로 복사된다. 요청을 응답과 대응시키기 위하여 사용된다.

확장(extension) : 이 가변 길이의 필드는 인증을 위하여 사용된다. 이 필드를 사용하여 홈 에이전트는 이동 에이전트를 인증할 수 있다.

 

등록 응답

등록 응답 메시지는 홈 에이전트가 외지 에이전트에게 보내고 다시 이동 호스트에 중계된다. 응답 메시지는 등록 요청을 확인하거나 거부한다.

등록 응답 형식은 Code 필드가 등록 요청의 Flag 필드를 대치하며, 의탁 주소 필드는 없다는 점을 제외하고는 동일하다.

 

캡술화

등록 메시지는 UDP 사용자 데이터그램에 캡슐화된다. 

에이전트는 잘 알려진 포트 번호 434를 사용하고, 이동 호스트는 임시 포트 번호를 사용한다.

즉, 등록 요청과 응답은 잘 알려진 포트 번호 434를 사용하여 UDP에 의해 전달된다.

 

C) 데이터 전달

에이전트 발견과 등록 단계 이후에 이동 호스트는 원격지 호스트와 통신할 수 있다.

데이터 전달

원격지 호스트에서 홈 에이전트까지 (경로 1번)

원격지 호스트가 이동 호스트에 패킷을 보내고자 하면 자신의 주소를 발신지 주소로 그리고 이동 호스트의 홈 주소를 목적지 주소로 하여 패킷을 보낸다.

즉, 원격지 호스트는 마치 이동 호스트가 홈 네트워크에 있는 것과 같이 패킷을 전송한다. 그러나 이 패킷은 이동 호스트처럼 동작하는 홈 에이전트가 가로챈다.

 

홈 에이전트에서 외지 에이전트까지(경로 2번)

패킷을 수신한 후에 홈 에이전트는 이 패킷을 외지 에이전트에 전송한다. 홈 에이전트는 자신의 주소를 발신지 주소로 외지 에이전트 주소를 목적지 주소로 사용하는 IP 패킷 내에 이 패킷을 캡슐화한다.

 

외지 에이전트에서 이동 호스트까지(경로 3번)

외지 에이전트가 패킷을 수신하면 원래의 패킷을 추출한다. 그러나 목적지 주소가 이동 호스트의 홈 주소이므로 외지 호스트는 등록 테이블을 참조하여 이동 호스트의 의탁 주소를 찾는다. (그렇지 않으면 패킷은 홈 네트워크로 되돌려 보내진다.)

패킷은 의탁 주소로 전송된다.

 

이동 호스트에서 원격지 호스트까지(경로 4번)

이동 호스트가 패킷을 원격지 호스트에 보내고자 할 때(예를 들어 수신한 패킷에 대한 응답) 정상적인 방법과 같이 전송을 한다.

이동 호스트는 자신의 홈 주소를 발신지 주소로 그리고 원격지 주소를 목적지 주소로 하여 패킷을 준비한다. 

패킷은 외지 네트워크에서 전송되지만 이동 호스트의 홈 주소를 가지고 있다.

 

투명성(transparency)

데이터 전달 과정에서 원격지 호스트는 이동 호스트가 이동했다는 것을 모른다. 

원격지 호스트는 이동 호스트의 홈 주소를 목적지 주소로 하여 패킷을 전송한다.

이동 호스트의 홈 주소가 발신지 주소인 패킷을 수신한다.

곧 호스트의 이동은 완전히 투명하게 된다.

 

이동 IP의 비효율성

심각한 경우 더블 크로싱(double crossing) 또는 2X라고 불린다.

보통인 경우는 삼각형 라우팅(triangle routing 또는 dog-leg routing)이라 불린다.

 

더블 크로싱(double crossing)

더블 크로싱은 원격지 호스트가 자신과 같은 네트워크(또는 사이트)로 이동한 이동 호스트와 통신할 때 발생한다.

이동 호스트가 원격지 호스트에 패킷을 보낼 때에는 비효율성의 문제가 없고 통신은 완전히 지역적으로 수행된다.

그러나 원격지 호스트가 이동 호스트에 패킷을 보내면 패킷은 인터넷을 두 번 지나가게 된다.

컴퓨터가 같은 지역 내의 다른 컴퓨터와 통신하는 것이 더 발생하므로 더블 크로싱의 비효율성은 심각하게 된다.

더블 크로싱

 

삼각형 라우팅

더블 크로싱보다 덜 심각한 경우로 이동 호스트가 원격지 호스트와 같은 네트워크에 여결되어 있지 않은 경우 발생한다.

이동 호스트가 원격지 호스트에 패킷을 보낼 때는 비효율성이 전혀 없다.

그러나 원격지 호스트가 이동 호스트에 패킷을 보낼 때는 패킷이 원격지 호스트에서 홈 에이전트로 간 후 이동 호스트로 간다.

즉, 삼각형의 한 변 대신에 두변을 지나가게 된다.

삼각형 라우팅

해결책

더블 크로싱, 삼각형 라우팅과 같은 비효율성에 대한 한 가지 해결책은 원격지 호스트가 의탁 주소를 이동 호스트의 홈 주소로 바인딩하는 것이다.

예를 들어, 홈 에이전트가 이동 호스트로 가는 첫 패킷을 받았을 때, 이 패킷을 외지 에이전트로 보낼 뿐 아니라 원격지 호스트로 갱신 바인딩 패킷(update binding packet)을 보내어 이후 이동 호스트로 가는 패킷은 의탁 주소로 직접 갈 수 있도록 할 수 있다.

원격지 호스트는 이 정보를 캐시에 저장할 수 있다.

하지만, 이 방법은 이동 호스트가 이동하면 캐시 정보가 무효화된다는 것이다.

이 경우 홈 에이전트는 원격지 호스트에 경고 패킷(warning packet)을 보내어 이동 호스트가 이동하였다는 것을 알릴 필요가 있다.

 

 

반응형