개요
인터넷
- 라우터나 스위치와 같은 장치들을 연결하는 네트워크의 조합
- 만약 패킷이 호스트에서 다른 호스트로 전달되면, 이것은 이러한 네트워크들을 통과하는 경로가 필요
노드와 링크
- 응용, 전송, 네트워크층의 전송은 종단-대-종단 간에 이루어 지지만, 데이터 링크층의 통신은 노드-대-노드
- 인터넷에서 한 지점의 데이터 단위는 다른 지점에 도달하기 위해 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에서 널리 사용
순환 코드의 이점
순환 코드의 이점
- 단일 비트, 두 비트, 홀수 개의 비트 및 폭주 오류를 검출하는데 우수
- 하드웨어나 소프트웨어로 쉽게 구현
- 하드웨어로 구현하면 특히 빠름
- 이로 인해 많은 네트워크에서 순환 코드가 사용
검사함(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 필드 유형
- 플래그 필드(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판' 책을 공부하여 작성 하였습니다.
'데이터 통신' 카테고리의 다른 글
데이터 통신과 네트워킹 6판 Chapter 2 응용 연습문제 풀이 (1) | 2022.04.09 |
---|---|
데이터 통신과 네트워킹 Chapter3 요약2 (0) | 2022.03.30 |
데이터 통신과 네트워킹 6판 Chapter 2 기본 연습문제 풀이 (0) | 2022.03.27 |
데이터 통신과 네트워킹 Chapter 2 요약2 (0) | 2022.03.19 |
데이터 통신과 네트워킹 6판 Chapter 1 연습문제 풀이 (0) | 2022.03.18 |