본문 바로가기
데이터 통신

데이터 통신과 네트워킹 Chapter3 요약1

by IT 정복가 2022. 3. 28.
728x90

개요

인터넷

- 라우터나 스위치와 같은 장치들을 연결하는 네트워크의 조합

- 만약 패킷이 호스트에서 다른 호스트로 전달되면, 이것은 이러한 네트워크들을 통과하는 경로가 필요

 

노드와 링크

- 응용, 전송, 네트워크층의 전송은 종단-대-종단 간에 이루어 지지만, 데이터 링크층의 통신은 노드-대-노드

- 인터넷에서 한 지점의 데이터 단위는 다른 지점에 도달하기 위해 LAN과 WLAN과 같은 많은 네트워크를 통해 전달

- LAN과 WAN은 라우터를 통해 연결

- 노드와 링크

          (1)일반적으로 두 종단의 호스트와 라우터를 노드(node)로, 그 사이의 네트워크를 링크(link)로 표현한다.

          (2)2번째, 4번째 링크 = WAN(To other ISP), 1,3,5 링크 = LAN

링크의 두 가지 유형

- 데이터 링크층은 전송매체의 모든 성능을 사용

- 점-대-점 링크에서 링크는 서로 연결된 두 개의 단말에만 전념(예: 일반 전화기의 전화선 사용)

- 브로드캐스트 링크에서 링크는 몇 개의 기기 쌍 사이에서 공유(예: 핸드폰의 공기 사용)

 

두개의 부계층

- 링크 계층에서 제공하는 서비스와 기능을 쉽게 이해하기 위해 2개의 부계층으로 구분

- 데이터 링크 제어(Data Link Control: DLC): 점-대-점과 브로드캐스트 링크에 연관된 모든 사항을 다룸

- 매체 접근 제어(Media Access Control: MAC): 브로드캐스트와 관련된 특별한 사항을 다룸

 

데이터 링크 제어

두 인접한 노드 사이의 통신을 위한 절차를 다룸

 

데이터 링크 제어(DLC) 기능

(1)프레임 짜기

(2)흐름과 오류 제어

 

프레임 짜기(Framing)

- 물리층이 비트 형태의 통신이라면, 데이터 링크층은 비트들을 프레임 안에 넣어 각 프레임이 다른 프레임과 구분되는

  프레임 형태의 통신

- 데이터 링크층의 프레임 짜기로 인해 송신자와 수신자의 주소를 추가하여 발신지에서 목적지로 가는 메세지 분리

- 목적지 주소는 패킷이 가야할 곳을 규정하며, 송신자 주소는 수신자로 하여금 받았다는 것을 응답할 수 있도록 도와줌

- 전체 메세지를 하나의 프레임에 다 넣지 않는 이유 중 하나: 흐름 제어와 오류 제어에 비효율 >> 비트 중 하나만

  오류가 발생해도 전체 프레임을 다시 전송해야 함

- 프레임 짜기

          (1)고정 길이 프레임: 고정 길이(예: ATM 통신의 cell)

          (2)가변 길이 프레임: 프레임이 끝나는 곳과 다음 프레임이 시작하는 곳 지정(예: LAN)

                    (a)문자 중심 프로토콜

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

                              - 시작과 마지막에 플래그 추가

                              - 문자 중심 프로토콜 프레임

                    (b)비트 중심 프로토콜

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

                              - 플래그는 "01111110" 비트 패턴 사용

                              - 비트 중심 프로토콜 프레임         

 

* 문자 중심 프로토콜의 프레임

- 헤더: 발신지와 목적지 주소, 그 밖의 제어 정보 포함

- 트레일러: 오류 검출 또는 정정을 위한 중복 비트 포함

- 플래그: 프레임을 다음 프레임과 구분하기 위한 8bit 구별자가 프레임의 앞뒤에 존재

 

* 바이트 채우기(stuffing)와 빼기(unstuffing)

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

 

* 비트 중심 프로토콜의 프레임

- 플래그 비트(01111110:[7E])를 프레임의 구분자로 사용

 

*비트 채우기와 빼기

- 비트 채우기는 데이터 내용 중 0 뒤에 연속하는 5개의 1이 있게 되면 0을 추가로 채우는 과정임

 

오류 제어

- 오류 제어는 오류 검출과 오류 정정(프레임 재전송)

- 단일 비트 오류(single-bit error): 주어진 데이터 단위(예를 들어 한 바이트의 문자, 또는 패킷)중 오직 하나의

  비트만이 1에서 0 또는 0에서 1로 변경되는 오류

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

 

오류의 유형

단일 비트 오류와 폭주 오류

- 폭주 오류의 가능성이 더 높음. 데이터 전송 중 잡음의 지속시간이 큰 영향을 끼침

  (예: 1Mbps로 데이터 전송 중에 0.01초 동안 잡음이 인가되었다면 10,000개의 비트가 영향을 받음)

 

중복

중복(redundancy) > 추가분의 데이터

- 오류를 검출하거나 정정하는 것의 중심 개념

- 오류를 검출하거나 정정할 수 있기 위해서는 데이터 이외에 추가 비트들을 보내야 하는데, 이 중복 비트들은 송신자에

  의해 첨가되며 수신자가 제거함

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

 

검출 대 정정(detection vs correction)

오류 검출

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

- 간단히 오류가 있느냐 없느냐만 확인

- 오류가 몇 개인지 조차 알 필요가 없음

 

오류 정정

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

 

부호화

송신자는 중복 비트와 실제 데이터 비트들 사이에 어떤 관련을 짓게 하는 과정을 통해 중복 비트들을 보냄

 

수신자는 이 두 종류의 비트들 사이의 관계를 확인하여 오류를 검출한거나 정정함

 

부호화 방법은 블록 부호화(block coding)와 컨볼루션 부호화(convolution coding)로 나뉨

 

블록 부호화

블록 부호화 

- 데이터워드(dataword)라는 k비트의 블록으로 메세지를 나눔

- 각 블록에 r개의 중복 비트를 더하여 길이가 n=k+r이 되도록 함

- 결과로 얻는 n 비트 블록을 코드워드(codeword)라고 불림

 

오류 검출(Error Detection)

다음 두 조건으로 수신자는 원래 코드워드가 바뀐 것을 확인

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

- 원래의 코드워드가 무효 코드워드(invalid codeword)로 바뀌었다.

 

블록 부호화에서 오류 검출 과정

해밍 거리

- 오류 제어를 위해 해밍 거리(hamming distance) 이용

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

- 만약 발신되고 수신된 코드워드 사이의 해밍거리가 0이 아니라면 코드워드가 전송되는 동안에 오류가 발생된 것이다

- 해밍거리 d(x, y): 두 워드 x, y 사이의 해밍거리

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

 

선형 블록 코드(Linear block code)

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

 

선형 블록 코드의 최소 해밍 거리

- 0이 아닌 가장 적은 수의 1을 가지고 있는 코드워드의 1의 개수

 

패리티 검사 코드

- 선형 블록 코드

- k비트 데이터워드를 n=k+1이 되도록 n비트 코드워드로 바꾸는 것

- 추가된 비트는 패리티 비트라고 불리며 전체 코드워드의 1의 개수가 짝수가 되도록 선정(홀수로 사용하는 경우도 있음)

- 최소 해밍 거리 dmin=2이며 이는 코드가 단일비트 오류 검출 코드라는 것을 의미

*단순 패리티 검사 코드 C(5,4)

Datawords Codewords Datawords Codewords
0000 00000 1000 10001
0001 00011 1001 10010
0010 00101 1010 10100
0011 00110 1011 10111
0100 01001 1100 11000
0101 01010 1101 11011
0110 01100 1110 11101
0111 01111 1111 11110

 

패리티 검사 코드

단순 패리티 검사 코드의 부호화기와 복호화기

- Generator: 모듈러 2연산하여 그 결과가 패리티비트인데 1의 개수가 짝수이면 0이고 홀수이면 결과가 1이다.

- Checker: 수신된 5비트에 대해 덧셈을 하여 그 결과를 신드롬 이라 하는데 1의 개수가 짝수면 0이고 홀수면 1이다.    0이면 데이터 부분을 취하고 1이면 데이터워드를 생성하지 않고 버린다.

 

순환 코드

순환 코드(cyclic code)

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

- 코드워드를 순환시켜 다른 코드워드를 얻음

          1) 예를 들어, 1011000이 코드워드이면 1개의 비트를 왼쪽으로 이동시켜 얻는 코드워드 0110001도 코드워드

          2) 맨 오른쪽 등식에서는 첫 번째 워드의 마지막 비트가 두 번째 워드의 첫 번째 비트가 됨

 

순환 중복 검사

순환 중복 검사(CRC, cyclic redundancy check)

- LAN이나 WAN에서 널리 사용

CRC 코드 C(7,4)의 예
CRC 부호기와 복호기
CRC 부호기의 나눗셈
두 가지 경우의 CRC 복호기의 나눗셈

순환 코드의 이점

순환 코드의 이점

- 단일 비트, 두 비트, 홀수 개의 비트 및 폭주 오류를 검출하는데 우수

- 하드웨어나 소프트웨어로 쉽게 구현

- 하드웨어로 구현하면 특히 빠름

- 이로 인해 많은 네트워크에서 순환 코드가 사용

 

검사함(checksum)

- 모든 길이의 메세지에 적용할 수 있는 오류 검출 방법

 

두가지 DLC 프로토콜

HDLC와 PPP

 

고급 데이터 링크 제어(HDLC, High-level Data Link  Control)

- 점-대-점과 다중점 링크 위에서 통신을 위한 Bit 중심 프로토콜

- 두 가지의 전송 모드를 제공

          1) 정규 응답 모드(NRM, normal response mode)

          2) 비동기 균형 모드(ARM, asynchronous balanced mode)

* 정규 응답 모드(NRM, normal response mode)

- 지국 구성이 불균형적

- 주국(Primary)이 하나 있고 여러 개의 종국(Secondary)이 있음

- 주국은 명령을 보낼 수 있는데 종국은 단지 그에 대한 응답만 할 수 있음

- 점-대-점과 다중점 링크에서 모두 사용

정규 응답 모드

*비동기 균형 모드(ABM, asynchronous balanced mode)

- 구성이 균형적

- 링크는 점-대-점

- 각 지국은 주국이자 종주국

비동기 균형 모드

프레임

HDLC 프레임 종류

- 각 유형은 서로 다른 유형의 메세지 전송을 위한 봉투(envelope)로써 동작

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

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

3) 무번호 프레임(U-프레임, unnumbered frames): 시스템 관리를 위해 서로 연결된 장치들 간에 세션관리와 제어 정보를 교환하는 용도로 사용

HDLC 프레임

HDLC 필드 유형

- 플래그 필드(flag field): 프레임의 시작과 끝을 인식하고 동기화 패턴 01111110을 갖는 필드

- 주소 필드(address field): 종국의 주소를 가지고 있는 필드 1 또는 수 Byte

- 제어 필드(control field): 흐름과 오류 제어에 사용되는 필드 1 또는 2 Byte

- 정보 필드(information field): 네트워크층의 사용자 데이터를 포함하거나 관리 정보를 포함하며, 필드의 길이는 네트워크마다 다를 수 있음

- FCS 필드(frame check sequence field): HDLC의 오류 검출 필드이며, 2바이트나 4바이트 CRC를 포함

 

다양한 프레임 종류에 대한 제어 필드 형식

I-프레임의 제어 필드

- 제어필드의 첫 비트가 0이면 I-프레임을 의미

- N(S): 0부터 7까지의 프레임 순서 번호

- N(R): 피기배킹할때 확인 응답 번호

- P/F: 폴(poll) 또는 파이널(final): 1일 경우만 의미를 가지면 프레임이 주국에서 종국으로 보내졌을 때는 poll, 종국에서 주국으로 보내졌을 때는 final

 

S-프레임을 위한 제어 필드

- 처음 2비트가 10이면 S-프레임

- N(R): ACK 번호 또는 NAK(negative ACK) 번호

- Code(2bits)

     00: Receive Ready(RR), 10: Receive not ready(RNR)

     01: Reject(REJ), 11: Selective reject(SREJ): 수신자는 프레임을 저장하거나 거절한다.

 

U-프레임을 위한 제어 필드

- 정보필드에는 사용자 데이터가 아니라 시스템 관리 정보용으로 사용

- Code로 표현된 5비트를 사용하여 32개의 U 프레임을 구분


모든 내용은 '데이터 통신과 네트워킹 6판' 책을 공부하여 작성 하였습니다.

728x90