강의자료 10장

Download Report

Transcript 강의자료 10장

Part 3. 데이터 링크 계층
 10장: 오류 검출과 정정
 11장: 데이터 링크 제어
 12장: 접근 제어
 13장: 유선 LAN
 14장: 무선 LAN
 15장: 연결 장치
 16장: 무선 WAN
 17장: SONET
 18장: Frame Relay & ATM
1
10장 오류 검출과 정정
10.1
10.2
10.3
10.4
10.5
개요
블록 코딩 (생략)
선형 블록 코드 (생략) -> Parity Check
CRC
Checksum
10.1 개요
 오류 종류
 단일 비트 에러
 폭주 오류 (burst error)
3
오류 검출 기본 개념
 중복
 오류 검출은 목적지에서 오류를 검출하기 위해서 여분의 비트
들을 추가하는 중복(잉여)개념을 이용
4
복구 방법
 오류 정정 (forwarding error correction)
 오류(손상)된 비트의 개수와 위치를 알아야 함
 검출 코드와 보다 큰 크기의 오류 검출 코드 전송이 필요
 대표적인 오류정정 코드: 해밍 코드 (생략)
 재전송
 오류 검출 코드에 의해 오류의 유/무만 판단
 오류가 발생된 패킷(프레임)을 재전송
 데이터 통신에서 가장 널리 사용되는 방법
5
Dataword & Codeword
 Dataword (k bits)
 전송할 메시지를 k 비트로 구성된 데이터워드로 나눔
 Codeword (n bits = k + r bits)
 데이터워드에 중복 개념의 r 개의 비트들을 붙여서 n bit개의 코
드워드로 구성
6
Parity Check
 Simple Parity Check
 k bit개의 데이터를 n = k + 1인 n bit의 코드워드 생성
 추가된 1 비트는 패리티 비트로 불리며 코드워드의 1의 개수가
짝수가 되도록 구성
 홀 수개의 비트 오류만 검출 가능
7
2차원 Parity Check Code
8
10.4 Cyclic Redundancy Check (CRC)
 CRC 예
 데이터워드 (k = 4 bits), 코드워드(n = 7 bits), 중복비트 (r = 3
bits)로 구성
 CRC는 주어진 제수(나누는 수)에 의해 데이터워드를 나눈 후(
모듈로 2 연산), 나머지 결과를 오류 검출 코드로 생성한다.
9
모듈 연산
 법(modulus) N 이라는 제한된 정수를 사용
 0 부터 N-1까지 정수 사용
 예: 모듈로-2 연산에서 덧셈과 뺄셈
 덧셈: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 1
 뺄셈: 0 – 1 = 0 0 – 1 = 1 1 – 0 = 1 1 – 1 =0
 모듈로 2 연산: 덧셈, 뺄셈 모두 XOR 연산과 동일
10
CRC 부호화기 (Sender)
11
CRC 복호화기 (Receiver)
12
예제
 데이터워드가 11010 이고, 제수가 1011일 경우, 코드워드는
어떻게 구성되는가?
13
다항식에 의한 표현
14
CRC의 표준 제수
 CRC의 성능은 제수(나누는 수)에 따라 달라지며, 성능 측정
의 교재의 범위를 벗어남으로 생략
 CRC가 채택한 표준 다항식
15
10.5 Checksum (검사합)
 전반적인 오류 검출 성능
 CRC > Checksum
 CRC는 Shift 레지스터와 XOR 게이트로 H/W 구현이 용이하고
오류 검출이 뛰어나 데이터링크 계층에서 주로 활용
 Checksum은 S/W 구현이 용이하여, TCP/IP 등의 오류 검출
코드로 많이 사용되고 있지만, 검출 능력에 따라 CRC가 많이
선호되는 추세임
16
Checksum 개념
 데이터의 합도 함께 전송하는 개념
 5개의 4비트 숫자 (7, 11, 12, 0, 6) 전송 시에
 (7, 11, 12, 0, 6, 36) 도 함께 전송
 수신 시에 수신한 5개의 숫자 합과 전송 받은 합을 비교
 수정: 합계 값을 음수(보수)로 보냄
 (7, 11, 12, 0, 6, -36) 을 전송
 수신 시에 모든 값을 더해 0 이면 오류 없음
 문제점: 36이나 -36은 4비트 숫자로 표현이 불가능 함
 캐리가 발생하는 왼편의 비트들을 다시 오른쪽 비트로 더함
 예) 21을 4비트로 표현
 21: 10101에서 제일 왼쪽 1을 0101에 더함 => 0110 (6)으로 표현
17
Checksum 예
1 1 1 1
0 0 0 0
1
18
TCP/IP Checksum 기법
Sender site:
1. 메시지를 16-bit 워드 단위로 나눔
2. 초기 checksum 값은 0 으로 지정.
3. 모든 워드들을 1의 보수 연산으로 더함
4. 더한 결과 값을 1의 보수를 취한 다음 checksum 으로 설정하여 전송
Receiver site:
1. 메시지를 16-bit 워드 단위로 나눔
2. 모든 워드들을 1의 보수 연산으로 더함
3. 더한 결과 값을 1의 보수로 취한 경우 0 이면 에러가 없는 것, 0 이 아니면
에러가 발생한 것으로 판단
19
예제 10.23
 8 개의 문자로 구성된 Forouzan 메시지의 checksum 연산 예
20