[컴퓨터네트워크] Chapter 4. (Data) Link Layer
Endcoding/Decoding
Error correction: bit수가 n배가 됨.
Capacity의 개선: Scrambling, Repetition, Puncturing 등
000 → 100 으로 변해도 000으로 알 수 있음.
적어도 하나씩은 에러가 날 수 있는데, 패킷을 버릴 수 있기 때문에.
Coding theory (부호 이론)을 기반으로 오류 정정 법을 만듦.
Real-time traffic VS NON Real-time traffic
Real-time traffic
시간이 지나면 의미가없어지기 때문에 바로 정정 할 수 있어야함.
▪ Unguided media
와이파이는 5G 주파수라 무료, LTE는 해당 주파수를 기관에서 구매했기때문에 유료
속도는 대역폭과 밀접한 관계가있다. 따라서 효율성을 따지려면 대역폭으로 나눠준다.
Spectral efficiency : Hz당 전송률▪ data rate / throughput에서 bandwidth를 나눈 값 (bit/s/Hz)
(Data) Link Layer [L2] - L1을 도와줌.
- L1 - bit → 전파 한 홉으로 되어있는 encoding을 해주는것.
링크 계층은 Media Access Control, Data Link Control 두가지의 역할을 수행한다.
Data Link Control
- Error Control (L1이 error 잘 안나도록)
- Flow Control (여러개 동시에 보낼 수 있도록)
Media Access Control (다수가 접속할때 누구부터)
Packet Error
- 통신 시스템에서 Error는 피할 수 없는 숙명임 (노이즈), 아무리 낮은 확률이라도 노이즈가 있다.
- 어느 환경이나 random process인 noise N(t) 존재
- 수신신호에 더해져 demodulation/decoding에 영향을 줌
- 결과적으로 bit error가 확률적으로 발생할수 밖에 없음
- packet error는 Signal to Noise Ratio (SNR) 에 따라 발생 빈도가 달라짐 (SNR이 높으면 Error가 적어짐)
-
s(t) 가 N(t) 대비 작으면 packet error가 자주 일어남 - 시그널(신호)가 노이즈 대비 작으면 = SNR이 낮다.
- 수신 신호 환경에 따라 error bit 패턴이 달라짐
- Single-bit Errors: 간혈적인 노이즈 분산으로 에러가 난 경우
- Burst Errors: 수신신호 감도가 낮아지면서 연속적으로 발생
Error Detection
패리티 비트 추가.
원래 데이터 뒤에 붙인다.
데이터와 패리티를 보고 정상인지 아닌지 판단.
Tx | Rx |
---|---|
11011 | 10011 (짝수개로 판단하는 형식) |
11011 | 00011 (이렇게 두 비트가 달라져도 에러 검출이 쉽지않다. 따라서 더 복잡한 패리티 비트 생성법이 생겨난다.) |
오류 검출을 위해 추가적으로 붙이는 것이 패리티 비트이다.
패킷(데이터그램) 에 헤더 뿐만이 아니라 패리티 비트를 붙인다.
L1의 에러 correction 패리티 비트와 다른 것이다. detection이 더 짧음.
CRC 의 경우 뒤에 비트를 추가하면되기 때문에 비트수 추가 부담이 많이 없다.
error correction - 0 을 000으로 바꾸는 방법 (PEC)
Parity 생성 방법
- odd/even parity
- 1bit를 붙여서 전체 data+parity bit들의 1의 개수가 홀수 혹은 짝수가 되도록 함
- 2-dimensional parity check
- 더 많은 parity bit 활용.
가장 많이 사용되는게 Checksum , CRC
Checksum : IP header에서 주로 활용하는 방식
- 16bit 단위로 끊어서 1’s complement 누적 덧셈 수행
- 최종 결과를 1’s complement operation을 해서 parity에 붙임
0001F203F4F5F6F7
송신측
수신쪽
- 수신측에서는 다 더하면 FFFF 가 되는지 확인한다.
- 누적덧셈을 해서, 결과 pariry와 더했을 때 FFFF면 error가 안났다고 판단한다.
0001/F202/F4F6/
운이 안좋게 같은 자리수가 높아지고 낮아지고 한다면 에러 발생한다.
CRC방식
- 가장 강력하고 두루 활용되는 Error Detection 방식
- 2진수의 n차 다항식 나눗셈 원리를 통해 CRC parity bit 도출
- 송수신측에서는 서로 약속된 polynomial (P) 로 나누기를 함
가장 효율적인 Polynomial은 정해져있음 ⇒ 99.9% Error Detection가능.
Error Control
- detect: 송신 측에서 error 한 상황 인지 (프로토콜 입장에서 송신측이 인지 해야함)
- react : error상황에서 송신측 응답.
Explicit ACK는 기본적으로 두가지 세부 방법 존재
Explicit acknowledgement : receiver entity가 PDU를 온전히 받았는지 여부를 다시 보내줌
- 가장 단순하고도 확실하게 confirmation을 하는 방법
Positive ACK : 정상 수신된 PDU를 알려주는 방식
지금까지 수신한 PDU의 다음 sequence number를 알려줌
network load를 줄이기 위해 cumulative ACK가 주로 사용됨
자원의 낭비 때문에 데이터를 연속적으로 보낸다음에 ACK를 보낸다.
Negative ACK : 미수신 PDU를 알려주는 방식
- faulty or outstanding sequence
- active error control
Timer
Acknowledgement 전송 역시 손실될 수 있음
-
TX entity 입장에서는 PDU를 보낸 뒤 acknowledgement를 무기한 기다릴 수는 없음
- Deadlock situation
-
따라서 ACK에 대한 기한을 두고 기한을 넘기면 action을 취할 필요가 있음
- timer에 의해 ACK 도달을 monitoring
ARQ (Automatic Repeat request) 재전송 요청.
- Acknowledgement + timer + reactions
- 자동 반복적 재전송 방법
- ARQ는 궁극적으로 unreliable data link(신뢰성 떨어지는)를 reliable하게 만들어주는 역할
- 재전송 방법에 따라 여러가지 방식
- Stop and wait
- Go back N
- Selective repeat
Go back N : N으로 되돌아가기
- N번째 unconfirmed PDU로 돌아가서 거기서부터 재전송함
- TX entity는 acknowledged되기 전까지 보낸 PDU를 그대로 저장하고 있어야 함
- RX entity는 N번째 PDU가 문제가 생기면 이후 PDU는 모두 버림 ▪ time-out의 경우 N번째 PDU부터 재전송
Selective repeat
- RX entity는 제대로 받은 PDU을 저장
- transmission order대로 다 받을때 까지 저장
- Cumulative ACK를 통해 제대로 전달된 PDU를 TX entity에서 확인
Go back N vs. selective repeat
- Selective repeat는 RX entity 측에 buffer 필요
- Go back N는 TX entity 측에 buffer 필요 (일반적으로 기지국쪽이 Computing power 가 쌔기때문에 부담을 버틸 수 있음)
- Go back N은 재전송 수신까지 시간이 걸리나
- selective repeat은 재전송 수신이 상대적으로 시간이 덜 걸림(시간적 효율성이 있지만 RX쪽에 부담이 있다.)
Hybrid ARQ
일반적인 ARQ는 error packet은 버림 HARQ는 error packet을 재활용하는것이 키포인트
- error packet과 이후 재전송된 packet을 잘 결합해서 Forward Error Correction을 함
- FEC동작과ARQ재전송개념을잘합친기법
LTE, 5G 등에서 활용
Flow Control : 연속적인 데이터의 개수 결정
- Stop - and - wait 방식 : 하나씩 전달
- ACK이 오면 다음 패킷 전송
- Link 활용성이 좋지 않다.
- Slide-Window 방식 : 일정 범위에 대해서 몰아서 전달.
Media Access Control (MAC)
- Contention 기반 (경쟁)
- 블루투스(80개의 채널중에 비어 있는 채널을 사용)
- non-Contention 기반 MAC (경쟁 x)
- Link의 자원을 나눠서 사이좋게 사용하는 방식
LTE (기지국이 자원을 나눠줌)
어떻게 나눌까?
- Time Division Multiplexing (TDM) 시간 자원
- Frequency Division Multiplexing (FDM) 주파수
- Code Division Multiplexing (CDM) 코드를 곱해서 전송. 모든 데이터를 섞어서 보냄.
Scheduling
여기서 자원은 시간과 주파수를 의미한다.
- Non-contention 방식은 궁극적으로 중앙집권적 L2 entity가 모든 media access를 제어하는 방식
- 특정 L1이 특정 자원을 통해 전송하는 것을 결정하는 과정을 scheduling이라고 함
- 대표적인 예시 : LTE/5G 기지국 ▪ 1ms 단위로 scheduling 수행
- 수신 단말과 단말에게 보낼 data, 자원 결정 ▪ 송신 단말 및 자원 결정
Slotted ALOHA
- IEEE 계열 MAC (ethernet, WiFi)
- 유선 : Carrier Sensing Multiple Access/Collision Detection (CSMA/CD) 주파수가 비어있을때까지 기다렸다가 접속.
- 무선 : Carrier Sensing Multiple Access/Collision Avoidance(CSMA/CA)
댓글남기기