이 글은 이화여자대학교 이미정 교수님의 2014년 2학기 컴퓨터 네트워크 강의를 기반으로 재구성한 것입니다. 삽화는 링크를 출처로, 저작권은 J.F Kurose and K.W. Ross에게 있다는 것을 밝힙니다.
이 글에서는 다음과 같은 내용들을 살펴본다.
- wireless basics
- multiple access protocol
- CSMA/CA
- CDMA
- mobility - indirect routing
wireless vs mobile
둘은 비슷하지만 엄밀하게는 다르다. wireless는 link가 wireless하게 연결된 경우를 말하고, mobile은 사용자가 움직이는 것을 의미한다.
Wireless Basics
Wireless Network Element
wireless network는 아래 3개의 구성요소가 있다.
- wireless host : user host의 역할을 수행한다. wireless host는 static일 수도 있고, mobile이어서 움직일 수도 있다.
- base station : 일정 영역의 user host를 network core에 연결시킨다. wireless의 모든 data는 base station을 경유한다.
- LTE의 경우 cell tower가, WiFi의 경우 access point가 base station의 역할을 수행한다.
- wireless link : wireless host와 base station을 연결한다. wireless link는 shared이므로 multiple access procotol이 필요하다.
- WiFi나 cellular는 access network에 연결되고, 위성 wireless link의 경우 backbone에 연결된다.
Wireless Network의 종류
wireless network는 크게 2가지 종류가 있다.
Infrastructure Mode
infrastructure mode는 base station이 있는 형태로, base station이 wireless host들을 wired network에 연결한다. 이 때 모든 wireless host들은 base station을 경유해야 packet을 주고받을 수 있다. component는 user host, base station, wireless link 3가지가 있다.
- 한편, mobile과 같은 특정 user는 base station을 바꿀 수 있는데 이를 handoff라 한다.
Ad Hoc mode
ad hoc mode : base station이 없는 형태로 component로 user host와 wireless link 2가지만 있다. 때문에 각 user host는 자신의 signal 범위 내에 있는 user host들과만 통신할 수 있다.
- 이 방식에서는 각 node들이 router 역할을 해서 user host들이 network를 구성한다.
- 이 때 user host가 본인의 data가 아닌 다른 host의 data를 옮기기는, router의 기능을 수행하기도 한다.
Wireless Network 분류
single hop | multiple hop | |
infrastructure | base station과 연결되는 모든 기기는 거리 1에 있다. WiFi나 cellular 등이 여기에 속한다. | base와 user에 중간 매개체 역할을 해 주는 user가 있는 경우. 넓은 지역에 user가 sparse하게 분포한 경우, user들이 router의 역할을 수행해 network를 만든다. mesh net이 여기에 속한다. |
no infrastructure | base station 없이 기기들끼리 거리 1로 바로 연결되는 경우. bluetooth가 여기에 속한다. | user host들이 그들만의 network를 형성해 data를 주고받는 형식이다. 재난지역의 장비 통신 등이 여기에 속한다. |
Wireless Link의 속도와 범위
IEEE 802.11은 WiFi에 해당하는 것이라고 생각하면 된다. 모두 속도는 빠르지만 거리가 10-30m로 매우 좁다.
802.15는 bluetooth이다. 속도도, 거리도 좁다.
2G, 2.5G, 3G, 4G는 모두 cellular이다. 시간이 가면 갈수록 속도가 빨라지는 것을 볼 수 있다.
Multiple Access Protocol
앞서 wireless link는 shared link이므로 multiple access protocol이 있어야 한다는 이야기를 했다. 이게 뭔지 보자.
wired link와의 차이점
다음 요소들 때문에 wireless가 wired보다 더 어렵다.
- path loss : 전송되는 과정에서 에너지를 소모하는 비율이 wired인 경우보다 훨씬 크다.
- interference : 전파들끼리 서로 간섭하기 때문에 data가 부정확해진다.
- multipath propagation : 전파가 진행되다가 장애물에 부딪히는 등의 이유로 도착 속도가 달라지고, signal의 명확도가 떨어진다.
- collision : wireless network의 본질은 한 지역에 wireless link를 공유하는 것이기 때문에 shared이며, 따라서 여러 host가 동시에 같은 link에 정보를 보내는 경우 collision이 발생한다.
Collision
wired link에서 위와 같은 상황을 가정해 보자. 만약 2개 이상의 host가 동시에 신호를 발생하면 합쳐지는 link에서 간섭이 발생해 data가 섞이는데, 이 현상을 collision이라고 한다.
CSMA, Carrier Sensing Mutliple Access
wired link에서는 CSMA를 사용한다. 이는 신호를 보내기 전에 link에 다른 신호가 흐르는지 여부를 파악하고 보내는 방식이다. 그러나, 이 방식에도 문제가 있는데, link에 신호가 흐르지 않다고 판단하고 2개 이상의 host가 동시에 신호를 보낼 수 있다. 그러면 결국 collision이 발생한다.
CSMA/CD, Carrier Sensing Mutliple Access / Collision Detect
이를 해결하기 위해 wired link에서는 collision detect를 사용하는데, 이를 CSMA/CD 방식이라고 한다. 기존 CSMA 방식에 data를 보낸 이후 signal이 link 전체에 보내는 시간인 RTT만큼 다른 signal을 감지하는 방식이다. 만약 보낸 signal 이외에 다른 signal을 관측했다면 collision이 발생했으리라 생각하고 다시 보낸다.
이 방식으로 collision을 감지하고 collision 발생 시 재전송하는 방식으로 collision을 해결한다.
Hidden Terminal Problem
앞에서 wired에서 사용하는 CSMA/CD 방식을 살펴봤는데, CSMA/DA는 wireless에서 사용할 수 없다.
위 예시를 보자. A-B, B-C는 서로 통신하지만 중간에 있는 장애물로 인해 A-C는 서로 통신하지 못한다. 즉슨, A는 C가 보낸 신호를 감지할 수 없기 때문에 carrier sensing을 할 수 없다는 것이다.
이렇듯 wireless는 CSMA/CD가 불가능하기 때문에 다른 방식의 multiple access protocol을 사용해야 한다. 여기서는 CSMA/CA와 CDMA 방식을 살펴본다.
Collision Avoid
wireless는 collision을 해결하기 위해 sender가 access point를 예약하는 방식을 택한다.
- 먼저 host가 access point에 RTS, Ready To Send message를 보낸다. access point는 이를 보면 CTS, Clear To Send message를 access point에 broadcast해서 RTS message에 응답한다.
- RTS message를 보낼 때는 CSMA를 사용하되, sender host가 관측할 수 있는 범위의 신호만 감지한다.
- RTS는 크기가 매우 작기 때문에 재전송해도 overhead가 크지 않으므로 언젠가는 access point로 도착한다.
- CTS message는 누가 얼만큼 access point를 예약했는지에 대한 정보가 있다.
- CTS message를 수신한 host들은 access point의 사용 여부를 알 수 있기 때문에 collision이 발생하지 않음을 보장할 수 있다.
이 방식으로 collision 발생 자체를 회피할 수 있기에 collision avoid라고 한다. 비록 RTS와 CTS를 보내는 데 overhead가 발생하지만 collision이 발생하는 overhead에 비해 훨씬 작기 때문에 이러한 방식을 채택한다.
예시
A, B 2개의 host가 access point로 packet을 보낸다고 하자. 다음과 같은 과정으로 collision avoid가 일어난다.
- host A, B가 동시에 RTS message를 보내 collision이 일어났다. A와 B는 CTS message가 오지 않는 것을 감지하므로 잠시 기다렸다가 재발송한다.
- host A가 먼저 RTS message를 발송한 상황이다.
- access point는 이를 확인하고 CTS message를 broadcast로 보낸다.
- CTS message를 수신한 host A는 자신이 그 시간에 packet을 발송하면 된다는 것을 알고, host B는 기다리면 된다는 사실을 알게 된다.
- access point가 data를 받았다는 의미로 ack message를 broadcast한다.
CDMA, Code Division Multiple Access
일반적으로 전화(cellular)에서 사용하는 방식으로, 여러 사용자가 동시에 전송하는 것을 허용하는 방식이다.
- 모든 source host가 unique한 chipping sequence를 사용해 원래 data를 encoding한다.
- receiver는 chipping sequence로 decode한다.
이 때 chipping sequence들이 orthogonal하면, 그러니까 서로 영향을 미치지 않으면 encoding한 결과도 서로 영향을 미치지 않기 때문에 한 번에 data를 보내도 collision이 일어나지 않는다. 그렇지만 data의 양이 커지므로 전송에 오래 걸린다는 단점이 있다.
Mobillity
mobile 기기들은 움직이기 때문에 속한 network를 자주 변경해야 한다. 이를 어떻게 해결해야 할까?
routing이 handling하는 경우
기존 wired network를 생각해 보자. 어떤 organization이 ISP를 바꿨을 때 내부의 모든 network 기기의 IP address를 바꾸지 않는다. 변경된 IP address prefix를 ISP가 advertise하는 방식으로 사용했다.
그러나, mobile 기기들은 움직이기 때문에 속해있는 network를 변경하는 일이 매우 잦다. 만약 개별 IP address를 forward table에 올리게 되면 forwarding table size가 매우 커지기에 확장이 불가능하다. 이를 해결하기 위해 indirect routing을 사용한다.
Indirect Routing
indirect routing은 end system이 mobility를 handling하는 경우이다.
용어 정리
설명하기 전에 몇 가지 단어들을 먼저 정리하자.
- permanent address : 모든 mobile 기기가 가지는 고유한 IP address. home network에게 받는다.
- home network : mobile 기기의 "home". permanent address를 할당하며, 대리인이라고 생각하면 된다.
- home agent : home network에서 permanent address를 할당한 모든 mobile 기기들을 지원하는 기기이다.
- visited network : mobile 기기가 접속한, home network 이외의 다른 nework를 의미한다.
- foreign agent : 자신을 방문한 mobile 기기의 home agent와 협력해 mobility를 support하는 기기이다.
- care of address : foreign agent에서 mobile 기기를 식별하기 위한 주소. mobile 기기가 visited network에 연결하면 foreign agent는 care of address를 추가로 할당한다.
- care of address를 받은 mobile 기기는 주소가 2개가 된다. (permanent address, care of address)
- correspondent : mobile 기기에 접속하고자 하는 host
home agent는 access network, 즉 network edge에 위치한다. 이는 지금까지 살펴봤던 internet의 기본 이념인 "복잡한 것은 바깥에"에 부합한다.
사전동작
모든 mobile 기기는 다음과 같은 사전 동작을 겪으며, 순서는 아래와 같다.
- mobile 기기는 home network에서 permanent address를 할당받는다.
- mobile 기기가 visited network로 접속한다.
- visited network에 있는 foreign agent가 care of address를 할당한다. 동시에 home network에 이 사실을 알린다.
- foreign agent는 permanent address를 사용해 home network에 접근해 care of address를 알린다. 그러면 home agent도 source IP address를 사용해 foreign agent를 알게 된다.
Indirect Routing 과정
이제 이 상태에서 correspondent가 mobile 기기에 message를 날릴 때 무슨 일이 생기는지 보자.
- correspondent는 permanent address로 packet을 보낸다. 이 packet은 home network로 간다.
- home network의 home agent는 자신이 permanent address에 해당하는 mobile 기기처럼 행동한다.
- packet을 대신 받는다!
- 이후 그 packet을 IP로 encapsulate한 후 foreign agent로 보낸다. (home agent는 foreign agent를 알고 있기 때문에 보낼 수 있다.) 이 때 encapsulate하는 IP address는 care of address이다.
- foreign agent가 packet을 받으면 mobile 기기에게 준다.
- mobile 기기는 permanent address를 사용해 correspondent에게 응답한다.
아주아주 간단하게 요약하면 home agent가 mobile 기기의 정보를 알고 있는 대리인처럼 행동하는 방식이다.
잘못된 내용이나 오탈자에 대한 지적, 질문 등은 언제나 환영합니다.
'CS > Network' 카테고리의 다른 글
[Network] 하향식 접근 네트워크 - 5. Link Layer (1) | 2023.07.31 |
---|---|
[Network] 하향식 접근 네트워크 - 4. Network Layer - (6) Broadcast, Multicast (0) | 2023.07.30 |
[Network] 하향식 접근 네트워크 - 4. Network Layer - (5) Routing in the Internet (0) | 2023.07.30 |
[Network] 하향식 접근 네트워크 - 4. Network Layer - (4) Routing Protocol (0) | 2023.07.30 |
[Network] 하향식 접근 네트워크 - 4. Network Layer - (3) Internet Protocol (0) | 2023.07.30 |