데이터링크 계층 Flashcards
데이터링크 Layer
[서비스] 프링접오흐회
- 프레임 화 : 전송 데이터를 프레임 형식으로 구성
- 링크 접속 제어 : LLC, MAC
- 접근제어 : CSMA/CD,CA
- 오류제어 : FEC(해밍코드, RS Code, Convolutional Code, Turbo Code), BEC(Stop&Wait ARQ, Go-Back N ARQ, Selective, Adaptive)
- 흐름제어 : Stop and Wait, Sliding Window
- 회선제어 : ENQ/ACK, Polling, 주소지정
신호 다중화
[정의] 여러 신호를 동시에 송수신할 수 있도록 하나의 전송로를 분할시켜, 다수의 채널로 분할하여 전송하는 기술
[특징] 전송매체의 효율적 이용, 통신 비용 절감, 하향 Down-LINK, 송신측이 한곳
[기술]
1. FDM : 넓은 대역폭을 다수 좁은 대역폭으로 분할
2. TDM : 데이터를 일정한 시간 슬롯으로 분할
3. CDM : 다수 신호의 다른 코드 시퀀스 부여 후 하나의 채널로 다중화 전송
4. WDM : 파장대역을 동시에 전송하는 광 다중화 방식
5. SDM : 공간적으로 분리된 다수의 물리적 채널을 하나의 논리적 채널로 다중화
다원접속
[정의] 한정된 전송 자원을 다수의 노드들이 효율적으로 공평하게 공유하기 위해 시간,공간,코드,주파수 등을 여러 사용자가 공동으로 사용하는 전송기술
[특징] 한정된 자원의 공동이용, 상향 Up-LINK, 송신측이 여러곳
[기술]
- 고정할당 : FDMA, TDMA, CDMA, WDMA
- 동적할당 : Random Access, 비경쟁방식(토큰방식, 라운드로빈, 폴링방식), 하이브리드
CSMA
[정의] 각 노드들이 프레임 전송을 위한 공유 매체에 접근하기 전 매체가 사용 중인지 여부를 확인하는 다중 접속 방식
[유형] CSMA/CD(유선, 충돌), CSMA/CA (무선, 회피)
CSMA/CD
[정의] 유선 LAN 의 반이중 방식(Half Duplex)의 이더넷(Ethernet)에서, 채널 상태를 체크 패킷 충돌을 피하는 매체 액세스 제어 방식
[특징] 충돌감지, IEEE 802.3, 데이터 흐름을 감시
* 반송파 충돌이 감지되면 재전송을 수행
[절차]
1. 전송준비
2. 채널 감시(busy시 재시도)
3. 데이터 전송 및 채널 감시
4. Jamming 신호 전송
5. backoff time 대기
6. 전송완료
* CSMA/CD는 지속적으로 통신상태 확인, CSMA/CA는 데이터 발생시만 확인
CSMA/CA
[정의] 무선 LAN 의 반이중 방식 (Half Duplex)에서, 사전에 가능한 충돌을 회피(Collision Avoidance)하는 무선전송 다원접속 방식
[특징] 충돌회피, IEEE 802.11, 예비 신호를 먼저 보내 패킷 충돌을 피해 데이터 전송
[필요성] 무선 LAN 에서는 공기 중 전송매체이어서 충돌 감지가 거의 불가능
[동작절차]
1. 채널 사용 여부 검사
2. IFS 주기 동안 대기
3. Backoff time 동안 대기
4. 프레임 전송
5. ACK 메시지 수신
* CSMA/CA에서는 Hidden Node 문제 해결을 위해 RTS, CTS 패킷을 이용
Full Duplex, Half Duplex, Simplex
- 두 디바이스 간 통신에서 방향성을 정의하는 용어
[Full Duplex] 두 디바이스간 통신선이 두 개(송신선, 수신선)
[Half Duplex] 두 디바이스 간 통신선이 하나, 전송 간격이 짧고 속도가 빠르면 마치 Full Duplex 같이 동작
[Simplex] 두 디바이스 간 통신선이 하나, 송신측과 수신 측이 미리 정해져 있어 한쪽으로만 전송 가능
회선 제어
[정의] 반이중(half duplex) 전송 링크에서 두 개의 스테이션이 동시에 신호를 전송하는 경우 방생하는 신호간의 충돌 현상이 발생하지 않도록 제어하는 규칙
[기법]
1. ENQ/ACK(경쟁) : 스테이션은 누구나 전송을 시작 가능, ENQ와 ACK 프레임으로 링크를 제어
- ENQ (연결 초기화) → ACK 응답(수신준비 완료) → 데이터 전송 → EOF 프레임(작업 종료)
2. Polling : 주 스테이션이 링크에 대한 제어 권한 소유
- Select 모드 : 주 스테이션이 선택 (SEL,ACK)
- Poll 모드 : 주 스테이션이 종속 스테이션에 확인 요청(없으면 NAK, 있으면 ACK 전송)
흐름제어
[정의] 수신 스테이션의 용량 이상으로 데이터가 전송되지 않도록 송신 스테이션을 제어하는 기술
[필요성] 정보(Frame) 손실 방지, 송/수신 속도,양 조절(Pacing), 수신 성능 및 버퍼 한계
* 생산자의 데이터 생성 속도와 소비자의 데이터 사용 속도 균형을 유지하는 기법
[방식]
- 송신제어 : Stop and Wait
- 전송률기반 제어 : 임계값 관리
- 윈도우 기반 : Sliding Window
Stop-and-wait
[정의] 하나의 프레임 전송 후 ACK 수신시 다음 프레임 전송하는 기법
[절차]
1. (송) 프레임 전송
2. (수) 프레임 오류 체크 2.(수)ACK/NAK 송신
3. (송) ACK이면 프레임 전송, 응답이 없으면 재전송
4. (수) EOF 프레임 수신시 종료
[장/단] (장) 구조 간단, 구현 용이, 버퍼 (단) 낮은 전송 효율, 오버헤드 발생 → 슬라이딩 윈도우
슬라이딩 윈도우
[정의] 수신 측에서 설정한 윈도우 크기만큼 송신측에서 확인 응답없이 전송할 수 있게하여 흐름을 동적으로 조절하는 제어기법
[특징] ① 상황에 따라 윈도우 크기 변경, ② TCP, HDLC, x.25등 널리 이용
* 슬라이딩 윈도우의 열림/닫힘 동작은 수신측 ACK에 따라 동적 수행
[구성요소]
- 윈도우 : 전송가능 데이터 버퍼 - 수신 윈도우(rwnd), 혼잡윈도우(cwnd)
- 윈도우 사이즈 : 전송가능 데이터 사이즈 - MIN(rwnd, cwnd)
- 윈도우 동작 : 열림(수신측으로 부터 ACK 도착), 닫힘(데이터 전송 후, 왼쪽 경계 오른쪽 이동)
[장/단]
- (장) Stop&Wait 기법의 비효율성 개선, - (단) 오류발생 가능 (Go-Back-N, 선택적 재전송 등으로 해결)
[문제점 및 해결방안]
- (문) 실리윈도우 증후군(윈도우 크기 작아 지는 경우 자주 발생, 데이터 송신 효율 저하)
- (해) Nagle’s Algorithm (지연된 전송 데이터 블록에 병합 되어 전송)
실리 윈도우 증후군
[정의] 슬라이딩 윈도우에서 송/수신의 낮은 데이터 생성/소비 속도로 적은 데이터 및 동작 효율 감소 현상
* 충분한 데이터 생성 후 전송, Buffer 공간 확보후 전송 요청으로 문제 해결
[유형]
- 송신측 Syndrome : Nagle’s 알고리즘 (버퍼 활용)
- 수신측 Syndrome : Clark’s 알고리즘 (최소 절반이상 공간 확보 이전에는 rwnd:0 으로 응답, 송신 방지)
네이글 알고리즘
[정의] 소량의 데이터가 들어오는 경우 버퍼를 두어 데이터를 한 번에 전송하는 알고리즘
[특징] TCP 효율 향상, 성능 저하 가능성(ACK 수신후 전송)
* 전송 데이터의 ACK가 수신될 때까지 버퍼에 데이터 축적후 ACK 수신후 전송
[동작절차]
1. 첫 번째 데이터 전송
2. 데이터 축적
3. 축적 데이터 전송
4. 반복 수행
* Silly 윈도우 신드롬 송신단 쪽에서 네이글 알고리즘 이용 해결
오류 제어
[정의] 송수신 데이터가 감쇄, 왜곡, 잡음 등에 의해 변형,손실,순서 어긋남 등의 오류로부터 검출, 복구, 정정을 통한 신뢰성 회복 위한 통신 에러 제어 기법
[기법종류]
1. FEC(전진오류수정) - 수신측 오류 검출/정정
- Block Code : 해밍코드, BCH 코드, RS 코드(Reed-Solomon)
- Non-block Code : Convolutional 코드(메모리를 가지는 코드), Turbo 코드(Convolution 코드 병렬 연결)
2. BEC (후진오류수정) - 수신측 오류 검출 –> 송신측 재전송
- 오류 검출 기법 : 패리티 검사, Checksum, 블록 합 검사, CRC
- 재전송(ARQ) 기법 : Stop-and-Wait, Go-Back-N, Selective, Adaptive
3. 세그먼트 재전송
- 송신측 : 확인 응답(ACK), 시간 초과 여부(RTO)를 사용하여 오류제어
- 수신측 : CRC를 이용한 오류 검사, 오류시 재전송 요청
해밍 코드
[정의] 데이터 사이 2^n단위 마다 Parity bit를 함께 전송후 수신측에서 Parity bit를 검증 오류 Bit를 찾아내는 검출/정정 기법
[특징] 1. 정정과 검출, 2. 음성 비적합, 3. 원거리 통신 용이
[도출과정]
1. 패리티 비트 계산 : 2^p >= d+p+1 ( d=데이터 비트수, p=패리티 비트 수 )
2. 데이터 배치 : 2^n 자리를 비우고(1,2,4,8,16…) 데이터 배치
3. 홀/짝 패리티 기반 체크 비트 도출 : 1(1_3_5…), 2(2,3_6,7…), 4(4,5,6,7_12,13,14,15..)
4. 패리티 비트 배치한 해밍코드 전송(데이터 + 페리티 비트)
* 해밍 코드는 오류 정정이 필요한 원거리 통신이나 신뢰기반 통신에서 활용
[검증/정정 과정]
1. 수신 데이터 배치
2. 체크 비트 확인 : 홀/짝 패리티
3. 오류 자리 확인 : 오류 패리티 값 = 오류 bit 자리
4. 오류 수정
[해밍코드 활용 사례] 디스크 (SSD, RAID-2) , 메모리(ECC Memory)