티스토리 뷰
OSI Layer 개념
- 통신 네트워크를 이루는 protocol layer의 표준형 모델
- 대부분의 통신 네트워크는 이러한 형태를 갖추고 있다
- 7 layer, 5 layer model 두가지가 있다
- layer 1, 2, 3, 4는 공통 부분
- L 1 (physical), L 2(link)는 보통 쌍으로 이뤄지고 시스템 별로 서로 다르다
- L 3 (network) 는 IP (Internet Protocol)
- L 4 는 (transport) TCP / UDP
Layer 1 : Physical Layer
물리 계층이라고 불린다
- 1 : 1 상황에서 직접적인 물리 신호를 주고 받아서 정보를 전달하는 역활
- 1 hop으로 연결된 상대방에게 직접 정보를 전달
1 hop이란? → A에서 C를 거쳐서 B로 간다고 하면 A에서 C까지의 연결을 하나로 보고 1 hop이라 한다 - 링크의 물리 매체에 따라 실제 동작등이 다르다
- WiFi, LTE, ... : wireless signal
- Ethernet : twisted-pair copper wire, coaxial cable
입력 SDU : 보내고자하는 정보로 상위 계층인 L2에서 내려온 것
출력 : PDU 형태가 아니라, 물리적인 아날로그 신호 (modulation wave)를 보내준다
signal processing chain부분과 의사결정/판단을 내리는 procedure(protocol)부분이 존재한다
정보를 SDU로 받으면 인코딩 후 modulation을 통해 물리신호로 변경, 해당 신호를 받은 엔티티는 신호를 demodulation 한 후 디코딩을 한다
Modulation / Demodulation
통신이론 기반의 신호처리 동작
- Modulation (변조) : 송신할 정보를 carrier signal에 담는 처리
- Demodulation (복조) : 수신된 변조 신호로부터 원래 송신 정보를 복원
둘을 같이 통칭해서 MoDem (모뎀이라고 한다)
Spectrum / Bandwidth
Spectrum
- 주파수의 차이에 따라서 다양한 진폭을 보이는 신호이다
Bandwidth
- 대역폭으로, 아날로그나 디지털로 이뤄진 신호를 통신으로서 보낼려고 하면 전자기파로 보내지는데, 이때 전자기파가 차지가하는 공간이Bandwidth이다
- 스펙트럼은 이 bandwidth내에 있는 주파수의 모양을 말한다
Encoding / Decoding
Encoding
- 보내고자 하는 원래 bit열을 보내기 쉽게 가공처리하는 과정
Decoding
- 받은 bit열을 복원 처리하는 과정
예시
error detection
- N bit를 추가로 붙인다
error correction
- bit수가 n배가 된다
capacity의 개선
- scrambling(0, 1비트들을 하나의 비트로 뭉치는 것) , multiplexing, repetition/puncturing 등
위와 같은 것은 encoding으로 보낼 비트에 손을 보는 것이며, decoding은 해당 조작으로부터 원 정보를 가져오는 작업을 한다
Analog vs. Digital
Analog / Digital 통신은 변조 직전 data가 무엇이냐가 기준
- analog 신호를 그대로 변조 → Analog 통신
- digital bit를 변조 → digital 통신
둘다 궁극적으로 변조 시 나온 신호는 Analog Signal이다
오늘날 일반적으로 digital 통신을 대부분 사용한다
- 노이즈에 강하다
- 디지털 기술의 발전
- 압축 기술의 발달
- 시스템 구현의 용이성
- 강력한 보안기술의 손쉬운 적용
Wired vs. Wireless
유선 특징
Guided media (Twisted pair 랜선, coaxial cable 구리선, optical fiber 광랜) 에 의한 변조 신호 전달
- 유선 연결이 필요하므로, 송수신 간 물리적 제약 존재
- 보통 대역폭이 작은 대신 감쇄가 적고, noise 대비 수신 신호 크기가 크다
Twisted pair
- 가장 대중적인 통신선
- 2가닥이 꼬여있는 구조로 케이블 안에 존재한다
- unshielded twisted pair / shield twisted pair 둘 중 사용
- 성능, 특성에 따라 여러 category로 나뉜다
Coaxial cable
- twisted pair 보다 도달거리가 길지만 비싸다
Optical fiber
- 고성능의 고급 통신선으로 국가간에 해저로 연결하는 광선등이 있다
- Gbps급 속도, 가볍고 작은 size이다
무선 특징
Unsigned media (air, vaccum, seawater 등)의한 변조 신호 전달
- 활용 가능한 주파수의 확보가 필요하다
wireless channel의 특성
- center frequency가 높아질 수록 거리 및 장애물에 의한 감쇄가 심해진다
- → 높은 주파수일 수록 장애물에 약해지는 것
- Bandwidth가 커질수록 frequency selectivity에 의한 왜곡이 심해진다
- → 어느 주파수를 고르냐에따라 왜곡이 달라진다
- 100MHz의 bw일 때, 95MHz에서의 통신과 55MHz에서의 통신의 차이가 존재하는 것
Duplex
송수신 방향에 대한 환경 고려
Simplex
- 단방향 통신만 가능
- 한쪽은 송신 / 한쪽은 수신
- 방송과 같은 일방적 정보 전달 시스템에서 주로 활용
Half Duplex
- 양방향 통신, 한 순간에 한방향만 이뤄진다
- 무전기 등
- Time Division Duplex : 시간대 별로 수신, 송신만 한다
Full Duplex
- 양방향 통신, 한 순간에 동시에 양방향 통신이 가능하다
- 어려운 버전으로 일반적으로 half duplex가 구현이 쉽다
성능 지표
Data rate : 시간당 bit 전송률 (bit/s, bps)
- 변조 방식에 따라 결정된다 → symbol당 bit 수 / symbol의 시간
- bandwidth와 밀접한 관계가 있다
Throughput : 평균적인 전송률
- 비교적 긴 시간동안 data를 전송했을 때, 초당 전송된 bit 수의 평균
Spectral efficiency : Hz당 전송률
- data rate / throughput 로 bandwidth를 나눈 값
Bit Error Rate (BER)
- bit 오류율
SNR
- Signal to Noise Ratio (시그날 대 노이즈 비율)
- 높을 수록 data rate는 높아진다
Channel Capacity (Shannon Limit)
- error가 일정 수준 이하로 유지되면서 낼수 있는 이론 상 최대 전송률
Layer 2 : Data Link Layer
L1 물리 계층에서의 정보 전송 흐름을 제어하는 역활
송신
- 보낼까 말까 → 얼만큼 보낼까 , 어떻게 보낼까
수신
- 상위 계층으로 수신한 PDU를 올릴까 말까
보통 L 1과 pair관계
- L1에 의존적이며, L1에 맞게 L2가 설계되는 것이 일반적이다
Packet Error
통신 시스템에서 error는 피할수 없는 숙명이다
- 어느 환경에도 random process인 noise N(t) 존재
- 수신신호에 더해져서 Demodulation / Decodig에 영향을 준다
- → 결과적으로 bit error가 확률적으로 발생할 수 밖에 없다
Packet error
- 원래 보낸 packet과 비교할 때, 1bit라도 다른 경우의 이벤트
- 위 사진과 같이 노이즈가 끼면 패킷 에러 발생
- 패킷 에러는 Signal to Noise Ratio (SNR)에 따라 발생 빈도가 달라진다
- 수신된 신호크기 S(t)가 N(t) 대비 충분히 크다면 packet에러는 발생하지 않는다
수신환경에 따라 error bit 패턴이 다르다
- single-bit errors : 간혈적인 noise 증가로 분산된 bit에서 오류가 난 경우
- burst errors : 수신 신호 감도가 낮아지면서 특정 구간에서 연속적으로 bit errorr가 난 경우
Error Detection
수신 Layer 2는 일반적으로 packet error를 스스로 알지 못한다
→ 정확히 뭘 보냈는건지 모르므로 (원래 의도한 송신 packet bit pattern을 모름)
- N(t)는 random process이므로 error는 랜덤으로 발생
따라서 L2가 error 를 파악하려면 별도의 장치가 필요하다
- 원래 보내는 packet에 추가적으로 bit를 붙여서 packet error를 찾아내는데 활용한다
- 이때, 추가적으로 붙이는 bit가 Paritiy bit이다
Parity Bit를 활용한 Error Detection
- TX에서 parity bit를 붙이고
- RX에서는 parity를 제외한 비트로 직접 만든 Parity와 수신한 Parity를 비교해서 Error를 판정한다
Parity 생성 방법
odd / even parity
- 1bit를 붙여서 전체 data + parity bit들의 1 개수가 홀수 or 짝수 가 되도록 한다
- 정확하지 않다
2 - dimensional parity check
- row, col 각각의 패리티 비트를 통해 2차원 패리티 비트 맵을 만들고 특정 좌표의 값이 뭔지 확인하여 오류 검증
- 잘 사용하지 않는다
CheckSum
인터넷에서 주로 활용하는 방식
송신 측에서 parity 를 만드는 방법
- 16bit 단위로 끊어서 1's complement(XOR)방법으로 누적 덧셈을 한다
- 최종 결과에 1's complement operation을 취해서 나온 값을 Parity Bit로 붙인다
- (마지막에 나온 결과가
FFFF
가 되기 위해 필요한 값이 최종 값) - (덧셈하다가 올림수가 나오면 올림수 만 다시 더해주고 다시 다음 16bit부분과 더함)
→ 수신 측에서 전달 받은 데이터를 똑같이 다 더해보고 나온 값 + Parity == FFFF
가 나오는지 확인한다
나오면 pass, 안나오면 error
CRC (Cyclic Redundancy Check)
- 가장 강력하고 두루 활용되는 Parity check 방식이다
송신측 CRC Parity Bit 만들기
- 2진수의 n차 다항식 나눗셈 원리를 통해 n bit CRC를 도출한다
- 여기서 나눗셈은 XOR
- 송신 측에서는 서로 약속된 polynomial (P)로 나눈다
- 수신 data bit를 대상으로 P로 나눴을 때, 나머지를 CRC parity bit로 붙인다
수신측
약속된 polynomial P로 나눠보고 나머지가 R(위의 경우 0 1 1 1 0)인지 확인한다
자주 사용되는 CRC polynomial
Error Correction
에러가 발생하더라도 복호화를 통해 정상적인 데이터로 복구하여 만드는 것
예전 2G 정도의 통신 시스템은 L1에서 보내는 기본 패킷 단위가 크지 않았지만, 최근 (5G 등) 통신 시스템은 L1에서 보내는 패킷 단위가 매우 크다 (수천 ~ 수십만 bit)
- 이렇게 패킷 내 비트가 많아질수록 Error또한 빈번하게 일어난다
- 동일 SNR 환경이라면 비트가 길어질 수록 error가 증가
보통 Parity를 통해 packet error가 검출되면 Packet 재전송이 이뤄진다
- 단, 패킷 재전송은 지양해야할 부분
- → 따라서 Error Detection 하기 전인 Decoding 단계에서 최대한 Error Correction을 통한 복구가 중요하다
- Channel coding Scheme
- channel Encoding → Data bit를 재가공해서 고칠 수 있는 형태 (codeword)로 만든다
- channel Decoding → encoding된 bit를 decoding해서 원래 bit로 복원한다
Forward Error Correction (FEC)
Code rate : k / n (원래 data bit 크기 / codeword 크기) < 1
- 통신 환경이 안좋다면 n을 늘려서 codeword를 늘린다, code rate가 낮아짐
- 통신환경이 좋은 편이라면 n을 조금만 늘려서 전송 데이터를 줄인다, code rate가 높아짐
효과
- target BER (Bit Error Rate) 를 만족하는 SNR을 낮출 수 있는 효과
- Coverage가 넓어진다 (SNR의 범위를 아래로 늘릴수 있으므로)
Error Control
결과적으로 L 2 - Data Link Layer 는 Error Detection & Error Correction 기능을 통해 아래 protocol function 동작을 수행할 수 있다
- FEC를 통한 error 수정
- CRC, checksum 등 을 이용해 error detection을 통한 error 여부 판단
- 필요 시 송신측에 재전송 요청 (ARQ)
ARQ는 궁극적으로 unreliable data link를 reliable하게 만들어 준다
ARQ : stop and wait, go back N, selective repeat
Stop and Wait
- ACK이 오면 다음 frame을 전달하는 방식으로 하나씩 전달
- 패킷 손실은 타이머 expiry로만 확인 가능
slide window
- 일정 범위(window)에 대해 몰아서 전달한다
- 몰아서 ACK를 받아서 처리한다
- 복잡한 상황이 발생할 수 있다
Go Back N
- N부터 재전송
- slide window 활용
Selective reject (repeat)
- 특정 seq만 재전송
Hybrid ARQ
일반적인 ARQ는 error packet을 버린다
- HARQ는 error packet을 재활용하는 것이 키포인트이다
- error packet과 재전송된 packet을 잘 결합해서 FEC (forward Error Correction)을 한다
- LTE, 5G등에서 활용
Media Access Control (MAC)
실제로 L1에서의 link란 여러 entity들이 공용으로 사용하는 경우가 많다
(카페 와이파이 등)
- 한 L1 entiity가 송신한 통신 신호를 동시에 받는 L1 entity들은 그 link를 공용으로 쓴다고 봐야한다
유선 : Hub를 통해 연결된 단말들
무선 : 신호가 도달하는 영역 내의 단말들
- 두 entity가 동시에 공용 link를 사용하면 충돌로 인해 packet에러가 발생한다
- 이러한 L1 entity들 간 송/수신을 제어하여 충돌을 막는것이 MAC의 역활이다
non-Contention 기반 MAC
- Link의 자원을 나눠서 사이좋게 사용하는 방식으로 L1 전송이 충돌하는 일이 없다
- 자원을 나누는 방법에 따라 기법이 달라진다
Frequency Division Multiplexing : 주파수 나눠서 동작
Time Division Multiplexing : 시간을 나눠서 동작
Wavelength Division Multiplexing : 말그대로 한 wave (신호)를 나눠서 동작
Code Division Multiplexing : 코드를 통해 복호화
Scheduling
non-contention 방식은 궁극적으로 중앙집권적 L2 entity가 모든 media access를 제어하는 방식이다
- 특정 L 1이 특정 자원을 통해 전송하는 것을 결정하는 과정을 Scheduling이라 한다
대표저인 예가 기지국
- 1ms 단위로 스케쥴링을 수행한다
- 수신 단말과 단말에게 보낼 data, 자원을 결정한다
- 송신 단말 및 자원을 결정한다
Contention 기반 MAC
- 경쟁 기반으로 L1 / L2 들이 link 자원을 점유해서 사용
- 중앙 집권적 node가 불필요하지만 충돌의 여지가 있다
ALOHA → Slotted ALOHA
- Random Access Channel (LTE / 5G)
- 보낼 놈은 알로하(안녕) 이라고 하는데, slotted는 그 시간에 하라고 알려주게 된다
IEEE 계열 MAC (ethernet, wifi)
'CS > 네트워크 전공 수업 정리' 카테고리의 다른 글
8. Layer3 : Routing (0) | 2021.04.28 |
---|---|
7. Layer 3 (0) | 2021.04.28 |
5. Protocol Function 3 (2) | 2021.04.27 |
4. Protocol Function 2 (0) | 2021.04.27 |
3. Protocol Function (0) | 2021.04.27 |
- Total
- Today
- Yesterday