물리 계층에서는 비트를 신호로 바꾸어 내보내는데, 이를 변환하는 과정을 주목해야 한다. 이 글에서는 아날로그 신호와 신호의 왜곡에 대해 다룰 것이다.
2.1 Signals
Alice와 Bob을 데이터를 주고 받는데, 실제로는 신호를 주고 받는다. 물리 계층에서는 비트를 신호로 바꾸어서 내보낸다.
아날로그 신호
아날로그 신호는 주기적 혹은 비주기적이라 할 수 있다. 데이터 통신에서는 대부분 주기적인 신호를 의미하며 아날로그 신호는 period(frequency), phase, Amplitude 3가지 요소로 이루어진다.
- Amplitude : 진폭이라 하며, 신호의 주파수에서 가장 높은 구간을 말한다. 중간점에서 최고점까지의 거리이다.
- Period(T) : 신호가 한 사이클 도는 데 걸리는 시간을 의미한다. frequency(F, Hz)는 1초에 몇 번 반복 되었는가를 의미하며 서로 역수 관계이다. 예를 들어, 5GHz일 때 1초에 5 * 10^9번 진동한다는 말이다. 아래 그림에서는 한 주기당 1/3초 라는 것을 알 수 있다.
- Phase(offset) : T = 0일때의 상대적인 포지션을 의미한다. 음수가 되기도 하고 양수가 되기도 하는 값이다. 아래 그림에서는 Phase = 90'(degree)이다.
Wavelength
파장은 단순 신호가 한 주기동안 진행할 수 있는 거리를 말하며, 이는 전파속도 / 주파수로 표현할 수 있다. 안테나 크기에 영향을 주며 고주파일수록 안테나 길이를 작게 만들 수 있다.
Time and Frequency Domain
sine wave는 아날로그 신호의 3요소인 Amplitude, Period, Phase로 정의되는데 Time domain과 Frequency Domain으로도 정의될 수 있다.
Composite Signal
sine wave 여러 개를 합쳐 놓은 것을 말한다. 실제로는 Frequency, Amplitude, Phase가 다 다른 sine wave를 섞으면 된다.
Bandwidth
주파수의 대역폭을 의미하는데 대역폭을 통해 신호를 보낼 수 있다. 대역폭이 넓을수록 많은 데이터를 보낼 수 있다. 수도관과 비슷하다고 생각하면 된다. 위에서 언급했던 것처럼 Frequency, Amplitude, Phase를 각각 다르게 설정해서 전송할 수 있다. 따라서 Bandwidth는 가장 낮은 주파수부터 높은 주파수까지의 범주를 의미한다.
디지털 신호
0과 1을 Pulse 형태로 전송하는데, 이때 level을 설정해서 한 신호를 여러 비트로 보낼 수 있다. 아래 그림과 같이 한 신호당 1bit로 보낼 수 있고 한 신호를 2bit로 보낼 수도 있다. 1bit당 level을 설정할 수 있는데, level 간의 간격이 좁을수록 신호가 애매해진다. 넓으면 어떤 신호인지 명확하게 구분할 수 있다. 따라서, b는 오류나 잡음의 확률이 더욱 높다.
따라서, 레벨이 늘어나면 속도는 빨라지지만 오류에는 취약해지는 단점이 있다.
Bit rate
초당 몇 비트를 전송할 수 있는지를 나타내는 것이다. 예를 들어, 초당 100페이지를 다운로드 하는데, 한 페이지에 24줄이 있고 한 줄당 80 문자가 있다고 하자. 한 문자가 8 bit라고 할 때, bit rate를 계산해보면, 100 * 24 * 80 * 8 = 1,536,000 bps = 1.536Mbps이다.
Bit Length
실제로 있는 개념은 아니고, 한 비트 보내는데 몇 초가 걸리는지를 나타내는 것이다. bit length = 1 / Bit rate로 표현할 수 있다.
Transmission of Digital Signal
디지털 신호는 0부터 무한대 사이의 주파수를 가진 아날로그 신호이다. Baseband transmission과 Broadband Transmission 두 종류의 변환이 있다.
- Baseband transmission : 아날로그 신호로 변환하지 않고 디지털 신호를 보내는 것
- Broadband transmission : 디지털 신호를 아날로그 신호로 변환한 후 아날로그 신호를 보내는 것
2.2 Signal Impairment
전송 매체를 통해 보내지는 신호는 외부 영향을 받아 왜곡될 수 있다. 즉, 보낼 때 신호와 받을 때 신호가 다르다는 말이다. 이러한 왜곡은 3가지 요인 때문에 발생할 수 있다.
Attenuation
신호가 멀어질수록 에너지를 잃어버린다는 것이다. 이러한 손실을 줄이기 위해서 증폭기를 사용해서 약해진 신호에 에너지를 더할 수 있다.
데시벨은 신호가 손실된 정도 혹은 획득한 정도를 나타내는 것이다. 이는 상대적이기 때문에 주변에서 에너지를 많이 쓰는 신호가 있다면 상대적으로 에너지가 약해보이는 것이다. 쉽게 말하면 콘서트장에서 말을 하는 것과 독서실에서 말을 하는 것으로 생각할 수 있다. 따라서 데시벨을 계산할 때는 비교분을 넣어 계산한다.
dB = 10 log(P2/P1)
예제를 하나 풀어보자.
전송 매체를 통해서 전달되는 신호가 있는데, 이 신호의 에너지가 절반으로 줄어든다고 한다. 이때 P2 = 0.5P1 이라는 식으로 나타낼 수 있고 이 경우에 Attenuation을 계산해보자.
10 *log10(0.5P1/P1) = 10 * log10(0.5) = -3dB
3dB는 일반적으로 통신에서 2배 정도 강하다는 의미이다.
Distortion
왜곡은 신호가 진행중에 형태나 모양이 변형되는 것을 말한다. 왜곡을 없애는 방법이 없어서 송신/수신 측에서 최대한 신호를 비슷하게 받으려고 노력하는 방법 밖에 없다.
Noise
백색 잡음이라고 하는데, Signal-to-Nosie Ratio로 정의된다.
SNR = (average signal power) / (average nosie power)
SNRdB = 10log10(SNR)
Data Rate Limits
데이터를 얼마나 빠르게 보낼 수 있는가는 중요한 것이다. Data Rate는 3가지 요인에 따라 결정된다.
- Bandwidth (대역폭의 크기) : Data Rate에 가장 큰 영향을 주는 요소
- The level of the signals (신호 레벨)
- The Quality of the channel (채널의 질) : 노이즈가 어느 수준인지를 측정
참고로, interference(간섭)은 Nosie(잡음)와 차이가 있다.
간섭은 자연상에 존재하지 않고 인위적으로 통신하려고 만든 주파수 간의 충돌이 발생하는 것이다.
Data rate 는 2가지 방법으로 계산할 수 있다.
Nyquist Bit Rate
노이즈가 없다고 가정하고 계산한 것이다.
Bit Rate = 2 * B(bandwidth) * Log2L(number of Levels)
level이 많아질수록 Log2L 값이 커지고, Bandwidth가 커질수록 BitRate 값이 커진다.
예제를 풀어보자.
265kbps의 잡음없는 채널이 있고 bandwidth는 20kHz라고 한다. 신호 레벨은 몇 레벨이 필요할까?
-> Nyquist Bit Rate 계산 방식에 적용하면, 265 * 10^3 = 2 * 20 * 10^3 * log2L 이므로, log2L = 6.625이다.
L을 계산해보면 2^6.625 = 98.7 레벨이 필요하다. 우리는 앞서 한 symbol을 구성하는 비트가 많을 수록 레벨이 많아진다고 배웠다. 1 bit로 설졍하면, 레벨이 2개, 2 bit라면 4개의 레벨이 있다. 따라서 일반화하면, n bit일 때는 2^n레벨이 존재한다. 따라서, 98.7보다 큰 값 중 가장 작은 값은 128이므로, 최소 128개의 레벨이 필요하다고 할 수 있다.
Shannon Bit Rate
노이즈가 있는 환경에서 Capacity를 계산한 것이다.
Capacity = B * log2(1 + SNR)
Nyquist Bit Rate과 비교해보면, Level을 직접적으로 사용하진 않지만, SNR 자체가 Level에 영향을 주기 때문에 레벨과도 연관이 있다.
주의할 점은 SNR에 dB 값이 아니라 (avg signal power) / (avg noise power)이 들어간다. dB로 보통 주어지기 때문에 값을 변환하여서 대입해야 함을 주의해야 한다.
위를 바탕으로 예제를 풀어보자.
1. 잡음이 있는 채널에 SNR이 거의 0이고, 잡음이 너무 강해서 신호가 약한 상태이다. 이때 capacity C를 구해보자.
C = B * log2(1+0) = B * log2(0) = B * 0
2. 전화선이 3000Hz의 대역폭을 가지고 있다고 하자. SNR이 거의 3162일 때 capacity C를 구해보자.
C = 3000 * log2(1 + 3162) = 34,881 bps
따라서 전화선의 가장 높은 bit rate는 34.881 kbps라고 할 수 있다. 데이터를 조금 더 빨리 보내고 싶다면 대역폭을 늘리거나 SNR을 올리면 된다. 와이파이의 신호 감도가 좋으면 빨리 보낼 수 있는데 신호 감도가 좋지 않으면 느리게 보내지는 것과 같은 설명이다.
정리해보면, SNR이 좋지 않으면 Capacity 값도 좋지 않고 대역폭(Bandwidth)이 좁을수록 Capacity 값도 작다는 것을 알 수 있다.
그렇다면 현실에서는 자연적으로 백색 잡음이 존재하는데, 잡음이 없다고 가정하여 계산한 Nyquist Bit Rate는 왜 사용할까? 그 이유는 Nyquist Bit Rate와 Shannon Capacity를 사용해서 최대 Bit Rate와 신호 레벨을 계산할 수 있기 때문이다.
1MHz 대역폭을 가진 채널이 있을 때, SNR이 63이라고 한다. 적당한 Bit rate와 Signal Level을 구해보자.
Shannon 공식을 사용해서 최대 Bit Rate를 구할 수 있다.
C = B * log2(1 + SNR) = 10^6 * log2(1 + 63) = 10^6 * 6 = 6 Mbps
최대 6 Mbps의 전송 속도를 가진다고 하면 그보다 낮은 4 Mbps 의 전송 속도라고 할 때 성능이 보장되는지 확인해야 한다.
Nyquist 공식을 사용해서 레벨이 몇 개 있어야 성능이 보장되는지 확인해보자.
4 Mbps = 2 * 1 MHz * log2L
log2L = 4 * 10^6 / 2 * 10^ 6 = 2
L = 4
레벨을 4개로 나누면 2bit 당 한 신호를 보내서 4 Mbps의 전송 속도를 보장할 수 있다는 것을 알 수 있다.
Performance
네트워크에서 가장 중요한 것이 네트워크의 성능을 확인하는 것이다. 성능을 판단하는 여러 기준 중에서 책에서 소개된 것들만 알아보자.
Bandwidth
대역폭은 가장 낮은 주파수에서 가장 높은 주파수 사이의 폭을 의미한다. 전송 속도와 관련이 있지만 완전히 같은 개념은 아니라는 점을 주의해야 한다.
대역폭이 4kHz인 채널이 있다. 아날로그 신호를 디지털 신호로 바꾸어주는 모뎀을 사용해서 최대 56 kbps 속도로 전송하려고 한다. 전화 회사가 bandwidth가 8kHz로 높이면 전송 속도를 112 kbps로 높일 수 있다.
Throughput
처리량은 네트워크를 통해 데이터를 얼마나 빨리 보낼 수 있는지를 측정한 값이다. Capacity와 헷갈릴 수 있는데, Capacity는 bit rate(bps)으로 초당 몇 비트를 보낼 수 있는지를 나타낸다. 물리 계층에서 비트를 얼마나 처리했는지를 나타내는 지표이고, Throughput(bps)은 계층에 상관없이 데이터를 얼마나 빨리 전송할 수 있는지를 측정한 것이다. 계층 구조에서 계층을 이동할 때마다 데이터에 헤더를 점차 붙여서 데이터를 전송한다. 즉, 물리 계층에서만 몇 비트를 처리했는지를 보는 지표가 Capacity이고, Throughput은 계층에 상관없이 각 계층에서 데이터를 얼마나 처리했는지에 대한 지표이다.
Latency
지연 시간이라고 하는데, 데이터를 보내는데 도착하는데 얼마나 걸리는지를 나타낸다. 이 지연시간은 전파지연, 전송지연, 큐잉 지연, 처리 지연을 합친 값이다.
- Propagation delay(전파 지연) : sender에서 데이터를 보내서 receiver가 받는 데까지 걸리는 시간이다. 이는 거리에 비례하고 전송 매체에 따라 지연 정도가 달라진다. 대부분은 매우 빨라서 대체로 지연 시간에 큰 영향이 없다.
- Transmission delay(전송 지연) : 버퍼에서 bit가 초당 얼마나 빨리 빠져 나갔는지를 나타낸다. 상대 기기와의 거리와 상관없이 버퍼의 처리 능력을 말한다. 대역폭과 SNR에 따라 값이 달라진다.
- Queueing delay(큐잉 지연) : 큐에 패킷이 머무는 시간을 말한다. 예측이 가장 어렵고 지연시간에 가장 큰 영향을 주는 요소이다.
- Processing delay(처리 지연) : 데이터를 수신할 때 신호를 비트로 바꾸는 시간, 패킷 헤더를 읽는 시간 등을 포함하는 시간이다.
Bandwidth-Delay Product
bandwidth와 지연 시간을 곱한 값이다. 잘 사용하지는 않는다.
Jitter
T1 = t2 - t1, T2 = t3 - t2일 때, T2-T1을 Jitter라고 한다. Jitter = 0일 때 같은 간격으로 패킷이 들어왔다고 판단한다.
'CS > 네트워크' 카테고리의 다른 글
[데이터통신] 2. Physical Layer(멀티플렉싱, 전송 매체) (0) | 2024.04.06 |
---|---|
[데이터통신] 2. Physical Layer(디지털 전송, 아날로그 전송) (1) | 2024.04.06 |
[데이터통신] 1. Introduction(프로토콜, TCP/IP 레이어, OSI 모델) (0) | 2024.04.06 |
[데이터통신] 1. Introduction(데이터 통신, 네트워크) (0) | 2024.04.06 |
[컴퓨터망] 1-4. 프로토콜 레이어 (0) | 2024.03.24 |