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