### 우선, handoff 가 뭔데?
- 한마디로 전화가 더 잘 터지도록 더 낳은 기지국으로 바꾸는 겁니다.
호(call)을 사용하던 기지국에서 다른 기지국으로 전달해 준다고 해서 handover라고도 하는데 handoff와 같은 의미로 비동기식에서는(유럽사람들이) handover라고 부릅니다.
### 그거 왜 하는데?
-단말기가 움직이는데 기지국은 가만이 있으니 당연 기지국 신호의 세기가 작아집니다. 그러면 전화 못 씁니다. 신호가 약해서 아무리 불러도 '대답 없는 너' 가 됩니다. 전화걸거나 받아 통화하고 있었다면 전화 끊어지기 쉽상이 됩니다(bad frame 연속나서 call drop).
그래서,
1) 전화 끊어지지 말라고 합니다.
2) 전화는 안 끊어져도 보다 나은 통신 품질을 위해서 합니다.(macro diversity)
3) 전화왔음을 알리는 paging 신호를 제대로 받는 확률을 높이려고 합니다.(mobile terminated call)
4) 내가 전화 걸고 싶을 때(access attempt) 기지국이 내가 전화 건다는 요구를 하고 있구나 하고 제대로 알고 있을 확률을 높이려고 합니다. (mobile originated call)
5) 서비스 사업자는 역방향에서 selection diversity에 의한 이득을 coverage 증가 혹은 capacity 증가로 사용 가능하다는 viterbi 선생님 이후의 많은 연구결과를 믿고 합니다.
### access handoff는 handoff 족보 중에 어디에 있는 거야?
handoff라는 것을 그 내용에 따라서 정확한 표현을 하려고 다양하게 불러댑니다.
그 중에서 잘 알고 계시는 Hard handoff, Soft handoff는 traffic state(참고*)에서의 handoff를 주로 말할 때 사용합니다.
access handoff는 access state에서의 handoff를 말합니다. 단말기가 특정 기지국으로 access를 하는 동안 다른 기지국으로 access 시도를 바꿀 수 있는것을 말합니다. idle state에서는 idle handoff가 있죠. access handoff란 idle handoff[참고**]의 확장개념이라고 생각합니다.
access handoff는 3개의 것을 통칭해서 부르는 말입니다.
access entry handoff, access probe handoff, access handoff
### access entry handoff, access probe handoff, access handoff
그게 뭔데? 꼭 알아야 돼?
- access handoff 는 없어도 전화 걸고 받고 할 수 있습니다. IS-95A 에서는 없었습니다. 그러다 IS-95A 망에서 문제가 발생했습니다.
access 시도하는 동안 단말기가 움직여서 혹은 채널의 특성이 변해서 처음 access 시도하던 기지국의 신호세기가 좋지 않은 경우가 있습니다. 언제가 그럴까요? 셀 경계지역에서 고속으로 단말이 이동하는 경우가 그렇습니다. 처음엔 신호세기 좋았죠. 그런데 고속으로 이동하다보니 조금만 시간이 지나도 신호세기가 나빠질 수 있죠. 이런 경우 access 성공률이 낮게 되었습니다. 그래서 퀄컴하고 모토로라에 있는 엔지니어들이 머리를 굴렸습니다. 우째하면 accsss attempt 성공확률을 높일 것인가를! 그래서 access 도중에도 handoff하는 것이 낫겠다고 말했고 IS-95B 제정할 때 넣었습니다. 그래서 이젠 access 성공률이 IS-95A 때보다 더 높습니다.
각 각의 의미는 다음과 같습니다.
1)Access Entry HandOff (AEHO)
단말기가 볼 때 access가 필요하다고 판단한 상태에서 access state의 substate인 update overhead information substate로 가기전에 handoff를 하는 것입니다.
쉬운말로 풀어 설명하면...
paging channel을 monitoring하였고 기지국으로 access를 하기 직전상태에 단말기가 있습니다. 단말기는 아직 paging channel에서 받은 overhead 정보를 가지고 단말기가 해당 기지국의 조건에 따라 준비(각종 변수를 갱신하여 저장)하지 않았고요. AEHO란 이 상태에서 다른 기지국의 paging channel로 이동하는 것을 말합니다. AEHO를 지원하는 기지국에 대한 정보는 paging channel에서 Extended System Parameter Message (ESPM)가 알려줘서 알고 있습니다. ESPM에서 EAHO를 허락하는 관련 field는 ACCESS_ENTRY_HO와 ACC_ENT_HO_ORDER 입니다.
(ACCESS_PROBE_HO, ACCESS_HO 는 access probe HO, access HO를 위한 control field입니다. 뭐 이런 field는 spec에 다 있는 것이고..)
현재 paging channel을 보아하니 신호가 너무 낮아 access 성공 가망성이 별로 없다고 'paging channel loss'를 선언해버리고 다른 paging channel로 가려하려는 것입니다. (쓰지도 않을 것인데 지금 paging channel loss 선언해 버린 기지국에 대한 정보를 저장해서 무엇하겠어요?)
단말기 입장에서는 AEHO를 하게 되면 access 시도 전에 보다 나은 신호 세기를 제공하는 기지국으로 access를 시도하게 됩니다. access 성공률이 높아집니다.
idle state에서 access state로 가는 과정에서 발생하는 특별한 idle handoff 로 보시면 됩니다. 단지 access state의 시작부분에서 일어나서 'access'라는 말과 'entry'라는 말이 붙은 것으로 생각합니다. idle state에서 access state로 가는 도중에 일어남으로 idle state에서의 handoff도 되고 access state에서의 handoff도 됩니다. 그런 구분이 그리 중요하겠어요?
[참고]
이제 까지 간단하게 AEHO를 살펴보았으니 여기서 하나의 call 예를 들어 짧게 call flow를 보시면서, 다음에 설명할 access probe handoff, access handoff까지 개념잡으시죠.
한 예로 mobile terminated call인 경우, 단말기가 paging channel로 paging 신호(General Page Message)를 받았다면 paging response message를 기지국에 보내야 합니다. 단말기가 보내는 paging response message(PRM)가 기지국에 도착하는 것이니 역방향 'access' 개념이지요. 단말기가 보니 paging 을 받은 기지국 신호가 나빠져서 paging channel loss 가 되어 버렸네요. 그러면 어찌해야 하나?
AEHO가 지원되면 access 시도 전에 handoff하면 될테고...
AEHO가 지원되지 않는다면?
paging response message가 담긴 access probe를 그 기지국으로 날려야지요. 대개의 경우 순방향에서 paging channel loss가 된 채널환경이면 역방향 역시 좋지 않을 것입니다. 단말기는 access probe를 계속 제한 횟수까지 점차 power증가시켜 보내며 access를 시도하겠죠. 기지국의 ack를 받을 때까지. 혹은 maximum access probe 시도 횟수까지.
(access probe를 보내다가 다른 기지국으로 보내는 것을 다음에 설명할 access probe handoff라고 합니다.)
기지국은 단말기가 보낸 PRM를 못받기 쉬울 겁니다. 혹 다행히 기지국이 PRM을 받았다고 하죠. 그런 경우 기지국 너의 PRM을 잘 받았다 하고 BS ack order를 단말기에게 보내주게 되어있습니다. 그러나 채널 상태가 나빠 기지국으로부터 내려오는 ack를 수신하지 못할 가능성이 크게 됩니다. 기지국은 그 후 '오냐! 단말기, 그럼 이제부터 traffic channel 몇번 walsh function을 써라'하고 channel assignment message(CAM)를 내려줘도 paging channel loss 된 순방향 무선 채널 환경임으로 단말기는 CAM를 못 듣게 됩니다. 어쨌든 단말기가 받은 paging message에 대해 보낸 response 신호가 기지국에 access 되는 것이 실패하게 된 것입니다. 슬픈일이죠...
(BS가 보내준 ack를 받고 CAM을 받기 전에 handoff하는 것을 access handoff라고 합니다)
[참고끝]
2) access probe handoff
어떤 기지국으로 access probe를 날리는 도중에 다른 기지국으로 access probe를 날리는 것을 access probe handoff라고 합니다.
paging channel로 그 기지국에 대한 overhead 정보를 받아 단말기가 그걸 저장했고 이제 그 정보를 바탕으로 access를 시도하려 합니다. access probe를 날립니다. 기지국이 반응이 없습니다. access 가 잘 안된모양입니다. 다시 access probe의 power를 증가시켜 access를 시도해봅니다.... 그러는 도중에 paging channel loss가 선언되면 다른 기지국으로 accss probe를 날립니다. access probe handoff를 지원하는 기지국에 대한 정보는 Paging channel에서 Extended System Parameter Message (ESPM)에서 알려줘서 알고 있습니다. 최대 가능한 access probe handoff 수도 ESPM에서 지시 합니다. access probe handoff만 계속 할 수도 없잖아요. AEHO가 한 번만 일어 날 수 밖에 없는 것과 비교하면 access probe handoff는 여러번 일어날 수도 있습니다.
단말기가 보낸 access 시도를 기지국이 받고 ack를 보냈을 수도 있습니다. 단말기는 그것을 못받은 상태에서 계속 access probe를 날리다 handoff 하는 거죠.
3) access handoff
단말기가 보낸 access probe에 대한 기지국의 ack를 단말기가 잘 수신했습니다. 기지국의 ack까지 받고 다른 기지국으로 핸드오프하는 것을 access handoff라고 합니다. access probe handoff와 다른 점은 기지국의 ack를 받고 하느냐 안 받고 하느냐입니다. 여기서 다른 기지국으로 handoff한다는 것은 다시 access probe를 access handoff 할 기지국으로 보내는 것을 의미합니다. 기지국으로 부터 ack는 왔지만 아직 순방향에서 사용할 channel 할당을 위한 Channel Assignment Message(CAM)는 안 왔습니다.
<참고*: State >
스펙 만드는 사람은 전화 걸고 받고 하는 것에 대해서 기지국과 단말기가 해야하는 일이 무엇인지 설명을 해야합니다. 생각해보니 특정한 상태가 되기까지를 state라고 해서 구분하면 설명하기 쉽게 생겼습니다. 그래서 call processing에서는 state라고 부르는 것으로 구분하여 단말기와 기지국의 동작을 설명합니다.
initialization state, idle state, access state, traffic state
<참고*끝>
<참고**: Idle HO>
paging channel을 가끔 쳐다보면서 전화왔나 안왔나 보는 idle state에서도 handoff를 합니다. 내용은 별것이 아니고 가장 좋은 pilot 신호를 잡아서 그 쪽으로 registration해서 그 쪽의 paging 채널을 받는 것을 말합니다. idle state에서도 active set이란 말을 쓰는데 여기서 active set은 한개이고 traffic state에서와는 달리 그저 paging channel을 monitoring하는 기지국을 말할 뿐입니다. 차타고 학교에서 집에 갈때 idle HO 참 많이 일어나겠죠?
통학/통근할 때 전화기 꺼 놓으면 연속 대기시간 많이 늘어날 껍니다. ^^
대신 그동안 전화오면 못받죠. ^^;
옛날 전화기 사용해서 battery 구할 수 없는 제 아버지는 그렇게 하십니다. 훅.. 불효자...