강의자료 11장 - 데이터링크 제어

Download Report

Transcript 강의자료 11장 - 데이터링크 제어

11장 데이터링크 제어
11.1
11.2
11.3
11.4
11.5
11.6
11.7
프레임 짜기
흐름 및 오류 제어
프로토콜
무잡음 채널
잡음 있는 채널
HDLC
점 대 점 프로토콜
개요
데이터링크 계층 기능
데이터링크 제어: 11장
매체 접근 제어: 12장
데이터링크 제어 기능
프레임 짜기(생성)
흐름제어 기능
에러 제어 기능
2
11.1 프레임 생성(FRAMING)
 고정크기 프레임
 항상 고정 길이로 프레임을 구성
 예 : ATM 광역네트워크의 셀(cell)
 가변 크기 프레임
 LAN 등의 대부분의 패킷 망에서 사용
 종류
 Character-oriented protocol (문자 중심 프로토콜)
 Bit-oriented protocol (비트 중심 프로토콜)
3
Character-oriented protocol (문자 중심 프로토콜)
 전체 프레임은 ASCII 코드 형태의 8비트 문자(부록 A)들로 구
성됨
 프레임 동기화: 프레임 시작, 끝 표시 (Flag 문자)
 예전에 문자열 기반의 통신 방식에서 많이 사용되었으나 현
재는 거의 사용되지 않음
 문자 중심 프로토콜 프레임 형식
4
바이트 스터핑(stuffing)
 순수 데이터 영역에 플래그로 사용되는 패턴이 있을 경우 이
를 플래그로 오인하지 않게 하기 위한 것
5
Bit-oriented protocol (비트 중심 프로토콜)
 프레임을 전부 bit 열로 인식
 프레임 동기화: 플래그로 “01111110” 비트 패턴 사용
 현재 대부분의 프로토콜은 Bit-oriented
 비트 중심 프로토콜의 프레임 형식
6
비트 스터핑(stuffing)
 수신자가 데이터 속에 있는 “01111110”을 플래그로 오해하
지 않도록 “0” 다음에 연속되는 “1”이 다섯 개 있으면 여분의
“0” 비트를 추가
7
11.2 흐름 제어 및 오류제어
 데이터 링크 제어의 가장 중요한 기능
 흐름 제어 (flow control)
 송신자가 확인응답을 받기 전에 보낼 수 있는 데이터의 양을 제
한하기 위해 사용하는 일련의 절차
 오류 제어 (error control)
 프레임 전송 시 발생한 오류(손상, 유실) 탐지
 복구
 데이터 재전송을 요구하는 ARQ(Automatic Repeat Request, 자동
반복 요구)를 기반으로 한다.
8
11.3 PROTOCOLS
9
11.4 무잡음(NOISELESS) CHANNELS
 이상적인(오류가 없는) 물리 링크를 가정, 오류 제어가 필요
없음
 두 가지 종류
 Simplest Protocol
 Stop-and-Wait Protocol (흐름 제어 포함)
10
Simplest Protocol
 흐름 및 오류 제어가 없고 단 방향 전송만 가정
11
흐름 제어의 필요성
 수신 측의 프레임 처리 속도보다 프레임 송신 속도가 더 빠르
면 수신된 프레임들은 일단 버퍼 등에 저장되어야 함
 버퍼가 넉넉하지 못한 경우 프레임은 폐기될 수 있음
 즉, 수신 측의 상태를 송신 측에게 전달할 방법이 필요
12
Stop-and-Wait Protocol
 한 개의 프레임 전송 후, 수신 측의 ACK(확인응답)을 받을 때
까지 기다렸다가 전송
 수신 측의 버퍼 크기: 하나의 프레임을 저장할 크기
13
Stop-and-Wait Protocol 예
14
Stop-and-Wait에서 하나의 프레임 전송에 소요되
는 시간
 Latency = TX + 2Tp (Tque, Tproc, Tax 는 생략)
Receiver
Sender
Propagation Time (Tp)
Frame
Transmission Time (Tx)
Queuing Time (Tque)
Processing Time (Tproc)
Propagation Time (Tp)
ACK
ACK TX (Tax)
15
Stop-and-Wait 전송 효율(Utilization)
 예제
 두 시스템 간의 거리는 10 Km, 데이터 프레임 길이는 500bit, 전
송률은 10 Mbps일 경우, Stop-Wait 방식의 흐름 제어 프로토콜
의 전송 효율은 얼마인가? (단 전송 속도는 2 X 108 m/s로 가정)
16
11.5 잡음 있는(NOISY) CHANNELS
 오류가 존재하는 물리 채널에서 사용할 수 있는 흐름 제어 +
오류 제어 프로토콜 기법
 Stop-and-Wait Automatic Repeat Request
 Go-Back-N Automatic Repeat Request
 Selective Repeat Automatic Repeat Request
17
Stop-and-Wait ARQ
 손상 프레임 탐지: 오류 검출 코드 사용
 유실 프레임 탐지: 재전송 타이머 및 순서번호 사용
 송신 측에서 전송된 프레임의 사본을 가지고 있다가 타이머가 만
료되면 프레임을 재전송 수행
 재전송 타이머 만료되기 전에 ACK를 받으면 재전송 타이머 해제
 순서 번호
 stop-&-wait ARQ에서는 프레임에 적어도 0, 1의 두 가지의 순서 번호
가 필요하다.
Data
ACK
Data
재전송
타이머
Data(new)
X
ACK
Data(재)
18
Stop-and-Wait ARQ 동작 예
Data 0
ACK 1
Data 1
ACK 0
 Stop-and-Wait ARQ 순서 번호
 0, 1 이 반복 되는 순서 번호 사용 (모듈로-2)
 ACK의 순서 번호
 다음에 받기를 기대하는 순서 번호를 사용
19
예제 11.3
20
Sliding Window 흐름 제어
 앞에서 살펴본 봐와 같이, a 값이 네트워크 환경에서 stopand-wait ARQ 의 전송 효율은 많이 떨어진다.
 전송 효율을 높이기 위해서는 ACK를 받기 전에, 이후의 프레
임들을 연속적으로 전송할 수 있어야 한다.
 이러한 형태(ACK 수신 이전에 다음 프레임들을 전송할 수 있
는)의 흐름 제어 기법을 sliding window 흐름 제어라고 한다.
흐름 제어
Stop-&-Wait
Sliding Window
오류 제어
Stop-&-Wait ARQ
Go-Back-N ARQ
Selective Repeat ARQ
21
Sliding Window 흐름 제어 기법
 Sequence Size: 2m (m: 순서 번호 필드 크기)
 0, 1, 2, … 2m-1, 0, 1, 2 …
 ex) m=4, 0 ~ 15
 Window Size (Ssize / W)
 수신 버퍼의 크기 (최대 저장할 수 있는 프레임 개수)
 송신 측에서는 이 프레임 수만큼 ACK 받기 전에 전송할 수 있음
 ex) Ssize = 15, 최대 15개의 프레임은 버퍼에 저장할 수 있음
 송신 측에서는 위에 정해진 수에 따라 수신 측의 버퍼 상태를
예측할 수 있음
22
Sliding Window에서 송신 window 예
 m=4, Ssize = 15인 경우
23
Go-Back-N ARQ (1)
 오류가 발생한 N번 부터 재전송하는 오류 제어 기법
 재전송 타이머
 전송 프레임마다 송신 측에서 재전송 타이머를 동작
 ACK
 수신 측에서 순서가 맞지 않는 프레임 수신
 프레임을 단순히 폐기함
 두 가지 방식
 No Action (ACK를 보내지 않음): 송신 측에서 재전송 타이머에 의해
재전송됨
 NAK (Negative ACK): 재전송 요구, ex) NAK 4: 4번부터 재전송 요구
 ACK는 누적된 개념
 ex) ACK 5: 4번까지 모든 프레임을 잘 받고 5번을 기다리고 있음
24
Go-Back-N ARQ (2)
 Go-Back-N ARQ의 Window Size 제한
 Window Size < Sequence Size (2m)
25
예제 11.16 (누적 ACK 개념)
26
예제 11.17 (재전송 예)
27
Go-Back-N ARQ .vs. Stop-&-Wait ARQ
 Stop-&-Wait ARQ는 Go-Back-N ARQ의 Window Size가 1인 특
수한 경우로 볼 수 있음
28
Selective-repeat ARQ 등장 배경
 Go-back-N ARQ 문제점
 순서가 맞지 않는 프레임을 폐기함으로써 불필요한 재전송 발
생
 특히 a (Tp/Tx)가 큰 네트워크 환경에서는 재전송에 의한 대역
폭 낭비가 심각함
 Selective-repeat ARQ
 오직 오류가 발생한 프레임만 재전송
 수신 측의 부담이 커짐
 재 순서화(reordering) 기능이 필요
 여러 개의 갭(gap)이 발생할 수 있음
29
Selective-repeat ARQ 기법
 기본 메커니즘은 Go-Back-N과 흡사
 NAK (Negative ACK) 사용
 NAK 3: 3번 프레임 재전송 요구
 NAK 2-4, 6: 2, 3, 4, 6 프레임 재전송 요구
 Selective-repeat ARQ의 Window Size 제한
 Window Size <= (Sequence Size (2m)) / 2 = 2m-1
30
Selective repeat ARQ 송/수신 윈도우
 송신 윈도우
 수신 윈도우
31
Selective repeat ARQ 동작 예제
32
Go-Back-N .vs. Selective Repeat
 a 값이 큰 네트워크 환경에서는 Selective repeat 방식의 효율
이 우수.
 그 외의 경우에는 selective repeat 방식보다 단순한 Go-backN을 선호함
 일반적으로 Go-back-N을 기본 구현, selective repeat는 옵션 기
능으로 구현
33
Sliding Window 흐름 제어 효율
 sliding window 시, 효율 (W: window size)
 예제
 두 시스템 간의 거리는 40 Km, 데이터 프레임 길이는 500bit, 전
송률은 10 Mbps일 경우, Sliding Window 방식의 흐름 제어를 사
용하며 수신 버퍼의 윈도우 크기는 5일 때, 전송 효율은 얼마인
가? (단 전송 속도는 2 X 108 m/s로 가정)
34
Piggy backing (피기백킹)
 실제 프로토콜 구현에서는 full duplex 방식으로 데이터 전송이 이
루어질 수 있음
 이 경우, 별도의 ACK 프레임을 만들어 전송할 필요 없이 전송 프레
임에 ACK 정보를 동시에 전송하는 방식을 피기백킹 이라고 함
 Data Frame (seq, ack) 방식으로 표현
Data (0, 0)
Data (0, 1)
Data (1, 1)
Data (2, 1)
Data (1, 3)
ACK 2
35
11.6 HDLC (High Level Data Link Control)
 역사적(70년대부터)으로 널리 사용되었던 OSI 표준 데이터
링크 제어 프로토콜
 현재 표준화된 IETF, IEEE의 모든 Data link control 프로토콜
에 영향을 준 프로토콜
 IETF LAP, LABPB, LABD 등, IEEE의 LLC Type 1~4
 Full-duplex, Half-duplex 모두 지원
 2 가지 모드를 지원하는 프로토콜
 NRM (Normal Response Mode): 하나의 Primary와 다수의
Secondary 시스템 간의 통신을 지원하는 모드
 ABM (Asynchronous Balanced Mode): 두 개의 시스템이 서로 동
등한 관계의 통신 (두 시스템 모두 Primary 또는 Secondary 가
될 수 있는 모드)
36
HDLC NRM 및 ABM 모드
 NRM
 ABM
37
HDLC 프레임 종류
 I-frame (Information): 데이터 전송용
 S-frame (Supervisory): ACK 용
 U-frame (Unnumbered): 연결관리, 링크 관리용 프레임
38
프레임의 필드
 Flag: “01111110”, 프레임 동기화를 위해 사용
 Address: Source 주소 또는 Destination 주소가 될 수 있음
 주로 종국 (secondary station)의 주소 정보를 가짐
 주국이 생성한 프레임일 경우 종국의 주소, 종국이 프레임을 만들
었을 경우, 종국의 주소 정보를 가짐
 Combined 경우에는 수신자 주소 정보
 여러 개의 바이트로 구성될 수도 있음
 각 바이트의 마지막 비트는 주소 바이트의 연장 유무를 표현
 (0: 주소 바이트가 더 있음, 1: 주소 바이트의 끝을 나타냄)
 Control: 순서 번호 등의 제어 정보 포함(다음 page에 설명)
 User Information: 상위 계층의 데이터 포함
 FCS (Frame Check Sequence)
 ITU-T의 CRC-32나 CRC-16 오류 검출 코드
39
I-fame의 Control 필드
 일반적으로 1 바이트이나 2 바이트로 확장될 수 있음
 각 프레임의 종류에 따라 필드 해석이 달라짐
 앞의 0/10/11은 각 프레임 종류를 나타냄
 N(S): 송신 프레임 순서 번호
 N(R): 수신 프레임 순서 번호 (ACK)
 P/F: Poll and Final bit, 이 비트 값이 1일 때만 의미 있음
 Poll: (주->종) 주국이 종국에게 전송을 허가하는 의미
 Final: (종->주) 종국이 주국에게 보내는 마지막 정보 프레임
40
S-frame Control 필드
 S-frame Code
 RR(Receiver Ready): 00, Positive ACK
 RNR(Receiver Not Ready): 01, ACK + 현재 수신 불가
 REJ (Reject): 10, Go-Back-N 방식 NAK
 Go-back-N 방식의 재전송 처리 효율을 높이기 위해 사용
 SREJ (Selective REJ): 11, Selective Reject NAK
41
U-frame Control 필드
 총 5개의 비트 필드를 이용하여 연결 관리와 제어 정보를 교
환하는 용도로 사용
42
HDLC 연결 관리 예제
43
HDLC 데이터 전송 예제 (w/o error)
44
HDLC 데이터 전송 예제 (w/ error)
0
45
11.7 Point-to-Point 프로토콜
 PPP (Point-to-Point Protocol)
 두 개의 시스템이 물리적으로 일대일로 연결된 경우 사용하는
데이터-링크 계층의 프로토콜
 주로 상위의 IP 패킷을 encapsulation 하는 용도로 사용
 모뎀을 이용한 인터넷 연결, 라우터와 라우터 간의 일대일 연결
등에 활용
 특징
 교환할 프레임 종류, 형식, 링크 설정 등을 협상
 여러 종류의 상위 프로토콜들을 지원할 수 있음
 사용자 인증 기능 제공
 흐름제어 기능 제공하지 않음
 프레임 손상 오류(FCS)만 검사
46
PPP 프레임 형식
 HDLC와 호환되는 필드 구성
47