[완]100명이 넘게 탄 지하철에서 왜 수많은 에어팟 전파신호는 내 에어팟에 들어오지 않는 걸까?

Nanotoly·2023년 4월 9일
57

TECH

목록 보기
1/4
post-thumbnail

수많은 사람들이 몰려드는 서울의 지하철. 출퇴근 시간이면 블루투스 이어폰을 귀에 꽂은 채 자신만의 세계에 빠져들어 있습니다. 이 모습을 보면서 문득 궁금해졌습니다.

"이 지하철 한 칸에 100명은 넘게 있는거 같은데, 어떻게 서로 전파 간섭없이 블루투스 통신을 하고 있을까?"

분명히 블루투스 신호는 내 폰에서 발생되어 360도 모든 방향으로 퍼지고 있는데, 다른 사람 이어폰에는 왜 내 노랫소리가 들리지 않을까요? 반대로 100명이 넘는 사람들의 노랫소리는 저의 이어폰에서 들리지 않는 것일까요?

무선 통신에 대해 조금 관심 있는 사람은 이렇게 답할 수 있습니다.

"블루투스에는 여러 채널이 있습니다. TV에 채널이 분리되어 각각 다른 영상이 송출되듯이, 블루투스도 채널이 있고, 각각의 블루투스 기기마다 다른 사람과 겹치지 않는 채널을 선택해서 사용하기 때문이지 않을까요?"

어느정도 맞는 말입니다. 하지만 전세계적으로 블루투스의 채널은 딱 79개만 존재합니다. 생각해 봅시다. 지하철 1칸에 100명이 넘는데, 블루투스 이어폰 양쪽을 꽂게 되면 블루투스 기기는 200여개가 존재합니다.(입체음향과 같은 경우에는 왼쪽 이어폰과 오른쪽 이어폰에서 다른 사운드가 들리는 것을 경험해 본 적이 있을 것입니다. 예를 들면 오른쪽에서는 가수의 목소리, 왼쪽에서는 악기소리가 나는 것이죠.) 채널은 79개인데 어떻게 수백개의 디바이스를 연결할 수 있을까요?

이 신비한 블루투스 기술에 대해서 알아보시죠!

목차

  1. 무선 통신의 기본 원리

  2. 블루투스 송수신의 기본 원리

  3. 80번째 블루투스 기기를 위한 독특한 해결 방법

  4. (3)번 문제의 기가막힌 해결책


1. 무선 통신의 기본 원리

무선 통신은 전자기파를 활용하여 데이터를 주고 받는 기술입니다. 처음 이 기술이 발명된 것은 '헤르츠' 덕분입니다. 회로를 통해 전자기파를 발생시켰더니, 멀리 있던 원형 금속에 전류가 흐르는 것을 발견한 것이죠.

이 현상을 활용한 것이 무선 통신입니다. 멀리 떨어진 원형 금속(안테나에 해당함)에 전기 신호를 마치 모스부호처럼 전송하고, 원형 금속에서 흐르는 전류를 측정하여 어떤 정보를 보낸 것인지 알 수 있는 것이죠.

데이터를 송신할 때는 특정 주파수로 전기 신호를 보내고, 수신할 때는 주변에 있는 모든 전기신호를 수신한 뒤, 그 중에 송신측에서 설정한 특정 주파수에 해당하는 주파수만 추출하는 것이죠. 이 과정은 푸리에 변환을 통해서 할 수 있습니다. 푸리에 변환에 대해 자세히 알고 싶다면 여기를 참고하시면 좋겠습니다.

2. 블루투스 송수신의 기본 원리

블루투스는 2.4~2.485Ghz의 주파수를 이용하는 무선통신 기술입니다. 이 주파수 대역은 ISM(Idustry-Science-Medical)대역 주파수인데, 국가의 허가없이 누구나 자유롭게 이용할 수 있는 주파수 대역입니다. 블루투스는 이 주파수 대역에서 전기 신호를 발생시키고 그 신호를 수신하는 통신 규칙 중 하나입니다.

블루투스는 시간이 흐르면서 점점 발전해왔습니다.

점점 더 멀리까지 전송되고, 보안성이 높고, 많은 데이터를 전송할 수 있도록 발전되어왔죠.

이 발전 과정은 간단하게 볼 수 있는 블로그 포스팅에서 확인할 수 있습니다. 간단하게 정리하자면 지금까지 블루투스는 FMDA > TMDA > CDMA > OFDM(OFDMA) 순으로 발전되어 왔고 이를 사람들이 이야기하는 방식에 비유하자면
FDMA는 큰 방을 여러 방으로 나누어 각자 방에서 사람들이 이야기 하는 방식
TDMA는 큰 방에 여러명이 있지만 각 사람들에게 지정된 시간에만 말하게 하는 방식
CDMA는 큰 방에 여러 사람들이 한국인끼리는 한국어로, 일본인끼리는 일본어로 이야기하는 방식, 다른 나라말이 들리긴 하겠지만 자기 나라 말 외에는 모두 해석할 수 없고, 알아들을 수 없는 잡음이 됩니다. 덕분에 원하는 기기끼리만 대화할 수 있습니다. 누군가가 대화를 엿듣더라도 해석할 수 없기 때문에 보안성도 높아지게 됩니다.
OFDMA는 FDMA와 CDMA를 합친 방식인데, 좀 더 많은 데이터를 전송하고 신호 갑섭이 없도록 보완한 기술입니다.

블루투스 연결은 master 디바이스와 slave 디바이스를 이어줍니다. master 디바이스는 항상 블루투스 통신을 할 수 있어야 하는 서버(server) 역할을 하는 디바이스를 의미하고, slave 디바이스는 언제든 master 디바이스에 연결되어 데이터를 송수신할 수 있는 클라이언트(client) 역할을 합니다. 블루투스 이어폰을 예시로 들면 스마트폰이 master 디바이스이고 무선 이어폰이 slave 디바이스인 것이죠.

master 디바이스와 slave 디바이스는 처음 연결될 때, 어느 주파수를 통해서 통신할 것인지 서로 약속합니다. 예를 들어 처음에 3번 채널에서 데이터를 주고 받기로 결정했으면 3번 채널에 master와 slave 디바이스가 접속하여 데이터를 주고 받는 것이죠. 블루투스는 총 79개의 채널이 존재합니다. 2.4~2.485GHz를 79개로 나눈 것이죠. 이는 세계 어디에서나 공통으로 정해진 블루투스 규칙입니다. 따라서 master와 slave는 79개의 채널 중에서 원하는 것을 골라서 통신하는 것이죠.

하지만 여기서 궁금한 점이 생깁니다. 만약에 좁은 공간 내에 블루투스 기기가 79개 이상 있는 경우는 어떻게 될까요? 예를 들어 좁은 방 안에 80개의 디바이스가 있다면 79개의 디바이스는 1~79번까지 채널 중에 하나의 채널을 이용하면 되지만 80번째 디바이스는 어느 채널에 접속하여 통신해야하는 것일까요?

3. 80번째 블루투스 기기를 위한 독특한 해결 방법

이미 알다시피 현재의 블루투스 통신방식은 80개가 넘는 기기가 한 공간에 있어도 괜찮습니다. 80번째 기기부터를 사용할 채널이 없는데 어떻게 이런 일이 가능한 것일까요? 이는 FHSS(Frequency-hopping spread spectrum)라는 방식을 통해 해결할 수 있는 문제입니다.

FHSS란 하나의 기기가 하나의 채널만 이용하는 방식이 아니라 1초에 1600번 채널을 바꾸는 기술입니다. 이를 통해 다른 기기와 같은 채널을 이용하는 시간을 최소화할 수 있는 것이죠. 이를 그림으로 표현하면 아래와 같습니다.

그림에서는 채널이 5개이고 채널을 10번만 바꾸는 시간인 0.00625초 동안의 일을 간단하게 나타낸 것입니다. 세로축은 채널을, 가로축은 시간을 나타내고 있으며, 색깔은 해당 채널을 차지하고 있는 디바이스를 나타낸 것입니다. 그림에는 빨강부터 파랑까지 총 5개의 디바이스가 있습니다.

위 그림과 같이 채널을 변경하지 않고 처음 사용하는 채널을 영구적으로 사용하는 경우에는 채널이 5개일 때 5개의 디바이스만 블루투스에 연결될 수 있습니다.

반면 FHSS는 주파수를 지속적으로 변경합니다. 아래와 그림과 같죠.

그림을 잘 보시면 총 7가지 색깔이 있고, 이는 곧 5개의 채널을 7개의 기기가 이용할 수 있다는 것입니다. 하지만 채널이 겹치기도 하는데요. 채널이 겹치면 신호가 섞여서 통신에 오류를 일으키게 됩니다. 하지만 1초에 1600번 채널을 바꾸기 때문에 0.000625초 뒤에는 다른 채널로 바꿔서 통신하면 됩니다. 이처럼 FHSS는 어느정도의 신호간섭은 허용하되 더 많은 블루투스 기기를 79개의 채널로 수용할 수 있게 합니다.

참고로 master 디바이스와 slave 디바이스가 연결이 시작될 때, 어떤 규칙으로 채널을 변경할지 서로 약속을 하고 주파수 변경을 합니다. 처음 연결할 때 79개의 채널을 랜덤하게 배열하고 이 배열 순서대로 채널을 초당 1600번 채널을 변경하는 것이죠. 채널 79개의 배열은 디바이스의 고유 주소값과 연결된 시각을 기반으로 랜덤한 배치를 만들기 때문에 기기마다, 그리고 연결될 때마다 배열은 달라지게 됩니다.

이 FHSS 기술이 채널 수 부족 문제를 해결하긴 했지만 저는 아래와 같은 궁금증이 생겼습니다.
(1) 만약 다른 기기와 같은 신호를 주고 받는 순간이 발생하면 다음 채널로 변경하기 전까지 데이터를 주고 받을 수 없는 것인가요?
(2) 같은 채널을 쓰는 다른 기기가 멀리 있다면 간섭을 일으킬지라도 그 영향이 약해서 통신에 문제를 일으킬 수 없지 않을까요?
(3) 일정 확률로 신호 간섭이 생길 수 밖에 없는 구조이고, 간섭이 커서 에러가 발생하면 계속해서 채널을 바꿀 것입니다. 그렇게 되면 음악 데이터를 전송하는 것이 느려지지 않을까요?

그에 대한 답변을 정리했습니다.

(1) 만약 다른 기기와 채널이 겹치게 되면 다른 채널로 변경하기 전까지 데이터를 주고 받을 수 없는 것인가요?
그렇지 않습니다. 위에서 그린 그림을 보면 채널이 변경할 때까지 계속해서 간섭이 발생하는 것처럼 보입니다. 하지만 현실에서는 이런 경우는 거의 없습니다. 왜냐하면 블루투스 연결을 시작한 시간이 기기마다 제각각이기 때문에 보통은 기기 A가 채널 1번에 연결했더니 기기 B가 간섭을 일으키고 있다면, B는 미리 1번 채널에 들어와서 이미 통신하고 있었을 확률이 큽니다. 따라서 기기 A가 채널을 바꾸기 전에 기기 B는 해당 채널을 나오게 됩니다. 이를 그림으로 나타내면 아래와 같습니다.

위쪽의 상황과 같이 채널에서 간섭이 발생하다가 중간에 간섭이 사라지는 경우가 확률적으로는 대부분일 것입니다. 반면에 아래쪽의 상황과 같이 해당 채널을 사용하는 동안 전체가 간섭받는 경우는 기기 A,B가 기가막힌 타이밍에 블루투스 통신을 시작한 것입니다. 굉장히 드문 상황인 것이죠. 이론적으로는 블루투스 통신은 1/1600초 동안 15,000bit의 데이터를 송수신합니다.(24Mbps / 1600 = 15,000bit) 데이터 패킷의 사이즈가 1000bit라고 가정한다면 하나의 채널을 사용하는 1/1600초 동안 10번 이상은 통신합니다. 블루투스 이어폰의 패킷 사이즈에 대한 정보를 알아내는 것은 힘들어서 정확한 패킷 사이즈를 알수 없지만, 결국 확실한 것은 채널 간섭이 일어나도 대부분의 경우에는 도중에 간섭이 사라지고 정상적인 통신이 가능하다는 것입니다.

(2) 같은 채널을 쓰는 다른 기기가 멀리 있다면 간섭을 일으킬지라도 그 영향이 약해서 통신에 문제를 일으킬 수 없지 않을까요?
이론상 특정 거리 이상 멀리 있지 않다면 간섭에 큰 영향을 줍니다. 블루투스 신호는 10m 까지도 원활하게 작동할 수 있습니다. 블루투스의 저전력 버전인 BLE의 경우, 100m 넘게까지 통신할 수 있습니다. 블루투스 기기에서는 데이터를 주고 받을 때, 특정 주파수의 신호가 특정 세기을 넘기면 '1'이라는 신호로, 특정 세기를 넘지 못하면 '0'이라는 신호로 간주합니다. 아래의 그림과 같이 회색깔 신호는 계속해서 변하고 있지만 Threshold라는 점선을 넘지 못하면 결국 '0'으로 간주합니다. 반대로 Threshold를 넘기 신호는 그 신호의 구체적인 값이 어떻든 간에 결국 '1'이라고 간주합니다.

따라서 만약에 특정 주파수(채널)의 신호가 기기 A,B가 신호 간섭이 발생하면 아래와 같이 신호가 합성됩니다. 기기 B의 신호는 '1'에 해당하는 신호이지만 거리가 멀어서 신호 세기가 많이 약해진 경우에 해당합니다.


여기서 threshold가 아래와 같다면 간섭된 데이터는 결국 파란색과 같아집니다. 신호가 합성되어서 원래 신호와는 다른 신호가 되어 버린 것이죠. 기기 A가 보내고자한 신호는 "0111100"이었지만 기기 B의 영향으로 인해서 "0111111100"으로 변형된 것이죠. 이러한 현상은 통신에 장애를 주게 됩니다.

따라서 간섭 신호가 threshold보다 작지 않다면 통신에 장애를 줄 것입니다. 아래는 threshold보다 작은 경우에 해당합니다. 회색 박스 영역과 같이 데이터가 변형되지 않고 신호가 잘 전달된 것을 확인할 수 있습니다.

통신 장애를 일으키지 않을만큼 신호가 작아지려면 기기 간 거리가 상당히 멀어야 합니다. 하지만 지하철을 예시로 들면, 지하철 한 칸의 크기는 17m 정도입니다. 블루투스는 유효 통신거리가 10m이기 때문에 지하철 한 칸의 끝에서 다른 끝에 있는 사람끼리의 간섭은 없을 수 있지만, 그 외의 대부분의 사람들에게는 서로 간섭이 크게 작용합니다.
이에 더해, 현실은 더 가혹합니다. 유효 통신 거리가 10m일지라도 약한 신호 여러개가 합쳐지면 큰 신호가 될 수 있습니다. 따라서 수많은 블루투스 기기가 존재한다면 아무리 멀리 있어도 간섭을 일으킬 수 있습니다.

(3) 일정 확률로 신호 간섭이 생길 수 밖에 없는 구조이고, 간섭이 커서 에러가 발생하면 데이터 전송을 하지 못한 채 채널을 바꿀 것입니다. 그렇게 되면 음악 데이터를 전송하는 것이 느려지지 않을까요?
맞습니다. 전송 받아야 할 오디오를 제때 전송받지 못하면 오디오를 재생할 수 없습니다. 하지만 이 문제를 해결하기 위해 쓰이는 방법이 있습니다. 이 문제에 대해서는 다음 챕터에서 이야기하겠습니다.

4. (3)번 문제의 기가막힌 해결책

위 (3)번 문제를 해결하기 위해 블루투스로 데이터를 전송할 때는 데이터를 압축해서 보냅니다. 압축해서 데이터를 전송하게 되면 아래와 같은 이점이 있습니다.

  1. 많은 데이터를 작게 압축해서 한 번에 보낸다.
  2. 한 번 받은 데이터 패킷으로 오디오 파일을 오랫동안 재생할 수 있다.

즉, 무선 통신으로 전송해야하는 데이터량의 부담을 줄여주고, 블루투스의 불안정한 연결을 다시 안정적으로 만들 때까지 시간적인 여유를 벌어주는 것이죠. 우리는 이런 오디오 압축 기술을 '코덱(codec)이라고 합니다.

오디오 파일은 보통 음질인 16bit부터 고음질인 24bit의 depth가 있습니다. 이는 곧 소리의 세기를 2의 16~24승(2^16 = 65,536, 2^24승 = 16,777,216)만큼 나누어서 정밀하게 우리에게 들려줍니다.

그리고 이 정밀한 소리를 1초에 44,100번 들려줍니다. 즉 sound depth는 16~24bit, sample rate은 44.1KHz인 것이죠. 즉 우리는 1초에 1,058,400개(24x44,100)의 bit를 이어폰을 통해 듣고 있는 것입니다.

depth와 sample rate에 의해서 오디오의 음질이 결정되는 것인데, 그림으로 나타내면 아래와 같습니다.

하지만 이는 블루투스로 전송하기에는 부담될 정도로 많은 양의 데이터입니다. 그래서 코덱 기술을 통해서 데이터를 압축하면 300~500Kbps로 압축할 수 있습니다. 제가 사용하는 samsung buds 2 pro는 1,058,400bit를 512,000bit로 약 2배 압축해서 전송한다고 합니다. 이는 곧 1초 동안 전송받은 오디오 데이터를 2초동안 들려줄 수 있다는 것과 같은 의미입니다.

뿐만아니라 블루투스는 이론적으로 초당 24,000,000(24Mbps)bit를 전송할 수 있습니다. buds 2 pro는 512Kbps의 통신속도만 보장되면 끊김없이 오디오를 재생할 수 있습니다. 512Kpbs는 블루투스의 데이터 전송속도인 24Mbps와 48배 차이가 납니다. 즉 블루투스 통신을 48번 시도해서 1번만 성공적으로 데이터를 전송해도 블루투스 이어폰에서 음악을 끊김없이 재생할 수 있습니다. 그렇기 때문에 이론적으로는 다른 블루투스 기기와의 채널 간섭으로 인해 블루투스 통신이 불안정해도 48번 중에 1번만 데이터를 성공적으로 전송하면 되므로 지하철에 100명이 넘게 있어도 우리는 모두 사이좋게 채널을 나눠쓰고 음악을 들을 수 있는 것입니다.

마무리

이상으로 우리가 블루투스 이어폰을 100명이 넘게 모여있는 지하철에서도 사용할 수 있는 이유에 대해서 알아보았습니다.

profile
항상 압도적이고 경외롭게🔥🔥🔥

6개의 댓글

comment-user-thumbnail
2023년 4월 12일

그동안 정말 궁금했던 내용인데 알려주셔서 감사합니다!

답글 달기
comment-user-thumbnail
2023년 4월 13일

감사합니다! 흥미로운 글 잘 보고 갑니다! 👍

답글 달기
comment-user-thumbnail
2023년 4월 15일

와 재밌네요
덕분에 하나 알아갑니다

답글 달기
comment-user-thumbnail
2023년 4월 18일

재밌는 글이네요!

답글 달기
comment-user-thumbnail
2023년 4월 26일

아주 흥미롭고 유용한 글이었습니다. 감사합니다!!

답글 달기
comment-user-thumbnail
2023년 7월 17일

와 ㅋㅋㅋ 스벅에서 블루투스 간섭땜에 짜증나서 검색해봤는데 이런 대단한 개발자님의 글이 딱 ㅋㅋㅋ 오오 잘읽을게요~!

답글 달기