충남대학교 컴퓨터공학과 김상하 교수님의 "데이터 통신" 강의를 필기한 내용입니다.

다소 잘못된 내용과 구어적 표현 이 포함되어 있을 수 있습니다.

Addressing Mechanism

Intra, Inter BSS

%E1%84%8B%E1%85%B5%E1%84%85%E1%85%A9%E1%86%AB10%20-%20Wireless%20LAN(2)%20bbf002b63e7449a48222ecb9d23d8fdb/image1.png

  • Intra-BSS Communication : 애는 앞에서 배운 BSS 즉, 가시적인 거리에 있어 직접적으로 무선통신이 가능한 경우 - 얘는 송신주소와 수신주소인 Address 1과 Address 2만 있으면 된다
  • Inter-BSS Communication : 얘는 앞에서 ESS라고 배운, 거리가 멀리 떨어져 있어 직접적으로 통신하지 못하고 AP와 유선망을 통해서 통신하는 구조 - 얘는 Address 1, 2뿐만 아니라 뒤에있는 3, 4까지 사용한다

Addressing Mechanism

%E1%84%8B%E1%85%B5%E1%84%85%E1%85%A9%E1%86%AB10%20-%20Wireless%20LAN(2)%20bbf002b63e7449a48222ecb9d23d8fdb/image2.png

  • 이건 저 위에서 빨간점선박스인 To DS와 From DS에 따라 Address 1, 2, 3, 4가 어떻게 사용되는지 보여주는 그림이다
  • Address 1 : 현재의 통신에서 받는놈의 주소
  • Address 2 : 현재의 통신에서 보내는 놈의 주소
  • Address 3 : 최종 목적지 혹은 원래 송신지
  • Address 4 : 원래 송신지
  • 이게 뭐냐면 일단 Intra-BSS의 경우에는 두개의 station이 직접적으로 통신하기 때문에 보내는 놈의 주소와 받는놈의 주소만 있으면 된다 - 따라서 Intra-BSS 통신임을 나타내기 위해 DS bit에 00이 들어가고, Address 1과 2만 사용하는 것(BSS ID는 몰라도 된다)
  • 근데 이제 Inter-BSS 즉, ESS통신의 경우에는 다음과 같은 과정을 거친다
    • station A → station B로 ESS를 통해 보낸다 할 때
    1. 먼저 A가 인접한 AP로 보낸다(A → AP1)
    2. 그리고 그 AP가 B와 인접한 AP로 보낸다(AP1 → AP2)
    3. B와 인접한 AP가 B로 보낸다(AP2 → B)
  • 위와 같은 과정을 지원하기 위해 Address 1, 2뿐 아니라 3, 4까지 존재하게 되는데
    1. 1번 과정 (A → AP1) 에서는 궁극적으로는 A → B 지만 일단 지금은 AP1으로 먼저 보내야 하기 때문에
      • 현재의 통신에서 받는놈의 주소(Address 1)은 AP1
      • 현재의 통신에서 보내는 놈의 주소(Address 2)는 A
      • 최종목적지(Address 3)은 B가 되는 것
      • 즉, (A → AP1) 은 ToDS와 FromDS를 10 으로 하는 주소 표기법을 사용한다
    2. 2번 과정 (AP1 → AP2) 에서는 궁극적으로는 A → B 지만 일단 지금은 AP1이 AP2으로 먼저 보내야 하기 때문에
      • 현재의 통신에서 받는놈의 주소(Address 1)은 AP2
      • 현재의 통신에서 보내는 놈의 주소(Address 2)는 AP1
      • 최종목적지(Address 3)은 B
      • 원래 송신지(Address 4)는 A가 되는 것
      • 즉, (AP1 → AP2) 은 ToDS와 FromDS를 11으로 하는 주소 표기법을 사용한다
    3. 3번 과정 (AP2 → B) 에서는 마지막으로 B에게 최종 전달이 되어야 하기 때문에
      • 현재의 통신에서 받는놈의 주소(Address 1)은 B
      • 현재의 통신에서 보내는 놈의 주소(Address 2)는 AP2
      • Address 3이 원래 송신지를 나타내는 용도로 쓰여 여기에는 A가 들어가게 된다
      • 즉, (AP2 → AP2) 은 ToDS와 FromDS를 01으로 하는 주소 표기법을 사용한다
  • 따라서 이 세가지 과정에 대해서도 프레임에 나타내기 위해 DS bit를 각각 과정에 따라 다르게 설정해서 Address 1, 2, 3, 4에 저장된 내용이 어떤 의미인지 나타내는 것
    • 위의 예시를 그림에 있는 표에 따라 살펴보면
    1. 01일 경우에는 (3)번 과정으로 B, AP2, A 순으로 Address가 저장되고
    2. 10일 경우에는 (1)번 과정으로 AP1, A, B순으로 Address가 저장되고
    3. 11일 경우에는 (2)번 과정으로 AP2, AP1, B순으로 Address가 저장되는 것 이다
  • 간단하게 정리하면
    • 일단 Address 1, 2는 현재의 통신에 직접적으로 관여하는 station의 주소를 송-수신 수신 순서대로 적어준다
    • Address 3는 현재의 통신에 직접적으로 관여하지 않는 station의 주소를 적어주되 그런 station이 2개면 Address 3, 4에 송-수신 순서대로 적어준다
    • Inter-BSS통신에서는 DS Bit가 2 → 3 → 1인 순으로 주소체계를 사용한다

%E1%84%8B%E1%85%B5%E1%84%85%E1%85%A9%E1%86%AB10%20-%20Wireless%20LAN(2)%20bbf002b63e7449a48222ecb9d23d8fdb/image3.png

  • 위의 그림이 이 과정을 그림으로 나타낸 것 - 순서가 좀 섞이긴 했지만 Case 3 → Case 4 → Case 2 순으로 A → B 통신이 이루어지는 것 이다

ISM Band

  • 이 회선은 Industrial, Scientific, Medical의 약자로 해당 목적을 가지고 있는 경우 공공의 목적으로 사용하기 위해 주파수 대역폭을 할당한 밴드이다
  • 하지만 파워가 너무 높은 경우(파워가 뭔지는 잘 모르게슴) 주변영역에 방해를 줄 수 있기 때문에 낮은 파워만 사용하게 한댄다
  • 이건 이정도만 알면 된댄다

IEEE 802.15 - Bluetooth

Architecture

%E1%84%8B%E1%85%B5%E1%84%85%E1%85%A9%E1%86%AB10%20-%20Wireless%20LAN(2)%20bbf002b63e7449a48222ecb9d23d8fdb/image4.png

  • 일단 PiconetPrimary 하나와 여러개의 Secondary로 이루어진 아주 소규모의 Contention-Free 네트워크를 의미하고
  • Scatternet은 Secondary 하나가 sub-Primary의 역할(Primary / Secondary)을 해서 또 다른 Secondary와 통신을 하는 구조를 의미한다
  • 블루투스의 Secondary는 Slave라고도 하는데 얘네를 아주 저렴하고 작게 만들어 다양한 곳에 집어넣기 위해 얘네의 프로세스는 아주 단순하게 만들고 프로토콜 또한 단순하게 설계했댄다

Layer 구조

%E1%84%8B%E1%85%B5%E1%84%85%E1%85%A9%E1%86%AB10%20-%20Wireless%20LAN(2)%20bbf002b63e7449a48222ecb9d23d8fdb/image5.png

  • 위 그림이 블루투스의 계층구조를 나타낸 것인데 다 알필요는 없고
    • 일단 상위계층에서 만들어낸 음향이 아닌 데이터를 저 L2CAP으로 받아 데이터링크계층인 Baseband로 보내거나
    • 음성이나 음악같은 것들은 저 Audio를 통해 바로 Baseband로 들어오게 된다.
    • 그리고 그 아래 Bluetooth Radio가 물리계층이 되는것
  • 저 L2CAP 위의 부분들을 Bluetooth Protocol Profiles이라고 부르는데 얘네들과 L2CAP이 Upper Stack Layer(소프트웨어의 영역) 이고
  • 하위계층인 Baseband와 Bluetooth Radio는 Lower Stack Layer(하드웨어적 영역)
  • 이며 이 둘을 저 HCI(Host Controller Interface) 로 연결하는 구조랜다

Bluetooth Radio Layer

  • 그냥 1Mhz짜리 79개로 이루어진 ISM Band를 이용하고 FHSS를 이용한다는 것 정도만 알면 된다

Baseband Layer

  • 얘는 이제 데이터링크 계층에 해당하는데
  • CDMA를 좀 변형시킨 TDMA를 사용한다
    • 일단 시간을 625밀리초로 나눈 슬롯을 사용하고
    • 짝수번째 슬롯은 Primary만 이용하고
    • 홀수번째 슬롯은 Secondary만 이용하며
    • 충돌 방지를 위해 이것도 Primary가 특정 station을 polling하는 방식으로 진행된다

%E1%84%8B%E1%85%B5%E1%84%85%E1%85%A9%E1%86%AB10%20-%20Wireless%20LAN(2)%20bbf002b63e7449a48222ecb9d23d8fdb/image6.png

  • 위와 같은 그림처럼 진행됨 - 보면 625밀리초 단위로 슬롯이 나뉘어져 있고 짝수번째는 Primary만, 홀수번째는 Secondary만 사용하며 Primary가 Hop이라는 형태로 Poll을 보내면 Secondary 또한 Hop이라는 형태로 Data를 보내는 것을 알 수 있다

%E1%84%8B%E1%85%B5%E1%84%85%E1%85%A9%E1%86%AB10%20-%20Wireless%20LAN(2)%20bbf002b63e7449a48222ecb9d23d8fdb/image7.png

  • 위의 그림을 이해하기 위해서는 일단 데이터 링크가 두종류가 있다는 것을 알아야 한다
  • SCO(Synchronous Connection Oriented) : 얘는 이제 전화통화처럼 완벽한 데이터 전송이 아니라 빠른 데이터 전송을 하고자 할 때 사용하는 방식이다. 얘는 빠르게 데이터들을 통신해야하기 때문에 첫번째 그림처럼 하나의 슬롯에 하나의 데이터를 주고받으며 신속하게 데이터를 전송한다
  • ACL(Asynchronous Connectionless Link) : 얘는 느리긴 해도 완벽한 데이터 전송을 하고자 할 때 사용하는 방식이다. 두번째와 세번째 그림처럼 여러개의 슬롯에 걸쳐 큰 크기의 패킷을 전송하여 여기에 data correction등의 기능까지 넣어 느리지만 정확한 전송을 지향한다(최대 5개의 슬롯까지 걸치는 것을 허용함)
  • 데이터 링크는 저렇게 SCO와 ACL로 두개의 link로 구성된 Physical link로 구성되어 있고 상위계층으로부터 전달받은 Frame의 Format이 SCO방식이냐 ACL방식이냐에 따라 다르게 전송하는 것
  • Audio의 경우에는 딜레이가 없는 것이 중요하므로 SCO방식의 패킷을 전달하고
  • L2CAP의 경우에는 소리가 아닌 중요한 데이터를 전송하므로 ACL방식의 패킷을 전달한다

L2CAP

  • 이더넷에서의 LLC Sublayer에 해당함
  • Audio를 전송하지 않으므로 ACL방식의 패킷을 생산함
  • 데이터의 크기가 클 경우 실습시간에 한것처럼 Fragmentation(Segmentation) 을 이용하여 쪼갠다
  • 그리고 다양한 데이터를 하나의 패킷에 넣어서 보내는 Multiplexing도 지원한다

전화걸고 받는 과정

  • 일단 통화가 개시되기 전에 상대방에게 전화가 왔다는 신호를 보내야 하기 때문에 이 과정은 L2CAP을 이용해 전화번호등의 데이터들을 ACL방식으로 신호를 보낸다
  • 그리고 상대방이 전화를 받으면 이제 Audio로 전환되어 SCO방식의 통신A이 이루어지게 되는 것