링크 계층 (2) - 무선, 모바일 네트워크

이정인·2022년 3월 11일
0

컴퓨터 네트워크

목록 보기
10/11

어떤 랩탑이 구글에 접속을 요청했다고 생각해보자.

  • DHCP 서버로 브로드캐스팅하여 정보를 요청한다.

    UDP로 통신하며 자기 자신의 IP를 아직 모르기 때문에 IP주소는 0.0.0 .. 일 것이다. 이더넷케이블에 소스 주소에는 해당 랩탑의 MAC주소가 적히고 나머지 정보는 아직 모르는 채로 frame 가 보내진다. DHCP 서버는 브로드캐스팅 받은 정보를 바탕으로 self -learning 한다.

  • 이후에 자신의 IP 정보와 게이트웨이의 IP 주소 , DNS 서버의 IP 주소를 알게된다. 자기 자신의 포워딩 테이블은 꾸릴 수 있다.

  • 목적지의 IP 주소를 모르기 때문에 DNS 쿼리를 보낸다.

    • IP 패킷

      SRC: 자기 자신의 IP 주소

      DES : DNS 서버의 IP 주소

    자기 자신의 포워딩 테이블에서 해당 des에 맞는 next-hop의 주소를 찾는다.

    이제 next-hop인 게이트웨이로 frame을 보내야 한다.

    • FRAME

      SRC: 자기 자신의 MAC 주소

      DES: 게이트웨이의 MAC 주소

      하지만 게이트웨이의 MAC주소를 아직 모르기 때문에 ARP query를 보낸다.

    ARP 테이블이 채워지게 되고 이제 MAC 주소를 알아냈으니 frame을 보낸다.

    드디어 DNS을 통해서 목적지의 IP 주소를 알아냈다.

  • 이제 HTTP request를 보내야 한다.

    • TCP connection setup

      TCP sync 메시지를 보낸다.

      TCP Sync 메시지의 도착지와 목적지를 보고 포워딩 테이블을 룩업한 뒤 ARP 테이블을 룩업해 frame을 구성하고 보낸다.

    • TCP ACK을 받는다.

    • HTTP Requset가 나간다.

무선 및 모바일

잔잔한 호수에 돌을 던지면 반경 안에서는 출렁이지만 멀어질수록 수면에는 큰 영향이 없을 것이다. 마찬가지로 신호의 세기도 거리에 반비례하게 된다.

A가 보내는 신호는 B에는 들리지만 C까지는 들리지 않는다. 따라서 C는 아무 신호가 없다고 생각하고 자신도 신호를 보내기 때문에 충돌이 생긴다. C의 입장에서는 자신의 신호가 A보다 훨씬 세기 때문에 충돌을 감지하기 힘들다.

따라서 무선에서는 유선과 같은 기법을 사용할 수 없다.

IEEE 802.11 Wireless LAN

인터페이스들은 WIFI 범위에 있는 access 포인트와 연결을 맺고 access point들은 스위치들과 연결되어 있다.

AP들은 자기 자신의 존재를 알리기 위해 주기적으로 브로드캐스트를 보낸다.

하나의 AP와 연결된 인터페이스들의 집합을 BSS라고 부른다.

BSS는 하나의 AP와 다수의 와이파이 유저들이 연결되어 있다.

multiple access

각각의 유저들은 AP로 frame을 보낸다. 따라서 동시에 보내면 문제가 생기기 때문에 조율을 위해 MAC 프로토콜이 필요하다. 기본적으로 CSMA를 사용하기는 하지만 collision detection이 힘들기 때문에 collision avoidance라는 조금 다른 기법을 사용한다. (CSMA/CA)

예를 들어 A가 AP에 frame을 전송하려고 할 때,

  • 우선 carrier sense을 해 상태를 살펴본다.

  • 만약 전송 가능한 상태라면 DIFS만큼 기다렸다가 frame을 전송한다.

  • AP는 SIFS만큼 기다렸다가 ACK을 보낸다.

    전송한 frame이 충돌이 생겼는지 알아야하기 때문에

    무선은 충돌 감지가 힘들기 때문에 한 데이터를 그냥 쭉 보낸다.

    그래서 충돌이 생길 경우 전체가 날아가 데미지가 크다.

    => RTS-CTS를 통해 개선함

    ACK을 받을 때까지 계속 재전송한다.

RTC-CTS

A와 B가 동시에 AP로 프레임을 보내는 상황이라고 생각해보자 둘 다 carrier sense를 해보고 조용하면 RTS라는 작은 메시지를 보낸다. RTS는 Ready To Send의 약자로 실제 데이터는 실리지 않은 작은 컨트롤 프레임으로 크기가 작기 때문에 충돌이 생긴다해도 데미지가 작다.

따라서 RTS을 보냈을 때 ACK이 돌아오지 않으면 (충돌이 생겼으면) A와 B는 충돌 여부를 알고 경쟁을 통해서 어느 하나가 먼저 프레임을 보내게 된다.

만약 A가 먼저 랜덤하게 RTS을 보내 충돌 없이 도착한다면 AP는 이에 대한 응답으로 CTS (Clear to Send)을 보내고 A에게 보내긴 하지만 AP 반경에 있는 모든 유저들이 해당 응답을 알 수 있고 그 안에는 누가 얼마동안 이 채널을 사용할테니까 조용히하라는 정보가 적혀 있다.

A는 이제 안전하게 데이터를 보낼 수 있게 되었다. 데이터 전송이 완료되면 AP는 A에게 ACK를 보내주고 AP 반경에 있는 다른 유저들도 해당 정보를 알게 된다.

Wifi frame


  • Address 1:

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

  • Address 2:

    이 프레임을 전송하는 디바이스의 MAC 주소

  • Address 3:

    이 AP가 연결된 라우터의 MAC 주소

![image-20220312000112487](/Users/ijeong-in/Library/Application Support/typora-user-images/image-20220312000112487.png)

AP에서 라우터는 이더넷 케이블로 연결되어 있으므로 이더넷 프레임을 사용하며 DES , SRC 주소만 적으면 된다.

왜 이렇게 전송하는 걸까?

AP는 Link layer 디바이스이다. 즉 Link Layer까지만 구현되어 있는 디바이스이다. 반면에 라우터는 Network Layer 디바이스로 Network Layer까지 구현되어 있으며 IP 패킷을 받아서 해석할 수 있다.

대표적인 Link Layer 디바이스가 스위치다. 스위치는 MAC Address가 없다. 하지만 AP는 MAC Address가 존재하는데도 왜 바로 DES 주소로 적을 수 없는 걸까?

SRC에서 보내는 프레임을 받는 DES는 해당 프레임의 데이터를 해석한 후 포워딩 해줘야한다. 프레임의 데이터 부분은 IP 패킷이므로 이를 위해서는 Network Layer가 구현이 되어 있어야하는데 AP는 Network Layer가 없으므로 프레임 안의 데이터를 해석할 수 없다. 따라서 Address 3 필드가 필요하게 된 것이다.

AP의 특이한 점은 무선 쪽에는 MAC 주소가 있고 유선 쪽에는 MAC 주소가 없다는 것이다. 따라서 라우터에서는 AP의 존재를 인식할 수 없다. 유선의 경우 따로 지정하지 않아도 해당 스위치 또는 AP 하나로만 전송이 되기 때문에 MAC 주소가 필요 없는 데에 반해, 무선의 경우에는 따로 하나의 AP와 연결된 것이 아니기 때문에 MAC 주소로 특정해줄 필요가 있다.

실제 가정에서는 AP와 router가 합쳐져 있고 상위 애플리케이션 계층까지 구현되어 있는 디바이스를 사용한다. 이 장비는 24시간 내내 백그라운드로 애플리케이션 계층에서 DHCP, DNS가 돌아가고 있을 것이다.

ARP 브로드캐스트의 범위는 라우터까지로 같은 서브넷 안에 있는 호스트까지가 영역이다.

mobility within same subnet

만약 같은 서브넷을 가지는 하나의 BBS에서 다른 BBS로 커넥션이 넘어간다면 IP 주소가 변할까? 만약 AP1의 H1과 외부가 TCP connection으로 연결되었다고 하자. 그러면 H1의 IP주소와 포트 번호 혹은 서버의 IP 주소와 포트 번호가 바뀌지 않는 한은 연결은 유지될 것이다. 바뀔 가능성이 있는 건 호스트의 IP 주소이다. 하지만 AP2의 H1으로 연결이 넘어 간다고 해도 IP주소가 변하지 않으므로 TCP connection은 유지가 된다.

즉 하나의 네트워크 영역 안에서는 AP를 이동한다고 해도 연결이 유지된다.

Advanced capabilities

와이파이 채널에서의 전송 속도는 고정된 것이 아니라 무선 채널의 상태에 따라서 가변적으로 변경한다. 따라서 AP에 멀어지거나 상태가 안 좋으면 알아서 전송 속도에 대한 인코딩 기법을 변경해서 조정한다.

참고
http://www.kocw.net/home/search/kemView.do?kemId=1312397
http://www.kocw.net/home/cview.do?mty=p&kemId=1169634

0개의 댓글