대학교/데이터통신

데이터 통신 - (5) 프레임 짜기, 오류 제어

매 석 2023. 5. 1. 22:41
반응형

- 노드와 링크

데이터 링크층의 통신은 노드-대-노드이다.

LAN과 WAN은 라우터를 통해 연결된다.

호스트와 라우터의 경우는 노드로, 그 사이의 네트워크를 링크로 표현한다.

- 링크의 2가지 유형

1. 점-대-점 링크 : 서로 연결된 두 개의 단말에만 전념한다.

2. 브로드캐스트 링크 : 링크는 몇 개의 기기 쌍 사이에서 공유한다.

 

- DLC

데이터 링크 제어(DLC) : 점-대-점과 브로드캐스팅 링크에 연관된 모든 공통 사항을 다룬다.

매체 접근 제어(MAC) : 브로드캐스트와 관련된 특별한 사항을 다룬다.

- DLC의 기능

1. 프레임 짜기

- 송신자와 수신자의 주소를 추가하여 한 발신지에서 한 목적지로 가는 메시지를 구분한다.

고정 길이 프레임 짜기에서는 CELL이라는 고정 길이의 프레임을 사용한다.

가변 길이 프레임 짜기에서는 프레임이 끝나는 곳과 다음 프레임이 시작하는 곳을 지정해야 한다.

+ 1. 문자-중심 프레임 짜기

-> 전달되는 데이터는 부호화 시스템의 8비트 문자이다.

시작과 마지막에는 8비트 flag가 추가된다.

- 바이트 채우기는 텍스트에 플래그나 탈출문자가 있을 때마다 여분의 1문자를 추가하는 처리이다.

2. 비트 중심 프로토콜

-> 프레임의 데이터 부분을 전부 bit 열로 인식한다.

플래그는 01111110 패턴을 사용한다.

- 비트 채우기는 0뒤에 연속하는 5개의 1이 있게 되면 0을 추가로 채워

수신자는 데이터 속의 01111110을 플래그로 오인하지 않게 한다.

2. 흐름과 오류 제어

- 메시지를 여러 개의 작은 프레임으로 나누면 단일 비트 오류는 해당 프레임에만 영향을 미친다.

- 단일 비트 오류 : 주어진 데이터 단위 중 오직 하나의 비트만이 1에서 0 또는 0에서 1로 변경되는 오류

- 폭주 오류 : 데이터 단위에서 2개 이상의 연속적인 비트가 1에서 0 또는 0에서 1로 바뀌는 오류

- 중복(redundancy)

오류를 검출하거나 정정하는 개념을 말한다.

중복 비트들로 인해 수신자는 오류를 찾아내거나 정정할 수 있다.

- 오류 검출

오류가 생겼는지 알아내는 것

오류의 여부만 딱 확인한다.

- 오류 정정

정확하게 몇 비트가 어디가 잘못 되었는지 알아내는 것

- 부호화 : 중복은 여러 가지 부호화 방법을 이용하여 달성된다.

블록 부호화 : 데이터워드라는 k 비트의 블록으로 메시지를 나눈다.

각 블록에 r개의 중복 비트를 더하여 길이가 n=k+r이 되게 한다.

결과로 얻는 n비트 블록을 코드워드라고 한다.

블록 부호화는 1대1이기에 동일한 데이터워드는 동일한 코드워드로 부호화된다.

수신자는 유효 코드워드의 목록을 가지고 찾을 수 있다.

원래의 코드워드가 무효 코드워드로 바뀌었다. -> 유효하지 않기에 버려짐

-> 오류 검출 코드는 찾도록 설계된 오류만 찾아낼 수 있다. 다른 유형의 오류는 검출하지 못한다.

- 해밍 거리

두 개의 같은 크기의 워드 간에 차이가 나는 비트의 개수

두 워드에 XOR 연산을 해서 얻은 결과 값의 1의 개수

EX) d(000,011) -> 000 111 XOR -> 011 -> 1의 개수가 2개 즉 2

- 오류 검출을 위한 최소 해밍 거리

유효 코드 사이의 최소 해밍 거리가 S+1이면 수신된 코드는 잘못 인식될 수 없다.

(S+1은 S개 이하의 오류만 검출할 수 있다는 것을 보장한다.)

- 선형 블록 코드

두 유효한 코드워드에 대해 XOR 연산을 하면 다른 유효한 코드워드를 생성하는 코드이다.

최소 해밍 거리는 0이 아닌 가장 적은 수의 1을 가지고 있는 코드워드의 1의 개수이다.

- 패리티 검사 코드

선형 블록 코드이며, K비트 데이터워드를 N비트 코드워드로 바꾼다.

추가된 비트는 패리티 비트라고 하며 전체 코드워드의 1의 개수가 짝수가 되도록 선택한다.

어떤 경우에는 홀수가 되도록 선정하기도 한다.

최소 해밍 거리는 2이며, 이는 1비트만 오류 검출이 가능하다는 것을 의미한다.

데이터워드에 패리티 비트를 추가하여 최종적으로 코드워드의 1의 개수가 짝수가 되도록 한다.

신드롬은 수신된 워드의 1의 개수가 짝수이면 0, 아니면 1이다.

0이면 오류가 없는 것이고, 1이면 데이터 부분을 버린다.

-> 단순 패리티 검사 코드는 홀수 개의 오류를 검출한다.

- 순환 코드

하나의 특별한 성질이 있는 선형 블록 코드이다.

코드워드를 순환시켜 다른 코드워드를 얻는다.

EX) 1011000 -> 0110001

- 순환 중복 검사(CRC)

XOR로 진행한다. 역인 곱하기는 AND연산으로 진행된다.

이 결과 신드롬이 0이면 오류가 없는 것이고 그렇지 않으면 오류가 있는 것이다.

+ 요구사항

패턴은 적어도 2비트는 되어야하며, 가장 오른쪽과 왼쪽 비트는 모두 1이어야 한다.

CRC의 성능

단일 오류 검출 가능, 2진 나눗셈을 이용하여 (11)로 나눌 수 있다면 모든 홀수 개의 오류 검출 가능,

폭주 오류를 검출하는데 우수하다.

- 검사합 : 모든 길이의 메시지에 적용할 수 있는 오류 검출 기법이다.

 

 

- 2가지 DLC 프로토콜

- 고급 데이터 링크 제어(HDLC) : 점-대-점과 다중점 링크 위에서 통신을 위한 비트 중심 프로토콜이다.

정규 응답 모드(NRM), 비동기 균형 모드(ARM)을 제공한다.

NRM에서 지국 구성은 불균형이다. 주국이 하나 있고 여러 개의 종국이 있다.

주국은 명령을 보낼 수 있는데 종국은 단지 명령에 응답만 가능하다.

ABM에서는 구성은 균형적이다. 링크는 점-대-점이며, 각 지국은 주국과 종국의 역할을 할 수 있다.

- HDLC 프레임 종류

1. 정보 프레임(I) : 네트워크층으로부터 사용자 데이터를 전달하기 위한 설계

2. 감시 프레임(S) : 피기배킹이 불가능하거나 부적절할 때 흐름 제어와 오류 제어를 위해 사용

3. 무번호 프레임(U) : 서로 연결된 장치들 간에 세션 관리와 제어 정보를 교환하는 용도로 사용

- HDLC 필드 유형

1. 플래그 필드 : 프레임의 시작과 끝을 인식하고 동기화 패턴 01111110을 갖는 필드

2. 주소 필드 : 종국의 주소를 가지고 있는 필드

3. 제어 필드 : 흐름과 오류 제어에 사용되는 필드

4. 정보 필드 : 네트워크층의 사용자 데이터를 포함하거나 관리 정보를 포함한다.

5. FCS 필드 : HCLD의 오류 검출 필드이며, 2바이트나 4바이트 CRC를 포함한다.

I 프레임은 첫번째 비트가 0이다.

N(S) : 프레임 순서 번호(0~7)

N(R) : ACK 번호(확인 응답 번호)

P/F : 1일 경우만 의미가 있다. Poll : 프레임이 주국에서 종국으로, Final : 프레임이 종국에서 주국으로

S 프레임은 처음 두 비트가 1,0이다.

부호(CODE)라 불리는 2비트는 S 프레임 자체의 유형을 정의한다.

00: 수신준비, 10: 수신불가, 01:거부, 11: 선택적 거부

U 프레임은 32개의 U 프레임을 구분한다.

- 점-대-점 프로토콜(PPP)

점-대-점 접근을 위한 가장 널리 사용되는 프로토콜

데이터 전송을 제어하고 관리하기 위해서는 데이터 링크층에서 PPP가 필요

1. 플래그 필드 : 01111110 값을 가진 1바이트 필드

2. 주소 필드 : 상수 값이고 11111111(브로드캐스트 주소)로 설정

3. 제어 필드 : HDLC의 U프레임으르 본뜬 상수 값 00000011로 설정

4. 프로토콜 필드 : 데이터 필드에 사용자 데이터 또는 다른 정보가 들어있는 것을 정의

5. 페이로드 필드 : 사용자 데이터나 다른 정보를 전송

6. FCS : 2바이트 또는 4바이트 표준 CRC

바이트 채우기 : PPP의 탈출 바이트는 01111101이다.

- 천이 단계

정지 -> 통신 시작 -> 설정 -> 인증 OR 네트워크 -> OPEN -> 해제 -> 정지

- 다중화

1. 링크 제어 프로토콜(LCP) : 링크의 설정, 유지, 구성과 해제를 담당

2. 인증 프로토콜(AP) : 자원들에 접근하기를 원하는 사용자의 신원을 증명

PAP : 패스워드 인증 프로토콜

CHAP : 챌린지 핸드셰이크 인증 프로토콜

3. 네트워크 제어 프로토콜(NCP) : 협상하고자 하는 네트워크 프로토콜과 링크 설정, 유지, 종료를 수행

EX) IPCP

- 다중링크 PPP

PPP는 단일 채널 점-대-점 물리 링크를 위해 설계되었다.

단일 점-대-점 회선에서 다중 채널이 가능해짐에 따라 다중링크 PPP가 개발되었다.