Data Routing and Mobility Management
GPRS에서의 중요한 이슈 중 하나는 단말기로부터의, 또는 단말기로의 데이터 패킷 라우팅이다. 이 이슈는 데이터 패킷 라우팅과 이동성 관리로 나눠 볼 수 있다.
GGSN의 주요 기능은 앞에서도 설명이 되었지만 다른 데이터 네트워크와의 연동을 담당한다는 것이다. GGSN은 SGSN에 의해 제공되는 라우팅 정보를 이용하여 위치 정보를 갱신하고 외부 데이터 네트워크 프로토콜 패킷을 SGSN으로 라우팅한다. 또한 GGSN은 외부 데이터 네트워크 패킷을 적절한 데이터 네트워크로 전달하고 과금 정보를 수집하는 역할을 한다. GPRS 서비스에서는 사업자간 로밍이 제공될 것으로 예상된다. 서로 다른 GPRS 사업자 네트워크들은 BG(Boarder Gateway)를 통해 서로 연결되는데, BG는 망연동과 라우팅 프로토콜을 제공한다. GPRS 네트워크는 모든 데이터 네트워크 프로토콜을 GTP(GPRS Tunneling Protocol)이라고 불리는 encapsulation 프로토콜로 캡슐화(encapsulate)한다. 이것은 네트워크에서의 보안을 확보하기 위함과 동시에 라우팅 메커니즘과 GPRS에서의 데이터 전달을 단순화하는데 있다.
이동성 관리의 핵심은 바로 사용자의 현재 위치를 추적하는 것이다. 이를 위해 이동 단말은 주기적으로 위치 업데이트 메시지를 현재 지역을 관리하는 SGSN에게 보낸다. 이동 단말이 업데이트 작업을 빈번히 하지 않는다면 이동 단말의 현재 위치를 정확히 알 수 없게 되므로 호출 작업을 수행해야 한다. 호출 작업은 다운링크 채널로 패킷이 전달될 때마다 이루어져야 하므로 결국 패킷 전달 지연이 커지게 된다. 반대로 이동 단말이 업데이트 작업을 매우 빈번하게 수행한다면 네트워크는 이동 단말의 현재 위치를 정확하게 알 수 있게 되며 호출 작업을 별도로 하지 않고도 패킷을 바로 이동 단말에게 전송할 수 있게 된다. 하지만 이러한 이동성 관리 방식은 업링크 무선 채널 용량을 감소시키고 단말기의 전력을 많이 소모하게 한다. 따라서 효과적인 이동성 관리 방법은 서로 반대인 두 방식 사이에서 타협점을 찾는 것이다.
GPRS에서 단말기는 세 가지 상태, idle, standby, active 상태가 존재한다. 세 개의 상태는 GSM의 두 가지 상태, idle과 active 상태처럼 무선 패킷의 상태를 나타내 준다. 단말기가 active 상태에 있을 때만 단말기와 GPRS 네트워크 간에 데이터가 전송된다. active 상태에서 SGSN은 단말기의 셀 위치를 파악하고 있게 된다. standby 상태에서는 단말기의 위치를 라우팅 지역(RA : Routing Area)으로만 알 수 있는데 라우팅 지역은 하나 또는 그 이상의 셀로 이루어진다.
SGSN이 standby 상태의 단말기로 패킷을 보내려면 단말기가 호출되어져야 한다. SGSN이 단말기의 상태를 파악하고 있으므로 패킷 호출 메시지는 해당 라우팅 지역으로 보내진다. 패킷 호출 메시지를 받은 다음에 단말기는 active 상태를 설정하기 위해 셀의 위치를 SGSN으로 알려 준다. active 상태 단말기로의 패킷 전송은 단말기로 데이터 패킷이 인입(incoming)되고 있음을 알려 주기 위한 패킷 호출로 초기화된다. 호출 메시지에 의해 지정된 채널로 패킷 호출이 이루어지면 데이터 전송이 즉시 일어난다. 패킷 호출 메시지의 목적은 패킷 수신 과정을 단순화하는데 있다. 단말기는 다운링크상의 모든 데이터 패킷 대신에 패킷 호출 메시지에만 주목함으로써 배터리를 적게 소모할 수 있다. 만약 전송되어야 하는 패킷이 있을 경우, 단말기는 업링크로의 접근이 필요하게 된다. 업링크 채널은 다수의 단말기에 의해 공유되는데 채널은 BSS에 의해 할당되어진다. 단말기는 패킷 랜덤 접속 메시지를 통해 채널의 사용을 요구한다. 패킷 랜덤 접속 메시지의 전송은 Slotted Aloha 방식을 따른다. BSS는 비어있는 채널을 단말기로 할당하고 패킷 랜덤 접속 메시지에 대한 응답으로 접속 허가 메시지를 단말기로 보낸다. 패킷 접속 허가 메시지에는 채널의 특징이 기술되어져 있다.
standby 상태는 셀 기반의 라우팅 업데이트 메시지로 인해 유발되는 부하를 줄여 결과적으로 단말기의 배터리 소모를 줄이기 위해 필요하다. 단말기가 standby 상태에 있을 경우, 셀의 변화를 매번 SGSN으로 알려 줄 필요가 없으며 다만 라우팅 지역의 변화만 알려 주면 된다. 네트워크 운영자는 라우팅 업데이트 메시지의 수를 조절함으로써 라우팅 지역의 크기를 정의할 수 있다.
idle 상태에서 단말기는 활성화된 논리적 GPRS 컨텍스트나 할당된 PSPDN 어드레스를 가지고 있지 않다. 이 상태에서 단말기는 멀티캐스트 메시지만 받을 수 있다. GPRS 네트워크가 단말기의 위치를 모르기 때문에 다른 외부 네트워크에서 단말기로 메시지를 보내는 것은 불가능하다.
활성화된 단말기가 새로운 셀로 진입하게 되면 셀 기반의 라우팅 업데이트 과정이 시작된다. 이 경우에 단말기는 단말기의 이동상황에 대한 정보가 담긴 짧은 메시지를 GPRS 채널을 통해 현재의 SGSN으로 보내게 된다. active 또는 standby 상태의 단말기가 하나의 라우팅 지역에서 다른 SGSN의 영역으로 이동하게 되면 라우팅 업데이트가 발생하게 된다. 그리고 SGSN내의 라우팅 지역 정보는 업데이트되고 업데이트가 성공적으로 완료되었음을 응답 메시지를 통해 알려 준다. inter-SGSN 라우팅 업데이트는 라우팅 업데이트 중에서 가장 복잡하다. 단말기가 하나의 SGSN 영역에서 다른 영역으로 이동할 때 새로운 SGSN에 대한 연결을 설정해야 하는데, 이것은 단말기와 새로운 SGSN간에 새로운 논리적 컨텍스트를 만드는 것을 의미하며 동시에 단말기의 새로운 위치를 GGSN으로 알리는 것을 의미한다.
GPRS는 IPv4 및 IPv6를 지원한다. IP 네트워크 관점에서 보면 GPRS 네트워크는 다른 IP 서브 네트워크와 동일하게 취급되며 GGSN은 하나의 IP 라우터로 이용된다. 아래 그림은 GGSN에 올라가는 프로토콜 스택 구조를 보여 준다.
아래 그림은 GPRS 네트워크가 어떻게 인터넷과 연결되는지를 보여 준다. IP 네트워크에 연결하고자 하는 이동 단말 사용자는 IP 주소를 부여 받는다. IP 주소는 GPRS 운영 시스템에서 사용 가능한 영역 내에서 선택되는데 많은 수의 이동 단말 사용자를 지원하기 위해 동적으로 IP 주소를 할당하는 것이 반드시 필요하다. 따라서 DHCP(Dynamic Host Configuration Protocol) 서버가 설치되어야 한다. GGSN은 PDP 컨텍스트 내용을 참조해 IP 주소와 GSM 주소 사이의 변환 작업을 수행한다.
GPRS 운영자 또는 IP 네트워크 운영자에 의해 관리되는 DNS를 이용해 IP 주소와 호스트 이름 사이의 변환도 가능하다. PLMN에 대한 인증되지 않은 접속을 막기 위해 GPRS 네트워크와 외부 IP 네트워크 사이에 방화벽을 설치할 수도 있다. 이런 구성을 통해 GPRS는 이동 단말과 이동 컴퓨터를 연결하는 인터넷의 확장된 영역으로 이용될 수 있다.