일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ret2libc
- DP
- dtft
- 메카님
- MLFQ
- TSet
- Unity #Indie Game
- 게임 개발
- Race condition
- DSP
- RBAC
- dirty cow
- AINCAA
- linear difference equation
- Security
- STCF
- 언리얼엔진
- sampling theory
- 유니티
- MAC
- frequency-domain spectrum analysis
- Double free
- stride
- 게임개발
- 유스케이스
- CTF
- pdlc
- 운영체제
- Rr
- 배경 그림
- Today
- Total
다양한 기록
Link layer - error detection, correction 본문
프레임 구조
Ethernet II
Preamble | Dst addr | Src addr | Type | Data | FCS |
IEEE 802.3
Preamble | SFD | Dst addr | Src addr | Length | DSAP | SSAP | Ctrl. | Data | FCS |
링크 레이어는 프로토콜이 많고, 각 구조마다 가지는게 다름
그래도 비슷하게 가지는 속성들은 존재
Peamble: 데이터 동기화를 위한 제어 신호. 프레임의 속도를 맞추고 실제 데이터의 시작을 알려 제대로 인식할 수 있도록 도와줌
SFD: 데이터의 시작을 알림
Dst addr: 목적지의 맥 어드레스
Src addr: 출발지의 맥 어드레스
Type: 상위 계층의 프로토콜 정보
Length: 0x0600보다 작으면 IEEE 802.3 Frame, 크면 Ether Type
DSAP: 목적지 3계층 프로토콜 (어떤 프로토콜로 전달 된다)
SSAP: 출발지 3계층 프로토콜 (어떤 프로토콜에서 전달된다)
FCS: Frame Check Sequence .. 오류 검출을 위한 필드
Error detection, correction
에러가 있는 프레임은 링크에서 처리
중간에 에러 있는 거 알았는데 굳이 계속 보내면 트래픽 낭비임
EDC = Error Detection and Correction bits
데이터 발견과 수정을 위해 추가적인 데이터 추가
정확히는 FCS가 EDC 안에 포함되는 개념임
100% 정확하지 않음, EDC가 길 수록 감지 및 수정이 좋지만 문제는 전송 시간이 길어짐
패리티 체킹
간단하지만 비효율적인 EDC 방법
싱글 비트 패리티
1001 | 0
이 경우 에러 감지만 가능
2차원 비트 패리티
1 | 0 | 1 | 0 | 1 | 1 |
1 | 0 | 1 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 0 | 1 |
0 | 0 | 1 | 0 | 1 | 0 |
행으로 한 번, 열로 한 번 패리티 비트를 만들고 체트
문제가 생긴 패리티의 교차 지점이 문제가 생긴 비트 -> 수정
* Internet checksum
트랜스포트 레이어(TCP, UDP)에서 사용
전송받은 패킷의 에러 감지가 목적
세그먼트를 16비트 단위로 나누어 더하고 1의 보수를 취하는 방법
수신측은 재계산하고 체크섬 값을 비교해서 다르면 에러 감지
CRC (Cyclic rebundancy check)
강력한 에러 검사 방법
데이터 비트: D
특정한 비트 패턴: G
r는 G의 비트길이 - 1
D의 2^r승을 G로 나눈 나머지 = R
** 주의할 건 나눌 때 XOR 연산을 함
R = remainder[ D*2^r / G ]
송신자는 [D, R]을 보냄
수신자는 [D, R] / G가 0으로 나누어 떨어지지 않으면 에러가 발생한 것으로 판단하고 버리거나 재전송 요구
예시
D: 101110
G: 1001
D*2^3 = 101110000
=> R = 011
[D, R] = 101110011
101110011 % 1001 = 0
=> 문제 없음
Error Correction
Forward error correction (FEC), 채널 코딩, 해밍 코드 등의 방법이 존재
'네트워크' 카테고리의 다른 글
Multiple access protocols/ Random access (0) | 2024.06.07 |
---|---|
Multiple access protocols/ 채널 분할, taking turns (0) | 2024.06.07 |
Link layer - introduction (0) | 2024.06.07 |
멀티캐스팅 (0) | 2024.06.07 |
네트워크 매니지먼트와 SNMP (0) | 2024.06.07 |