[6] Link-Layer (2)

hyunsooo·2023년 6월 18일
0
post-thumbnail

링크 계층이 무선으로 이루어진 상황들에 대해서 알아보겠습니다.

무선에는 크게 wireless와 mobility로 나누어져 있는데 mobility는 하나의 네트워크를 벗어나 다른 네트워크로 이동이 일어나는 상황을 의미합니다. 따라서 와이파이는 wireless지만 LTE같은 경우를 mobility, 이동통신망이라고 표현하는 이유입니다.

이번 시간에는 wireless에 대해 중점적으로 다뤄보겠습니다. (mobility는 학부수준에서는 매우 어렵다고 함)

1. Wireless의 특성

wireless는 첫번째 엑세스 포인트랑만 연결이 안되어 있을 뿐이지 그 이후로는 유선(이더넷)과 같은 상황입니다.

유선은 케이블로 보호되고 케이블의 구리선을 따라 전자기파가 이동하기 때문에 충돌만 방지하면 큰 문제가 생기지 않았습니다. 하지만 무선의 경우 외부의 간섭에도 노출되고 공기를 통해 이동하기 때문에 전자기파가 이동할수록 신호가 점점 약해지게 됩니다.

위의 상황에서 C는 carrier sense를 하게 되면 A의 신호가 너무 약해 탐지하지 못하고 프레임을 전송할 수도 있습니다. 따라서 CSMA/CD의 기법을 사용하기는 어렵습니다.

2. IEEE 802.11 Wireless LAN

현재 무선 통신의 표준은 IEEE 802.11 입니다. 현재는 계속 버전이 증가하고 있고 이름이 어렵기 때문에 별칭으로 WIFI라는 이름으로 불리고 있습니다.

무선 통신을 위한 AP(Access Point)들이 존재하고 이 기기는 지속적으로 브로드캐스트를 통해 현재 자신의 정보를 외부로 보내게 됩니다. 이렇게 기기들은 AP에 연결할 수 있게 되고 AP는 그 뒤에 스위치나 라우터에 연결되게 됩니다. 하나의 AP에 연결된 집합을 BSS(Basic Service Set)이라고 합니다.

3. MAC Protocol

하나의 BSS에서 각각의 기기들이 동시에 AP로 보내는 상황을 제어하기 위해 MAC Protocol이 필요합니다. 위에서도 이야기 했듯이 collision detect가 불가능한 상황이 있기 때문에 CSMA/CA(collision avoidance)라는 프로토콜을 사용하고 있습니다.

  1. carrier sense를 통해 사용자가 있는지 확인

  2. AP를 사용할 수 있다면 일정시간 만큼 대기(DIFS)하다가 프레임을 전송함

  3. AP는 정상적으로 프레임을 받았다면 일정시간 만큼 대기(SIFS)하고 ACK를 전송함

이더넷과 다르게 충돌 탐지가 불가능하여 피드백 방법을 사용할 수 밖에 없습니다. 여기서의 ACK는 Link 계층의 ACK입니다.

  1. 만약 충돌이 났다면 피드백이 오지 않기 때문에 재전송이 일어납니다.

위의 방식은 충돌 탐지가 안되서 실제로 충돌이 일어나더라도 모든 프레임을 AP로 전송하게 됩니다. 이 시간을 그대로 낭비로 이뤄지기 때문에 조금 더 보완한 방법이 RTS(ready-to-send)-CTS(clear-to-send) 신호를 사용한 방법입니다.

위 그림은 A와 B둘다 AP에게 프레임을 보내는 상황입니다.

  1. carrier sense를 통해 AP로의 전송이 가능하다면 프레임을 보내지 않고 작은 크기의 RTS 신호를 보내서 충돌이 있는지 확인합니다.

  2. 충돌이 있다면 피드백이 오지 않기 때문에 random한 시간으로 재전송을 시작하게 됩니다.

  3. 만약 A가 먼저 RTS 신호를 보냈고 충돌이 나지 않았다면 AP는 RTS의 응답으로 CTS를 보내줍니다.

  4. 이 CTS신호는 A에게 보내긴 하지만 모든 기기들이 AP의 반경에 있기 때문에 CTS안에는 사용할 수 있는 기기의 정보를 전달하여 접근을 제어합니다.

  5. 프레임 전송이 끝나게 되면 A에게 ACK를 전송하게되고 이때 ACK도 모든 기기들에게 전달됩니다.

3. Wifi frame


위의 프레임은 bytes 아래의 확대는 bit

wifi의 address의 주소 크기는 6 bytes(48 bit)로 이더넷에서 사용하던 주소 필드의 크기와 동일합니다. 하지만 이더넷의 주소 필드는 소스와 목적지 2개였지만 wifi는 총 4개(그 중 자주 사용하는 것은 3개)입니다.

  1. 프레임을 받는 디바이스 MAC 주소

  2. 프레임을 보내는 디바이스의 MAC 주소

  3. AP와 연결된 라우터의 MAC 주소

Link 계층의 대표적인 기기인 스위치는 Link 계층만 존재하고 단순히 스위치해주는 역할을 하기 때문에 MAC 주소가 존재하지 않습니다. 반면에 AP같은 경우는 무선 상황에서 호스트들이 AP를 찾아오기 위해 MAC 주소를 가지고 있는 기기입니다. 만약 위와 같이 헤더에 3개의 주소를 사용 하지 않았다면 AP는 자체적으로 IP를 해석할 능력이 없기 때문에 포워딩 테이블 참조 같은 행동을 하지 못하기 때문에 문제가 발생합니다.

4. moblilty

4.1. mobility within same subnet

Youtube와 H1과의 TCP 연결이 되어 있는 상황에서 H1이 BBS2로 이동하게 되면 어떻게 되는지 알아보겠습니다.

youtube와 H1과의 TCP 연결을 위해서는 H1(IP, PORT), YOUTUBE(IP, PORT) 네 가지 상황으로 연결이 되는데 이 정보가 바뀌지 않는다면 TCP 연결은 끊기지 않습니다. H1이 BBS2로 이동하더라도 IP 주소는 변하지 않기 때문에 TCP 연결이 끊기지 않습니다. 결국 같은 네트워크에 속한 AP사이의 이동은 TCP에 영향을 미치지 않고 스위치 테이블만 바꿔주면됩니다. 하지만 다른 네트워크에 속해있는 새로운 BBS3로 이동하게 된다면 TCP 연결이 끊어지게 됩니다.

LTE와 같은 이동통신망을 사용하게 되면 host의 IP가 유지되기 때문에 이동하더라도 TCP 연결이 끊기지 않습니다. 그 이유는 LTE를 제공하는 KT의 네트워크 범위는 전국이기 때문입니다. 단, LTE와 host와의 연결은 wifi파이가 아니라 LTE라는 다른 무선 통신을 이용한다는 차이점이 있습니다.

5. advanced capabilities

이더넷 같은 경우 유선을 이용하기 때문에 전송 속도가 일정하게 됩니다. 반면에 와이파이는 무선이기 때문에 전송 속도가 일정하지 않을 수 있습니다.

그래프의 X축은 SNR(signal-to-noise ratio)은 무선 채널의 상태를 의미하고 BER(bit error rate)는 에러가 발생할 확률을 의미합니다. 속도면에서 초당 8mbp를 보낼 수 있는 초록색 점선을 사용하는 것이 가장 좋아보이지만 현재 무선 채널의 상황이랑 에러가 발생할 확률을 판단해서 적당한 속도를 선택하는 것이 중요합니다.

만약 8mbps로 보내면 AP와의 거리가 멀어지거나 무선 채널의 상태가 나빠지면 속도를 줄이게 되는 방식을 사용하게 됩니다. 결국 wifi를 사용하게 되면 전송 속도가 유동적으로 변하게 되고 CSMA/CA를 하다 보니 체감적으로 더 느릴 수 밖에 없습니다.

profile
CS | ML | DL

0개의 댓글