※kocw에서 제공하는 이석복 교수님의 컴퓨터네트워크 수업을 듣고 필기한 내용입니다.
출처를 따로 밝히지 않는 한 전부 해당 수업에서 제공한 자료들이며 제가 작성한 부분에 있어 틀린 부분이 있을 수도 있다는 점 양해바랍니다.
Wireless and Mobile Network
- wireless: 선이 없는, 무선
- mobile: 이동가능한
- 유선과 무선의 MAC 프로토콜은 차이가 있음
- 유선은 링크라는 매체를 공유해서 사용, 무선은 공기라는 매체를 공유해서 사용함
- 무선일 경우 내 컴퓨터에서 google 서버로 통신이 갈때 전체가 무선이 아닌 한 홉만 무선임
- 유선은 안정적인 케이블로 연결되어 있어 외부의 노이즈로부터 보호됨 그래서 연결 거리에 큰 영향을 받지 않음
- 무선은 거리에 큰 영향을 받음
Hidden terminal problem
- A, B, C가 각각 80미터 거리에 있고, 각 데이터 전송 반경이 100미터일때, A와 B, B와 C는 서로 데이터 전송이 가능하지만 A 와 C는 데이터 전송이 불가능함
- 그래서 A와 B가 데이터 통신중일때 C가 CSMA방식을 사용해서 carrier sence를 하려고 해도 A가 보내는 데이터를 알아차릴 수 없음
- 그리고 자기 자신이 전송을 시작하면 그게 너무 커서 남이 하는 전송을 감지하지 못함
- 그래서 무선환경에서는 기존 방식인 CSMA/CD 방식을 사용하지 못함
Wi-Fi (IEEE 802.11)
- Wi-Fi는 Wireless Fidelity의 약자로 무선이지만 유선과 같은 성능을 내겠다는 뜻
- 공유기 하나당 하나의 AP를 가지고 있고 유선으로 스위치 혹은 라우터에 연결되어 있음
- 모든 AP들은 주기적으로 자기 자신의 AP를 브로트케스트함
- 호스트들은 그 정보를 가지고 와이파이 목록을 띄울 수 있음
CSMA/CA
- 와이파이는 어떤 MAC 프로토콜을 사용하나?
- A와 C가 각각 AP와 80m 거리에 있고 각 활동 범위가 100m 일경우
- A와 AP가 통신중일때 C가 다른 통신이 이루어지고 있는지 들으려고 할때 들을 수 없음
- C가 다른 데이터 통신이 없는 줄 알고 데이터를 전송하면 충돌이 발생함
- 유선일 경우 모든 매체를 공유하기 때문에 충돌 감지가 되었지만 무선일 경우 A가 보내는 데이터를 C는 들을수가 없기 때문에 충돌을 감지 못함
- 그래서 무선일때는 AP가 ACK를 보내서 충돌을 감지함(TCP의 ACK와는 다름)
- 우선 DIFS 만큼의 시간을 기다린 후 다른 데이터 전송이 없으면 그때 전송 시작
- AP는 데이터를 받고 SIFS만큼의 시간을 기다린 후 잘 받았다는 신호인 ACK를 보냄
- 센더는 데이터를 보낸 후 ACK를 받았을 때만 데이터 전송이 완벽하게 이루어졌다라고 판단하고 다음 데이터 준비
- ACK가 오지 않을 경우 충돌이 발생했다고 판단해서 랜덤한 시간 이후에 재전송
- 유선일 경우 충돌이 일어나면 바로 멈출 수 있었음
- 하지만 무선은 오로지 ACK로만 판단하기 때문에 한번 데이터를 전송하면 중간에 멈추지 않음
- 그래서 데이터 전송하기 전 RTS라는 작은 데이터를 전송해 전송중인 다른 데이터가 있는지 확인함
- AP가 RTS를 받으면 그 데이터를 전송해도 좋다는 CTS를 보냄
- CTS를 받지 못하면 충돌이 났다는걸 인지하고 random backoff 해서 재전송함
- RTS, CTS에는 얼마만큼의 데이터를 얼마의 시간동안 보내겠다는 정보가 담겨있음
- 각 RTS, CTS를 받을 수 있는 반경의 인터페이스들은 그 정보를 받고 그 기간동안엔 데이터를 전송하지 않음
- A가 RTS를 보낸 후, AP가 보낸 CTS와 B가 보낸 RTS가 우연찮게 겹쳤을때
- A반경에 있는 인터페이스들은 A가 데이터 전송을 할것이란걸 알고 있음
- B반경은 CTS와 RTS가 겹쳐서 노이즈가됨, B반경에 있는 인터페이스들은 노이즈만 들음
- A는 데이터 전송을 시작, 그 후에 B반경에 있는 어떤 인터페이스가 작은 RTS 하나만 던져도 데이터 충돌이 발생함
- A는 ACK를 못받았으니 그때부터 다시 RTS 보내기 시작, 이런식으로 인터페이스끼리 무한 경쟁
- 그래서 무선은 사람이 적을땐 데이터 전송이 원할하지만 사람이 많아지면 속도가 느려짐
- ACK를 못받으면 무조건 재전송함, 하지만 이렇게 ACK 받을때 까지 재전송을 하면 과부하가 걸릴 수 있음
- 그래서 최대 7번까지만 데이터를 전송하도록 규정해놓음
- 7번 전송해도 안되면 해당 프레임을 포기하고 다음 프레임 전송
- 이게 전송계층에서 다뤘던 데이터 유실, TCP 프로토콜이 처리해줌
'[CS] > [컴퓨터네트워크]' 카테고리의 다른 글
링크계층 - Cellular Network (0) | 2021.07.10 |
---|---|
링크계층 - 무선이동네트워크2 (0) | 2021.07.08 |
링크계층 - 스위치 (0) | 2021.07.01 |
링크계층 - LANs (0) | 2021.06.27 |
링크계층 - MAC protocol (0) | 2021.06.25 |