Multiplexing (다중화)
"여러 컴퓨터가 동시에 통신..? 어떻게해요?"
- 동시에 통신하기 위해서는 자원을 나눠 써야 합니다.
- 서로 다른 시간대에 보내거나, 서로 다른 주파수를 통해 보내는 등..
Multiplexing은 하나의 통신 선(링크)을 통해 여러 데이터 스트림을 전송하는 기술입니다.
위 그림에는 n개의 input이 들어오는데, 이를 링크 하나에 어떻게 잘 실어 보내고 있습니다.
링크를 지나온 이후, output은 원래대로 n개가 됩니다. 대충 데이터 전송 완료!
그럼 도대체 어떻게 여러 신호를 하나의 링크에 '잘 분리해' 실어 보낼까요?
Multiplexing 기술 덕분입니다.
Multiplexing은 네트워크 대역폭을 효율적으로 사용하기 위한 기술입니다.
그래서 대표적인 Multiplexing 기술을 알아보면 되겠습니다.
- FDM : 주파수를 나눠 씀 (Frequency-Division Multiplexing)
- TDM : 시간을 나눠 씀 (Time-Division Multiplexing)
- WDM : 파장을 나눠 씀 (안할거임!)
FDM (주파수 분할 다중화)
'서로 다른 주파수'를 통해 여러 신호를 구분&분리&구별하여 송수신합니다.
라디오를 생각해봅시다. 해당 방송사가 데이터 스트림을 우리에게 보낼 때, 그 스트림을 서로 다른 주파수 대역에 할당해 전송합니다. 전체 대역폭을 여러개의 주파수 대역으로 분할하고, 각 대역에 서로 다른 데이터스트림을 할당하여 보내는 것입니다. 다시 말해 고정 대역폭에서 채널을 나누어 다수의 데이터 스트림을 처리합니다.
사람들의 대화가 실린 '전화 통화' 신호를 전송한다고 생각해봅시다.
전화선은 여러 개의 주파수 대역으로 분할됩니다. 여러 명이 동시에 전화를 걸면, 전체 대역폭을 분할하여 서로 다른 통화 스트림이 채널에 할당됩니다. 할당된 스트림은 수신자 측에서 다시 어떻게 잘 다시 복원됩니다. 이렇게 전화 통화가 송수신될 수 있습니다.
라디오도 마찬가지입니다. 전체 대역폭을 여러 개의 주파수 대역으로 나누고, 각 대역에는 각 라디오 방송국에서 송신하는 데이터스트림을 할당합니다. 할당된 스트림은 수신자 측에서 다시 복원되어, 우리가 라디오 프로그램을 들을 수 있습니다.
이렇게 다수의 데이터 스트림을 처리할 때, Multiplexing 기술을 통하여 네트워크 대역폭을 효율적으로 사용 가능합니다.
● 조금 더 상세히 설명하자면 이렇습니다.
FDM에서는 각 데이터 스트림이 '서로 다른 주파수 대역'에서 전송됩니다. 즉 송신기에서 어떤 신호를 전송할 때, 주파수 대역을 다르게 변조(Modulation)해서 보냅니다. 먼저 송신측을 확인해봅시다.
Carrier 주파수는 FDM에서 데이터 스트림을 구분해서 전송할 때 사용되는 주파수입니다. 데이터 스트림을 변조(Modulation)한 신호는 Carrier 주파수와 결합해 전송됩니다. 그렇게 해당하는 주파수 대역으로 이동할 수 있습니다.
* 음성 통화를 전송할 때 변조(Modulation) 과정을 거져 전파로 변환되어 전송됩니다. 원본 데이터를 '전송가능한 전파' 예를들면 광파 등의 형태로 변환하는 과정을 말합니다.
* 내가 Carrier 주파수의 정확한 역할은 잘 모르겠는데, Modulation만 해서는 주파수대역으로 전송가능한 상태가 아니라고 한다. 잘 모르겠음!
이제 수신측을 봅시다. 필터를 통해 스트림의 주파수대역을 추출, 분리합니다. 그리고 Demodulation을 통해 다시 원래의 스트림으로 복원합니다.
수신기에서도 Carrier 주파수를 사용합니다. 송신기에서 사용한 그 Carrier와 동일한 주파수입니다. 각 데이터스트림이 송신할 때 사용했던 Carrier 주파수를 통해 각각의 데이터 스트림을 분리합니다. 이렇게 Democulation + Carrier를 사용해 신호를 다시 복원합니다.
● FDM에서 주파수 대역별로 채널을 분리한다고 했죠?
"채널의 분리"에 대해 좀 더 이야기해봅시다.
채널을 분리할 때는 '가드밴드'를 둡니다. FDM에서는 신호를 서로다른 주파수 대역으로 분리해서 보내야 하는데, 이러한 주파수 대역이 밀접하게 붙어있으면 간섭이 일어나기 때문에, 겹치지 않도록 주파수 대역을 서로 떨어뜨려놓아야 합니다. 그래서 가드밴드라는 것을 놓아서 안전하게 신호를 분리합니다.
● 상황을 통해 "채널"과 "비트전송"에 대한 이해를 높여봅시다.
지금부터 1MHz 대역폭을 쪼개서 4개의 채널을 만들 것입니다.
각 채널당 1Mbps 비트전송률을 지원하는 위성 무선 링크(전송 선)가 있다고 합시다.
위성 단말기의 데이터가 각 채널에 전송됩니다.
여기서의 FDM 개념을 뜯어봅시다.
대역폭을 쪼갠 4개의 채널이 있다고 했습니다. 4개의 단말기가 전체대역폭인 1MHz를 나눠 써야 하는 상황이다. (주파수를 나눠야 함) 1MHz, 즉 100만Hz를 1/4씩 나누면, 각 단말기는 25만Hz씩 가질 수 있습니다. 그 4개의 채널 각각 속에서 단말기 신호가 전송됩니다. 이게 바로 FDM이죠! Frequency-Division Multiplexing..
여기서 "비트 전송"을 함께 이해해봅시다.
위성무선 링크는 각 채널당 1Mbps, 즉 100만bps를 지원하고 있습니다.
그렇구나. 그런데 데이터 스트림이 할당받은 대역폭은 25만Hz 입니다.
어.. 초당 전송하는 비트수(bps, 비트전송률)가 대역폭보다 4배 더 크네요!
그럼 데이터스트림을 어떻게 보내야, 저 좋은 비트전송률을 이 대역폭에서 맘껏 활용할 수 있을까요?
잊지 맙시다. 데이터는 변조(Modulation)를 통해 전송가능한 상태로 바뀐다는 것을!
그럼 변조 기술을 사용하면, 효율적으로 전송 가능하겠지요?
변조 기술 중 좋은 게 있었음을 기억합시다. QAM이라는 변조 기술!
변조 기술은 대역폭에서 최대한 많은 비트를 전송하기 위해 사용하는 것입니다.
그래서 지금 QAM같은 변조기술 없이 그냥 25MHz 대역폭에 데이터를 전송하면, 25Mbps로밖에 못 보냅니다.
대역폭을 4배 효율적으로 이용할 수 있게 QAM 변조기술을 사용해주어야 합니다.
4배의 정보를 더 실어 보낼 수 있으므로, 16-QAM을 적용할 수 있습니다. QAM을 안 쓰면 한번에 비트 하나가 전송될 텐데, 최대로 4배 빠르게 가능하니까 한번에 4개 비트를 전송할 수 있는 변조기술인 16-QAM을 사용하자는 것입니다.
* 참고: 2^n-QAM처럼 한번에 n비트를 전송하면, 대역폭에서 더 많은 비트를 전송할 수 있다. 그러나 신호가 민감해지므로 채널 잡음에 민감해지기도 합니다. (왜 민감해지나요? 그 이유는, 심볼이라는 게 여러 비트를 하나의 신호로 표현한 것입니다. 비트 수가 더 많은 QAM을 사용할 수록, 심볼 하나를 채널에 전송할 때 각 비트가 좁은 주파수 범위를 차지하게 되겠죠? 그래서 신호가 민감해진다는 것입니다. 그래서 에러검출&정정 기술을 함께 사용하여 극복합니다)
FDM에서 다중화된 신호에 QAM 등의 변조기술을 적용하여 전송을 한다는 것을 기억합시다. 다중화된 신호를 적절히 변조하여 전송하면 효율적인 전송이 가능하다는 것을!
'미분류글' 카테고리의 다른 글
[git] 특정 파일만 이전 커밋으로 돌리기 (checkout은 branch 변경만 하는 게 아니구나!) (0) | 2023.07.28 |
---|---|
[vscode] 클라우드 서버에 ssh 접속 후 container 접속하기 (0) | 2023.05.11 |
문제해결 | 샤잠(shazam) 노래인식을 구현한 abracadabra 사용하기 (0) | 2023.04.26 |
서로 다른 네트워크간 데이터 통신 과정 이해하기 (3) | 2023.04.21 |
webserver | express.js를 경험해보았다 | 이미지 서버 구축하기 (0) | 2023.02.04 |