무선 라우팅

ksh98·2024년 6월 15일

네트워크

목록 보기
24/25

무선 환경의 특징

  • 무선 환경에서는 한 사람에게 보내려는 것도 브로드캐스트가 된다.
  • 중간에 충돌, 간섭, 노이즈가 많다.
  • 전송 파워에도 한계가 있다.
  • 무선 기기의 메모리가 작은 경우 라우팅 테이블을 크게 만들 수 없다는 것도 고려해야 한다.

분류

마스터 노드의 유무

인프라 기반

  • 특별한 마스터 노드가 있다.
  • 예를 들어 기지국
  • 중앙 통제적이다.
  • 라우팅이 비교적 쉽다.

애드 호크

  • 특별한 노드가 없다.
  • 모든 노드와 라우터가 평등하다.
  • 알고리즘이 분산되어 돌아간다.

대응 관계에 따른 분류

  • any to any
  • one to many
    • 예시로 스위치를 켜면 모든 형광등의 불이 켜지는 것
  • many to one
    • 예를 들어 노드들의 하나의 마스터에게 보내는 경우

트래픽 특성에 따른 분류

프로액티브

  • 먼저 라우팅 테이블을 만들고 통신한다.
  • 필요하지 않을 수도 있지만 일단 만든다.

리액티브

  • 필요할 때만 즉 데이터를 보낼때만 라우팅 테이블을 만든다.
  • 첫 메세지를 보낼때 라우팅 테이블을 만들어야 해서 시간이 좀 걸린다.

라우팅 정보에 따라

홉 바이 홉

  • 다음 라우터에게 패킷을 보내면 더이상 신경 쓰지 않는다.
  • 즉 한 홉 보내면 해당 패킷에는 더이상 관여하지 않는다.
  • 루프가 없다는 것을 보장하지 못한다.

소스 라우팅

  • 소스가 목적지로 어느 라우터로 가야하는지 다 알고 있다.
  • 그래서 헤더에 경로가 다 들어있다.
  • 경로를 정해주니 루프가 없다는 것을 보장할 수 있다.
  • 단 패킷이 너무 길어질 수 있다.

on-demand, 애드 호크 라우팅

aodv 프로토콜이 이에 해당한다.

소스는 a 목적지는 h라고 할 때

  1. a가 h에게 보내고 싶다는 요청 메세지를 브로드캐스트한다.
  2. b와 c가 이걸 받으면 a가 h에게 보내고 싶어한다는 것을 알게 된다.
  3. b와 c는 메세지를 다시 브로드캐스트한다.
  4. b가 먼저 브로드캐스트하면 d와 e가 받고 이 둘은 a가 h에게 뭘 보내고 싶어한다는 것을 알게 된다. c도 받지만 c는 이미 받았기 때문에 메세지를 무시한다.
  5. c도 브로드캐스트르 하고 f가 받는다.
  6. d와 e중 e가 먼저 보내면 b, c, d는 무시하고 g 와 h가 받을 것이다.
  7. h는 자신이 받은 메세지를 보고 목적지가 자신이라는 것을 알게 된다.
  8. h는 답장을 하려 하는데 이때 자신에게 메세지를 준 e에게 응답 메세지를 준다.
  9. e는 b에게 받았으니 b에게 응답을 한다.
  10. b는 a에게 받았으니 a에게 응답을 한다.
  11. 이런 방식으로 a, b, e는 h로 가려면 어디로 보내야 하는지 알게 된다.

다대일 라우팅

슬레이브 -> 마스터

예시 네트워크는 동일하다.

a가 스페셜 노드 즉 루트 노드이다.
나머지 노드는 a에게 뭘 보내야 한다.

  1. a는 라우팅 비콘을 보낸다. 이 비콘은 자기가 루트인 a에게 가려면 거리가 0이라는 것을 말한다.
  2. 이 비콘을 받은 b와 c는 이전 홉의 노드는 a까지의 거리가 0이었으니 자신들의 a까지의 거리가 1이라는 것을 알게 된다.
  3. c가 거리 1 비콘을 보내면 d, e, f가 받고 자신들은 거리 2라는 것을 알게 된다. 추가로 a로 가려면 c로 가야한다는 것도 알게 된다.
  4. d가 먼저 보내면 g가 받고 거리 4에 루트로 가려면 d로 가야한다는 걸 알게 된다.

이런식으로 홉을 논리적인 토폴로지로 나타낼 수 있게 된다.

이를 라우팅 트리라고 한다. 이걸 만들면 라우팅시 각 노드의 라우팅 테이블의 크기는 1이다. 왜냐면 목적지는 루트 1개이고 부모만 알면 되기 때문이다.

마스터 -> 슬레이브

만약 루트인 a가 자손에게 무엇을 보내려고 한다면
예를 들어 g에게 무엇을 보내려고 하면

  1. 먼저 모든 노드가 루트에게 광고 메세지를 보낸다.
  2. b가 보낸 메세지를 통해 a는 b로 가려면 b로 보내야 한다는 것을 알게 된다.
  3. e가 보낸 메세지는 b와 a를 거쳐가니 b는 e로 가려면 e로 보내야 하는 것 a는 e로 가려면 b로 보내야 하는 것을 알게 된다.

이런 식으로 라우팅 테이블이 만들어지고 라우팅 테이블의 크기는 당연히 n개의 노드가 있을 때 O(n)

따라서 슬레이브 -> 마스터로 갈 때보다 비용이 더 크다.

라우팅 트리에서 일대일 라우팅

위의 라우팅 트리를 사용하는데 이제 슬레이브간 통신을 할 것이다.
예를 들어 d가 f에게 보내려면 d는 a에게 보내고 a가 f에게 보내주면 된다.

일대다 라우팅

알람처럼 한 노드가 모두에게 보내고 싶을 수도 있다.
똑같은 예시 네트워크를 사용하고 a가 소스일 때

a에게 받을 걸 b와 c가 다른 노드들에게 보내면 충돌이 일어날 수 있다. 이런 경우를 위해 trickle 알고리즘을 사용한다.

trickle 알고리즘

  • a가 어떤 걸 보내면
  • b와 c는 시간의 범위를 나누고 나눈 시간대 중 랜덤으로 하나를 정해서 그 시간에 보낸다.
  • d와 e도 받으면 똑같은 것을 한다.
  • 이때 다른 레벨의 홉에 있는 노드는 쪼개기 전의 시간대가 겹치지 않는다.
  • 충돌이 나면 시간대를 2배로 늘리고 위 과정을 반복한다.
profile

0개의 댓글