course outline
- OSU layer에서의 layer 1 protocol 개념 및 역할에 대해 이해
- physical layer의 기본 개념 및 역할
- physical layer 사례들
OSI Layer 개념
- 통신 네트워크를 이루는 protocol layer의 표준형 모델
- 대부분 통신 네트워크는 이런 형태를 갖추고 있다고 이해하면 된다.
- 7 layer vs. 5 layer model 두가지가 있으며, 아래가 layer1, 위로 갈수록 숫자가 늘어남.
- layer 1, 2, 3 / 4는 공통
- L1-2는 보통 쌍이며 시스템 별로 서로 다름
- L3는 사실상 internet protocol(IP)
- L4는 사실상 TCP / UDP
Layer 1: Physical Layer
- physical layer(물리계층)이라고 불린다.
- 1:1 상황에서 직접적인 물리 신호를 주고 받아서 정보를 전달하는 역할
- 물리적으로 1:1연결 형태에 맞는 실제 물리 신호를 적절하게 생성
- 1hop으로 연결된 상대방에게 직접 정보 전달 → 직접적인 연결 상태의 1:1상황에서의 신호를 생성
- 링크의 물리 매체에 따라 실제 동작 등이 상이함
- ethernet: twisted-pair copper wire, coaxial cable
- wifi, LTE, ...: wireless signal
- 입력 SDU: 보내고자 하는 정보
- 출력: PDU 형태는 아니고 물리적인 아날로그 신호 (modulation wave)
- 나오는 PDU가 전자기파로 나온다. → 정보가 L1을 거쳐서 물리신호로 바뀜
- signal processing chain(신호처리기, 증폭기) 부분과 의사결정 / 판단 을 내리는 procedure(protocol)부분 존재
Modulation / Demodulation
- 통신 이론 기반의 신호처리 동작
- 변조 (Modulation): 송신할 정보를 carrier signal에 담는 처리
- 복조 (Demodulation): 수신된 변조 신호로부터 원래 송신 정보를 복원
- 변복조 기기를 modem이라고 한다.
- 전파를 보내기 위해서 전파를 만들고 전파를 해석하는 역할을 하는 제일 끝단에 있는 HW가 modem이 된다.
- modem에서 정보가 나가고 들어온다.
Modulation Wave의 Spectrum
변조신호를 carrier Frequency에 얹혀지는 형태가 된다. carrier Frequency에 얻혀지면 그 얻혀진게 차지하는 범위가 있다. 그 차지하는 범위가 bandwidth라고 한다.
- 변조 신호를 Fourier transform한 것 (X(f) = F{x(t)})
- fourier transfrom이란 시간 축으로 01010이라는 신호를 주파수로 바꾸는 과정
- 시간축의 신호를 주파수 영역의 신호로 바꾸는 과정
- 시간축이 아닌 주파수축 관점에서 변조 신호를 볼 때 그 energy 혹은 power가 주파수 (frequency)이다.
- 주파수: 특정 주기의 정현파 요소
- 각 주파수 요소가 얼마나 섞여 있는지를 한눈에 보여준다.
- 우리가 보내는 신호를 center frequency(중심 주파수) + bandwidth(대역폭)로 요약될 수 있음
- spectrum: 주파수의 차이에 따라서 다양한 진폭을 보이는 신호이다.
- bandwidth내에 있는 주파수의 모양을 말한다.
- bandwidth: 대역폭으로, 아날로그나 디지털로 이루어진 신호를 통신으로서 보낼려고 하면 전자기파로 보내지는데, 이때 전자기파가 차지하는 공간
특정 목적지가지 어떤 길을 선택할거냐 하는게 center frequency , carrier signal 어떤거 할 것이냐를 선택하는 것과 같다. 그리고 그 길의 폭이 어떻게 되냐 하는게 bandwidth이라고 생각하면 된다.
Encoding / Decoding
- 보내고자 하는 원래 bit열을 보내기 쉽게 가공(encoding)하거나 복원(decoding) 처리하는 과정
- encoding 전(입력)과 decoding 후(출력) 입출력 모두 결국 bit sequence
encoding → decoding사이에 하는 일들의 예시)
- error detection: N bit를 추가로 붙임
- error correction : bit 수가 n배가 된다.
- capacity의 개선: scrambling, multiplexing, repetitioin / puncturing 등..
endcoding을 보낼 때 비트에 추가 작업하는 것, decoding은 해당 조작으로부터 원 정보를 가져오는 것
Network 공학 관점에서의 L1
- network engineer 란 보통 end to end 통신을 위한 network 전체 구성이 주된 역할
- L1은 network에서 작은 부분에 불과
- network engineer들은 일반적으로 L1에 대해 black box로 간주
- network engineer들은 L1과 L2에 관심이 없다
- 내부 원리 및 동작 mechanism와 같은 L1의 깊은 내용은 모르는 것이 일반적
- 네트워크 공학에서 다루기는 L1에 해당하는 유무선 통신 기술 내용이 매우 깊음
- 다만 network설계 과정에서 L1은 중요한 요인에 해당
- 설계 대상이 되는 network 환경에 맞게 L1 기술을 선택할 정도의 지식은 있어야한다
- L1이 직접 데이터를 전달하므로 L1이 어던 서비스를 제공하는 지 알아야한다.
Physical Layer 특성 Analog vs. Digital
- Analog / digital 통신은 변조 직전 data에 무엇이냐에 대한 기준
- analog 신호를 그래로 변조하면 analog 통신
- digital bit를 변조하면 digital 통신
- 양쪽 방식 모두 궁극적으로 변조 시 나온 신호는 analog signal이다
- 오늘날 일반적으로 digital 통신을 대부분 이용한다.
- noise에 대해 강함
- 디지털 기술의 발전
- 압축 기술의 발달
- 시스템 구현의 용이성
- 강력 보안 기술의 손쉬운 적용
Physical Layer 특성 Wired vs. Wireless
전송 매체의 특성에 대해서..
wired 특징
Guided media (Twisted pair, coaxial cable, optial fiber 등)에 의한 변조 신호 전달
- 유선 연결이 필요하므로, 송수신 간 물리적 제약 존재
- 보통 대역폭이 작은 대신 감쇄가 적고 noise대비 수신 신호가 큼
- 무선은 누군가가 잡음을 넣을 수 있지만 유선은 그렇게 하지 못함
Twisted pair
- 가장 대중적인 통신선
- 2가닥 꼬여있는 구조로 케이블 안에 존재
- Unshielded Twisted Pair (UTP) 혹은 Shielded Twisted Pair (STP) 사용
- 성능 특성에 따라 여러 category로 나뉨
Coaxial cable
- 동축 cable은 구리가 비싸므로 잘 사용하지 않는다.
- twisted pair 보다 도달 거리가 길고 비쌈
Optical fiber
- 고성능의 고급 통신선
- Gbps급 속도, 가볍고 작은 size
- 상용 용도의 통신 인프라로 활용
- 가장 많이 사용한다.
Wireless 특징
unguided media (air, vacuum, seawater 등)에 의한 변조 신호 전달
- 활용 가능한 주파수의 확보 필요
wireless channnel의 특성
- center frequency가 높아질수록 거리 및 장애물(벽 등)에 의한 감쇄가 심해짐
- 높은 주파수일 수록 장애물에 약해진다
- bandwidth가 커질수록 frequency selectivity에 이한 왜곡이 심해짐
Physical Layer 특성 Duplex
Duplex: 송수신 방향에 대한 환경
Simplex
- 단방향 통신만 가능
- 한쪽은 송신, 다른 한쪽은 수신만 함
- 방송과 같은 일방적 정보 전달 시스템에서 주로 활용
- 방송의 경우 송출만 가능, 티비의 경우 수집만 가능, 라디오의 경우 수신만 가능..
Half duplex
- 양방향 통신, 한 순간에 한방향만 이루어짐
- 위키토키 (무전기): 말할때 송신만, 들을때는 수신만 가능
- Time Division Duplex (TDD)
- wifi: 공용 주파수 안에서 하기에 api 보내기만 하거나 받기만 한다.
Full duplex
- 양방향 통신, 한 순간에 동시에 양방향 통신가능
- LTE
Physical Layer 성능 지표
Data rate
- 시간당 bit 전송률 (bit/s, bps) : 순간 전송률
- throughput과 비슷한 개념
- 변조 방식에 따라 결정 → (symbol 당 bit 수) / (1 symbol의 시간 길이)
- bandwidth와 밀접한 관계
throughput
- 평균적인 전송률
- bandwidth 가 넓을 수 록 전송률은 올라감
- 비교적 긴 시간동안 data를 전송했을 때 초당 전송된 bit 수의 평균
spectral efficiency
- Hz당 전송률 → 주파수 효율
- data rate / throughput에서 bandwidth를 나눈 값 (bit/s / Hz)
- 성능이 좋으면 높아진다.
- SNR 이 높으면 높아진다.
- 다른 bandwith에서 속도를 측정하고 싶을 때 사용
Bit Error Rate (BER)
- bit 오류율
- 보통 x축은 Signal to Noise Ratio (SNR) 로, 수신 채널 환경
- SNR = signal power / Noise power = 10 이되면 좋다고 말한다.
- 예를 들어서 SNR이 클수록 말하는 목소리가 noize에 묻히지 않고 잘 들림을 의미
- 낮을 수록 좋은 성능임을 의미
Channel Capacity (Shannon limit)
- error가 일정 수준 이하로 유지하면서 낼 수 있는 이론 상의 최대 전송률
- channel이 가질 수 있는 최대한의 전송률
- system을 아무리 개선이도 channer capacity를 넘을 수 없음, 하지만 SNR을 높이는 방법이 있음
Layer 2: Link Control
course outline
- OSI layer에서 Layer 2 protocol 개념 및 역할에 대해 이해
- media access control의 개념 → L1과 제일 구분되는 개념
- data link control이 개념
Layer 2: Data Link Layer
L1물리 계층에서의 정보 전송 흐름을 제어하는 역할
- 송신: 보낼까 말까, 얼만큼 보낼까 / 어떻게 보낼까
- 수신: 상위 계층으로 수신 PDU를 올릴까 말까
보통 L1과 pair관계이다.
- L1에 의존적이며, L1에 맞게 L2가 설계되는 것이 일반적임
Packet Error
- 통신 시스템에서 error는 피할수 없는 숙명이다
- 어느 환경이나 random process인 noise N(t) 존재하므로 error 발생
- 노이즈가 수신신호에 더해져 demodulation / decoding에 영향을 줌 → 예를 들어서 소음이 큰 경우 말을 들을 수 없다.
- 결과적으로 bit error가 확률적으로 발생할 수 밖에 없음.
packet error
- 원래 보낸 packet과 비교할 때 1bit라도 다른 경우의 이벤트 → 이런 경우 pakect 전체가 error났다고 볼 수 있다.
- packet error는 Signal to Noise Ratio (SNR)에 따라 발생 빈도가 달라짐
- 수신된 신호 크기 (|s(t)|)가 N(t)대비 충분히 크면 packet error는 안 일어남 → SNR이 크면
- (|s(t)|)가 N(t)대비 작으면 packet error가 자주 일어남 → SNR이 작으면
- 수신 신호 환경에 따라 error bit 패턴이 달라짐. 아래 두가지 패턴이 있다.
- single bit errors: 간헐적인 noise 증가로 분산된 bit가 각각 오류가 난 경우 → 한 bit씩 에러난 경우
- burst errors: 수신 신호 감도가 낮아지면서 연속적으로 bit error 발생 → 뭉쳐서 error가 난 경우, 현실적으로 이런 경우가 대다수이다.
Error Detection
수신 Layer2는 일반적으로 packet error를 스스로 알지 못함
- 원래 송신된 packet의 bit pattern을 수신측이 알지 못함 → 원래 의도한 송신 packet bit pattern을 모르므로 정확히 뭘 보냈는건지 몰라서 에러가 나도 정확한 정보인지 아닌지 알 지 못한다.
- N(t)는 random process이므로 error는 random으로 발생
따라서 L2가 packet error를 파악하려면 별도의 장치가 필요
- 원래 보낸 packet에 추가적으로 bit를 붙여서 packet error를 찾아내는데 활용
- 여기서 추가적으로 붙이는 bit를 parity bit라고 한다
parity를 활용한 error detection 과정
TX에서 parity를 붙이고 RX에서 내가 만든 parity와 수신된 parity를 비교해서 error여부 판정한다.
Parity 생성방법
odd / even parity
- 가장 간단한 형태
- 1 bit를 붙여서 전체 data + parity bit들의 1의 개수가 홀수 혹은 짝수가 되도록 함
2-dimensional parity check
- 더 많은 parity bit 활용
- 이 방법 대신 동일한 복잡도를 가진 checksum을 사용
checksum
- internet에서 주로 활용하는 방식
- 16bit 단위로 끊어서 1's complement 누적 덧셈 수행
- 최정 결과를 1's complement operation을 해서 parity에 붙임
- 수신 측은 동일한 방식으로 누적 덧셈을 해서, 결과를 parity와 더했을 때 FFFF가 나오면 error-free로 판단
- 계산 문제 미출제 이런 개념이 있다 정도만 이해
cyclic Redundancy check (CRC)
- 계산 문제 출제
- 가장 강력하고 두루 활용되는 parity check 방식
- 2진수의 n차 다항식 나수셈 원리를 통해 n bit CRC 도출
- 송수신 측에서는 서로 약속된 polynomial (P)로 나누기를 함
- 수신 data bit를 대상으로 P로 나누었을 때 나머지를 CRC parity bit 로 뒤에 붙임
- 수신 측 검산
- 약속된 polynomial (P)로 나누어보고 나머지 (R)가 0인지 여부 확인
- 자주 활용되는 CRC polynomial
Error Correction
예전 (2G정도) 통신 시스템은 L2에서 보내는 기본 packet단위 크기가 크지 않았음.
→ 음성 서비스 중심의 GSm의 경우 약 200bit 정도 수준
하지만 최근 통신 시스템은 L1에서 보내는 기본 packet단위가 매우 큼 → 수천~수십만 bit 까지 가능
packet error는 packet 내 bit가 많아질수록 빈반하게 일어남
- packet size가 커진 최근 통신 시스템은 동일 SNR 환경에서 더 packet error가 빈번하게 일어나기 만련 → 동일 SNR 환경이라면 비트가 길어질수록 error가 증가
보통 parity를 통해 packer error가 검출되면 packet 재전송이 이뤄진다.
- 단 패킷 재전송은 지양해야할 부분
- 따라서 error detection하기 전인 decoding 단계에서 최대한 error correction을 통한 복구가 중요하다.
- Error detection뿐 아니라 error correction 기능까지 필요로함.
Forward Error Correction (FEC)
보통 앞에서의 parity를 통해 packet error가 검출되면 packet재전송이 이루어짐
하지만 이런 재전송이 성능 관점에서 바람직한 방향은 아님
따라서 스스로 error를 고칠 수 있으면 고치는 것이 바람직함
channel coding scheme
스스로 error를 고치는 법
- channel encoding: data bit를 재가공해서 고칠 수 있는 형태 (codeword)로 만듦 (bit 뻥튀기)
- channel decoding: encoding: encoding된 bit를 decoding하여 원래 bit 복원 (이 과정에서 error정정이 일어남)
FEC의 과정
code rate: K / n (원래 data bit 크기 / code word 크기) → 보통 1보다 작음
- 통신 환경이 안좋다면 n을 늘려서 codeword를 늘린다. code rate가 낮아짐.
- 통신 환경이 좋은 편이라면 n을 조금만 늘려서 전송 데이터를 줄인다, code rate가 높아짐
FEC 종류
어떤 종류들이 있다 정도는 알아야함. keyword만 익히기
- block code: bit 를 block (2차원 배열)로 배치하여 codeword생성
- convolutional code & Turbo code : convolution 원리를 활용
- 앞뒤 bit 를 누적 더하기 하여 codeword 생성
- 3G, LTE에서 주로 활용
- LDPC: 가장 최근 기술로, 이론상의 한계치에 가장 근접
- packet size가 클때 유리하면, wifi, 5G에서 활용됨
- polar code: 5G에서 활용
FEC 효과
- tartget BER (Bit Error Rate)를 만족하는 SNR을 낮출수 있는 효과 →같은 BER에서 SNR이 낮을수록 좋음
- 전계가 약한 환경에서 수신 성능 개선 → 강전계 환경으로 개선되도록 할 수 있다.
- coverage가 넓어진다. (SNR의 범위를 아래로 늘릴수 있으므로) → 기지국에서 같은 power 신호를 쏠때 멀리갈 수록 SNR은 낮아진다. 근데 FEC로 수신 성능 개선해서 더 많은 서비스 가능하다.
Error Control
Layer 2은 error detection / correction 기능을 활용해서 아래 protocol function동작을 할 수 있음
- FEC를 통해 error 수정 시도
- error detection을 통해 error 여부 판단, CRC나 checksum (parity 이용해서)
- 필요 시 송신에게 재전송 요청 → ARQ (L2에서 돌아가는 프로토콜 function)
- ARQ는 궁극적으로 unrelieable data link를 reliable하게 만들어주는 역할
- ARQ: stop and wait, go back N, selective repeat
ARQ (Automatic Repeat Reuest) 자동 재전송 요구이다. 재전송 기반 에러 제어로 신뢰성있는 데이터 전달을 위해, 재전송을 기반으로 하는 에러제어 방식
Flow Control
송수신 entity 사이에 교환되는 PDU 개수 조정 (양조절)
stop and wait → ARQ의 stop and wait와 같은 원리로 동작
- 하나씩 전달
- ACK이 오면 다음 packet 전송
- link utilization 이 좋지 않음. 비효율적이다.
slide window
- 일전 범위(window)에 대해 몰아서 전달
- 몰아서 ACK를 받아 처리
- 다양한 복잡한 상황이 연출될 수 있음
ARQ 종류
stop and wait
- 위에 설명 참고
go back N
- N부터 재전송
- slide window 활용
selective reject
- 특정 seq만 재전송
hybrid ARQ
일반적인 ARQ는 error packet은 버린다.
HARQ는 erro packet을 재활용하는 것이 키포인트 → error packer 과 이후 재전송된 packet을 잘 결합해서 forward error correction을 한다.
- FEC 동작과 ARQ 재전송 개념을 잘 합친 기법 → ARQ처럼 error난 packet을 버리고 재전송하는 것 보다 효과적이다.
- FEC와 비슷한 수준의 정보처리율과 ARQ와 비슷한 수준의 신뢰도를 얻을 수 있음
- LTE, 5G 등에서 활용
Media Access Control (MAC)
L2에서만 하는 기능
실제로 L1에서의 link란 여러 entity들이 공용으로 사용하는 경우가 많음
- 한 L1 entity가 송신한 통신 신호를 동시에 받는 L1 entity들은 그 link를 공용으로 쓴다고 봐야함
- 유선: hub를 통해 연결된 단말들이 link를 공유
- 무선: 신호가 도달하는 영역 내의 단말들이 link를 공유
- 두 entity가 동시에 공용 link를 사용하면 충돌로 인해 packet error 발생
이 L1 entity들 간 송수신을 제어하여 충돌을 막는 것이 MAC의 역할
non-Contention 기반 MAC (중앙집권적)
- link의 자원으 나눠서 사이 좋게 사용하는 방식
- L1 전송이 충돌하는 일이 없음
- link 자원을 어떻게 나누냐에 따라 기법이 달라짐
- Frequency Division Multiplexing
- Time Division Multiplexing
- Wavelength Division Multiplexing
- Code Division Multiplexing
Scheduling
non-contention 방식은 궁극적으로 중앙집권적 L2 entity가 모든 media access 를 제어하는 방식
- 특정 L1이 특정 자원을 통해 전송하는 것을 결정하는 과정을 scheduling이라고 함
대표적인 예시: LTE / 5G 기지국
- 1ms 단위로 scheduling 수행
- 수신 단말과 단말에게 보낼 data, 자원 결정
- 송신 단말 및 자원 결정
Contention 기반 MAC
경쟁 기반으로 L1 / L2들이 link 자원을 점유해서 사용한다. non-contention처럼 중앙집권적 node가 불필요하나 충돌의 여지가 있다.
- ALOHA -> Slotted ALOHA
- Random Access Channel (LTE/5G)
- IEEE 계열 MAC (ethernet, WiFi)
- Carrier Sensing Multiple Access/Collision Detection → 유선에서만 사용할 수 있는 방식
- Carrier Sensing Multiple Access/Collision Avoidance → 무선에서만 사용할 수 있는 방식
- https://trts1004.tistory.com/12109027
'CS > 컴퓨터네트워크' 카테고리의 다른 글
9. Layer 3: Routing (0) | 2023.05.16 |
---|---|
7. Layer 3: Internet Protocol (0) | 2023.04.15 |
Protocol Functions 2 (0) | 2023.04.11 |
Protocol Functions (0) | 2023.04.10 |
Protocol Stack (1) | 2023.04.01 |