EverGiver
7.5 이동성 관리: 원칙 본문
- 넓은 의미에서 이동 노드는 네트워크로의 접속점을 수시로 변경하는 노드이다.
- 컴퓨터나 전화 분야에서 이동성은 다양한 의미를 가지므로 이동성에 대해 여러 차원에서 살펴보는 것이 중요하다.
- 네트워크 계층의 관점에서 사용자가 얼마나 이동하는가?
- 물리적인 이동 사용자가 어떻게 이동하는지에 따라서 네트워크 계층은 다양한 영향을 받는다.
- 그림 7.22의 스펙트럼의 한 끝에서 무선 네트워크 인터페이스가 있는 랩톱을 갖고 건물 내부를 이동하는 사용자가 있다.
▷ 이 사용자는 네트워크 계층 관점에서는 이동하지 않는 것이며, 또 사용자가 위치와 상관없이 동일한 접속점에 결합된다면 링크 계층 관점에서조차도 이동하지 않는 것이다.
- 이 스펙트럼의 또 다른 끝에는 BMW 또는 테슬라 승용차를 타고 시속 150km로 고속도로를 질주하면서 여러 개의 무선 접근 네트워크를 통과하고, 그동안 원격 애플리케이션으로의 TCP 연결을 중단 없이 유지하고자 하는 사용자가 있다.
▷ 이 사용자는 확실하게 이동 중이다.
- 이들 극단의 중간에는 랩톱을 갖고 한 곳에서 다른 곳으로 이동하면서 새로운 위치에서 네트워크에 연결하고자 하는 사용자가 있다.
▷ BMW 운전자보다는 덜하지만 이 사용자도 분명 이동한다.
▷ 네트워크 접속점에 이동하는 동안에, 진행 중인 연결을 끊기지 않게 관리해줄 필요는 없다.
- 이동 노드의 주소를 항상 동일하게 유지하는 것이 얼마나 중요할까?
- 우리가 이동 전화를 사용할 때 전화번호(네트워크 레벨의 주소)는 한 회사의 네트워크에서 다른 회사의 네트워크로 이동하더라도 그대로 유지된다.
- 이와 유사하게 랩톱의 IP 주소도 IP 네트워크들을 옮겨다닐 때 동일하게 유지될까?
▷ 어떤 애플리케이션을 사용하는지에 따라 상당히 달라진다.
▷ 고속도로를 질주하면서 원격 애플리케이션으로의 TCP 연결을 중단 없이 유지하려고 하는 BMW 운전자의 경우, 동일한 IP 주소를 유지하는 것이 편할 것이다.
▷ 인터넷 애플리케이션이 통신하는 상대방 개체의 IP 주소 및 포트 번호를 알아야 한다.
▷ 만일 이동 개체가 이동하면서 IP 주소를 그대로 유지할 수 있다면, 그 이동성은 애플리케이션 관점에서는 드러나 보이지 않는다.
- 동적인 이동성이 적은 경우로서, 사무실 랩톱의 전원을 끈 후 집으로 가져와 다시 켜서 작업을 하려는 사용자를 생각할 수 있다.
▷ 랩톱이 집에서 주로 클라이언트/서버 애플리케이션(예: 전자메일 송수신, 웹 브라우징, 원격 호스트로의 텔넷)의 클라이언트로 동작하는 경우, 랩톱에서 사용되는 IP 주소는 중요하지 않다. - 어떤 유선 기반구조를 사용할 수 있는가?
- 앞에서 언급한 모든 시나리오에서 이동 사용자가 연결할 수 있는 고정 기반구조가 존재한다고 가정했다.
- 만일 이런 기반구조가 없으면 어떻게 될까? 두 사용자가 서로 통신이 가능한 거리에 있는 경우, 다른 네트워크 계층 기반구조 없이 네트워크 연결을 설정할 수 있는가?
▷ 애드 혹 네트워킹은 바로 이런 기능을 제공한다.
- 홈 네트워크(home network)
: 네트워크 환경에서 "이동 노드"(예: 랩톱, 스마트폰)의 영구적인 집
- 홈 에이전트(home agent)
: 이동 노드를 위해서 이동성 관리 기능을 수행하는 홈 네트워크의 개체
- 방문 네트워크(foreign network / visited network)
: 이동 노드가 현재 머무는 네트워크
- 방문 에이전트(foreign agent)
: 이동 노드를 도와주는 방문 네트워크의 개체
- 상대방(correspondent)
: 이동 노드과 통신하려는 개체이다.
- 방문 네트워크는 방문한 곳의 네트워가 되고, 홈 네트워크는 이동 노드가 원래 속한 네트워크가 된다.
주소체계
- 네트워크 애플리케이션이 사용자 이동성으로부터 투명성을 지원받기 위해서는 이동 노드가 한 네트워크에서 다른 네트워크로 이동하더라도 자신의 주소를 그대로 유지하게 하는 것이 바람직하다.
- 이동 노드가 방문 네트워크에 있을 때 이 노드의 영구적인 주소(home address)로 전송되는 모든 트래픽은 방문 네트워크(foreign network)로 전달되어야만 한다.
- 어떻게 이것이 가능할까?
º 한 가지 방법은 방문 네트워크가 다른 모든 네트워크에게 이동 노드가 자신의 네트워크에 머물고 있음을 알려 주는 것
▷ 이것은 도메인 안 또는 도메인 사이의 라우팅 정보 교환을 이용해서 할 수 있으며, 이렇게 하기 위해서는 기존 라우팅 기반구조를 약간 변경할 필요가 있다.
▷ 방문 네트워크는 이웃들에게 이동 노드의 영구적인 주소로의 경로를 갖고 있음을 알려준다.
▷ 그러면 이웃들은 라우팅 경로와 포워딩 테이블을 갱신하는 일반 절차의 한 부분으로서 이 라우팅 정보를 네트워크로 전파한다.
▷ 이동 노드가 방문 네트워크를 떠나서 다른 네트워크로 이동하면, 새 방문 네트워크는 이동 노드로의 새로운 경로를 알려주고, 이전 방문 네트워크는 이동 노드와 관련된 자신의 라우팅 정보를 제거한다.
▷ 이 방법은 확장성에 심각한 문제가 있다.
º 실제로 많이 채택되고 있는 또 다른 방법은 이동성 기능을 네트워크 중심(core)이 아닌 네트워크 경계(edge)에서 수행하는 것으로, 이동 노드의 홈 네트워크를 이용해서 자연스럽게 제공될 수 있다.
▷ 이동 노드의 홈 네트워크에 있는 홈 에이전트는 이동 노드가 머물고 있는 방문 네트워크를 추적할 수 있다.
▷ 이동 노드의 위치를 갱신하기 위해서는 이동 노드(또는 이동 노드를 대표하는 방문 에이전트)와 홈 에이전트 간의 적절한 프로토콜이 필요하다.
- 방문 에이전트
º 개념상 가장 간단한 방법은 방문 에이전트를 방문 네트워크의 가장자리에 있는 라우터에 위치시키는 것이다.
º 한가지 역할은 이동 노드를 위한 COA(care-of-address)를 생성하는 것이며, COA의 네트워크 부분은 방문 네트워크의 주소와 같다.
º 따라서 이동 노드는 영구적인 주소(permanent address) 및 COA(foreign address)와 결합된다.
º 두 번째 역할은 홈 에이전트에게 이동 노드가 자신의 (방문 에이전트의) 네트워크에 머물고 있음과 해당 COA를 갖오 있음을 알려주는 것이다.
이동 노드로의 라우팅
- 홈 에이전트만이 이동 노드의 위치를 알고 있고 다른 네트워크 라우터들은 이를 모르므로, 데이터그램의 목적지 주소를 단순히 이동 노드의 영구적인 주소로 한 후 네트워크 계층 기반구조로 보내는 것으로는 충분하지 않다.
- 뭔가 추가적인 작업이 필요한데 추가 기능으로 간접 라우팅(indirect routing) 및 직접 라우팅(direct routing)이라고 알려진 두 방법이 정의된다.
- 이동 노드로의 간접 라우팅
- 송신자는 이동 노드가 홈 네트워크에 있는지 또는 방문 네트워크에 있는지 모르는 상태로 데이터그램의 목적지 주소를 단순히 이동 노드의 영구적인 주소로 설정한 후 네트워크로 전송한다.
º 즉, 송신하는 상대방은 이동 노드의 현재 이동 상태에 대해서 몰라도 되며, 이는 상대방에게 이동에 대한 투명성을 제공한다.
º 그러면 데이터그램은 이동 노드의 홈 네트워크로 먼저 전달된다.
º 이 과정이 그림 7.24의 단계 1에 나타나 있다.
- 홈 에이전트에 대해서 살펴보자.
º 이동 노드의 COA를 추적하기 위해 방문 에이전트와 정보를 주고받는 것 이외에 또 다른 중요한 일을 해야 한다.
º 홈 에이전트와 같은 홈 네트워크를 가지며 현재 다른 방문 네트워크에 머물고 있는 노드를 목적지로 하는 데이터그램이 오는지 살펴보는 일이다.
º 홈 에이전트는 이런 데이터그램이 오면 중간에 가로챈 후, 이동 노드의 COA를 사용해서 방문 에이전트로 전달해주고(그림 7.24 단계 2), 방문 에이전트는 이것을 이동 노드로 전달해 준다.(그림 7.24의 단계 3)
- 이러한 홈 에이전트로 통한 재라우팅에 대해 더 살펴보자.
º 홈 에이전트는 이동 노드의 COA를 목적지로 정하여 네트워크 계층이 데이터그램을 방문 네트워크로 전달할 수 있게 해 준다.
º 투명성 제공 측면에서 데이터그램을 수신한 애플리케이션으로 하여금 이 데이터그램이 홈 에이전트를 경유해서 전달되었다는 것을 알지 못하게 하는 것이 바람직하다.
º 이 두 가지 목적을 동시에 달성하기 위해 홈 에이전트는 상대방에서 온 데이터그램을 변경하지 않고 그대로 유지하며, 데이터그램을 새로운 더 큰 데이터그램 안에 담아 캡슐화시킨다.
º 캡슐화된 데이터그램은 이동 노드의 COA를 목적지로 해서 전달한다.
º 이 COA를 "소유한" 방문 에이전트는 데이터그램을 수신해서 역캡슐화한다.
→ 즉, 홈 에이전트에서 캡슐화된 큰 데이터그램으로부터 상대방이 보낸 원래의 데이터그램을 추출해서 이동 노드로 전달해준다.(그림 7.24의 단계 3)
º 그림 7.25에 상대방이 보낸 원래 데이터그램을 홈 네트워크로 전송하는 것, 홈 에이전트에서 캡슐화된 데이터그램을 방문 에이전트로 전송하는 것, 그리고 방문 에이전트에서 원래 데이터그램을 추출하여 이동 노드로 전달하는 절차가 나타나 있다.
- 이동 노드가 데이터그램을 상대방에게 어떻게 보내는지 살펴보자.
º 이동 노드는 데이터그램을 상대방을 목적지로 해서(자신의 영구적인 주소를 출발지 주소로 하고, 상대방의 주소를 목적지 주소로 해서) 직접 보낼 수 있으므로 아주 단순하다.
º 상대방의 주소를 알기 때문에 데이터그램을 홈 에이전트를 통해서 전달하지 않아도 된다. (그림 7.24의 단계 4)
- 이동성 지원에 필요한 새로운 네트워크 계층 기능
º 이동 노드에서 방문 에이전트로의 프로토콜(mobile-node-to-foreign-agent protocol)
▷ 이동 노드는 방문 네트워크에 접속할 때 방문 에이전트에게 등록해야 한다.
▷ 이동 노드는 방문 네트워크를 떠날 때 방문 에이전트와의 등록을 취소해야 한다.
º 방문 에이전트에서 홈 에이전트로의 등록 프로토콜(foreign-agent-to-home-agent-registration protocol)
▷ 방문 에이전트는 이동 노드의 COA를 홈 에이전트에게 등록해야 한다.
▷ 방문 에이전트는 이동 노드가 방문 네트워크를 떠날 때 이동 노드의 COA를 명시적으로 등록 취소하지 않아도 된다. (이동 노드가 다른 네트워크로 이동하여 새로운 COA를 등록하기 때문)
º 홈 에이전트에서의 데이터그램 캡슐화 프로토콜(home-agent datagram encapsulation protocol)
▷ 상대방의 원래 데이터그램을 새로운 데이터그램 내에 캡슐화 후 COA를 목적지로 해서 전달해야 한다.
º 방문 에이전트에서의 역 캡슐화 프로토콜(foreign-agent decapsulation protocol)
▷ 캡슐화된 데이터그램으로부터 상대방의 원래 데이터그램을 추출해서 이동 노드로 전달해야 한다. - 이동 노드로의 직접 라우팅
- 그림 7.24의 간접 라우팅 방식에서는 삼각 라우팅 문제(triangle routing problem)라고 알려진 비효율성 문제가 생길 수 있다.
º 삼각 라우팅 문제
: 이동 노드를 목적지로 하는 데이터그램은 상대방과 이동 노드 간에 훨씬 더 효율적인 경로가 존재하더라고 먼저 홈 에이전트로 전달된 다음에야 방문 네트워크로 전달된다.
- 직접 라우팅 방식에서는 통신 상대방 네트워크에 있는 상대방 에이전트가 먼저 이동 노드의 COA를 인지한다.
- 간접 라우팅처럼 이동 노드가 최신 COA를 홈 에이전트에게 등록했을 것으로 가정하고, 상대방 에이전트는 홈 에이전트에게 물어봄으로써 이동 노드의 COA를 알 수 있다.
- 이동 노드가 방문 에이전트 기능을 수행할 수 있는 것과 마찬가지로 상대방도 상대방 에이전트 기능을 수행할 수 있다. (이 과정이 그림 7.26 단계 1,2에 나타나 있다.)
- 홈 에이전트가 터널링해 주는 것과 유사하게 상대방 에이전트는 데이터그램을 이동 노드의 COA로 직접 터널링해 주며, 이 과정이 그림 7.26의 단계 3, 4에 나타나 있다.
- 직접 라우팅은 삼각 라우팅 문제를 해결해 주었지만, 이로 인해 새로운 두 가지 중요한 문제가 생기게 된다.
º 이동 사용자 위치 파악 프로토콜(mobile-user location protocol)이 필요해진다.
▷ 상대방 에이전트가 홈 에이전트에게 이동 노드의 COA를 문의하기 위해서 필요하다. (그림 7.26의 단계 1, 2)
º 이동 노드가 한 방문 네트워크에서 다른 방문 네트워크로 이동하면 데이터가 어떻게 새로운 방문 네트워크로 전달될 수 있을까?
▷ 간접 라우팅에서는 홈 에이전트가 관리하는 COA를 갱신함으로써 이 문제를 쉽게 해결할 수 있다.
▷ 직접 라우팅에서는 세션이 시작될 때 상대방 에이전트가 홈 에이전트에게 COA를 단 한 차례 문의하며, 따라서 이후에는 홈 에이전트에서 COA를 갱신하는 것만으로는 데이터를 이동 노드의 새로운 방문 네트워크로 전달해주는 문제를 완벽하게 해결해줄 수 없다.
▷ 이를 해결하기 위한 한 가지 방법은 변경된 COA를 통신 상대방에게 알려주는 새로운 프로토콜을 만드는 것이다.
▷ 또 다른 대안으로써 세션이 처음 시작될 때 이동 노드가 머물고 있던 방문 네트워크로 데이터가 포워딩되고 있다고 가정하자(그림 7.27 단계 1). 이동 노드가 처음 있었던 방문 네트워크의 방문 에이전트는 앵커 방문 에이전트(anchor foreign agent)라고 한다. 이동 노드가 새로운 방문 네트워크로 이동하면(그림 7.27의 단계 2), 새 방문 에이전트에 등록하고(단계 3), 새 방문 에이전트는 앵커 방문 에이전트에게 이동 노드의 새로운 COA를 알려준다(단계 4). 떠난 이동 노드를 목적지로 하는 캡슐화된 데이터그램을 앵커 방문 에이전트가 수신하면, 앵커 방문 에이전트는 새 COA를 사용해서 데이터그램을 다시 캡슐화한 후 이동 노드로 전달해준다(단계 5). 이후 이동 노드가 또 다른 방문 네트워크로 이동하면, 새 방문 네트워크의 방문 에이전트는 이 방문 네트워크로 전달될 수 있게 하기 위해 앵커 방문 에이전트에게 알려준다.
'전공 > 컴퓨터 네트워킹' 카테고리의 다른 글
7.7 셀룰러 네트워크에서의 이동성 관리 (0) | 2021.10.15 |
---|---|
7.6 이동 IP (0) | 2021.10.14 |
7.4 셀룰러 인터넷 접근 (0) | 2021.10.14 |
7.3 WiFi: 802.11 무선 랜 (1) | 2021.10.13 |
7.2 무선 랜과 네트워크의 특징 (0) | 2021.10.09 |