350 likes | 526 Views
Chapter 11 Data Link Control. 링크 계층. 데이터 링크 제어에서 전달하는 데이터의 단위를 프레임 (frame) 이라고 부른다 . 목적 전송되는 프레임의 시작과 끝을 어떻게 구별할 것인가 ? 이외에 , 전송되는 프레임에 에러가 발생했는가 ? 송수신 장치간에 속도 차에 의한 프레임의 손실이 발생할 수 있는가 ? ( 흐름 제어 ). 물리 계층과 링크 계층. 프레임의 경계 구별. 프레임의 시작과 끝을 특별한 문자 ( 혹은 비트 패턴 ) 를 사용하여 구별한다 .
E N D
Chapter 11 Data Link Control
링크 계층 • 데이터 링크 제어에서 전달하는 데이터의 단위를 프레임(frame)이라고 부른다. • 목적 • 전송되는 프레임의 시작과 끝을 어떻게 구별할 것인가? • 이외에, • 전송되는 프레임에 에러가 발생했는가? • 송수신 장치간에 속도 차에 의한 프레임의 손실이 발생할 수 있는가? (흐름 제어)
프레임의 경계 구별 • 프레임의 시작과 끝을 특별한 문자(혹은 비트 패턴)를 사용하여 구별한다. • Character-oriented • Bit-oriented
Byte stuffing • 만약 프레임 내에 flag byte와 동일한 byte의 데이터가 존재한다면,
Bit stuffing • 만약 프레임 내에 flag 비트 패턴과 동일한 비트 패턴의 데이터가 존재한다면,
흐름 제어(flow control) • 흐름 제어는 수신 장치가 송신 장치가 보내는 데이터의 양을 조절하도록 하는 절차이다. • 흐름 제어의 방법 • Stop-and-wait flow control • Sliding window flow control
Stop-and-Wait Flow control • 송신 장치는 보낸 프레임에 대한 ACK이 오기 전까지 송신을 중단하고, ACK이 도착하면 다음 프레임을 전송한다.
Sliding window flow control • 송신 장치는 ACKf를 받지 않더라도 계속해서 프레임을 전송한다. • 하지만 현재 연속해서 보낼 수 있는 가능한 프레임의 수를 계속 모니터링한다. • 송신 장치의 window • 현재 순간에 ACK를 받지 않더라도 보낼 수 있는 프레임의 수 • 이것은 결국 현재 수신 장치의 buffer에 비어있는 공간을 크기이다.
에러 제어 • 에러 제어 • 에러 검출 • CRC • Checksum • 에러 정정 • Forward error correction • 재전송(retransmission, ARQ) • Stop-and-Wait ARQ • Go-Back-N ARQ • Selective Repeat ARQ
I(0) I(1) I(2) I(3) I(4) I(5) I(6) I(4) I(5) I(6) I(7) I(0) I(1) I(7) I(0) I(1) I(2)I(3) ACK(1) . . . Error on I(4) NAK(4) Retransmit all frames from I(4) ACK(8) timeout Error on ACK(8) Retransmit from I(7) Go-Back-N ARQ • Go-Back-N ARQ는 window가 허락하는 범위에서 프레임을 연속해서 전송한다. • 그런데 프레임 전송에 에러가 발생하면 재전송을 해야 하는데…
I(0) I(1) I(2) I(3) I(4) I(5) I(6) I(4) I(7) I(0) I(1) I(2) I(3) I(4) I(1) I(5) I(6) I(7) ACK(1) . . . Error on I(4) NAK(4) Retransmit only I(4) ACK(2) Error on ACK(2) timeout Retransmit only I(1) Selective Repeat ARQ • 현재의 window 크기의 범위 내에서 프레임을 계속 전송하는 것은 같지만 만약 에러가 발생해서 재전송을 해야 할 때 차이가 있다.
Frame Sequence Number • 프레임은 연속적인 번호로 구별할 수 있어야 한다. 따라서 프레임의 헤더에는 sequence number를 적는 필드가 있다. • 예를 들어, m=3이라면 프레임의 번호는 0부터 7이 된다. 따라서 프레임들은 다음과 같은 sequence number를 갖는다. 0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,0,… • 질문: sequence number 필드의 크기가 3 비트라면 송신측 window size는 8(=23)인가?
최대 window size(Go-Back-N) • 재전송이 발생했을 때 수신측에 혼동이 없기 위해서는 최대 window size는 얼마로 해야할까? • 다음의 예는 sequence number는 22=4일 경우
Piggybacking • ACK 프레임을 별도로 전송하지 않고 데이터 프레임을 전송하면서 ACK를 같이 한다.
링크 계층 프로토콜 • HDLC • PPP
HDLC • ISO 표준 • point to point와 multipoint 링크 상에서 half-duplex와 full-duplex 통신을 제공한다.
HDLC 프레임 포맷 Address: address of the secondary station. It specifies which station To receive in the multi-point link. Control: it is used for error and flow control. FCS: CRC-12 (X16 + X12 + X5 + 1)
I-Frame I-frames carry user data. The first bit of the control field is 0. N(S) is the sequence number of frame, and N(R) is the sequence number of the acknowledgement. P/F(Poll/Final): It means poll when frame is sent by a primary station to secondary station, and it means final when frame is sent by a secondary station to a primary station.
S-Frame • S-frames are used for error control and flow control when piggybacking is • either impossible or inappropriate (when a station has no data to send at this • moment.) • Types of S-frame • - RR(Receive ready) • - RNR(Receiver not ready) • - REJ(Reject) : error notification for Go-Back-N ARQ • - SREJ(Selective Reject): error notification for Selective-Repeat ARQ
U-Frame U-frames are used to exchange session management and control information
Point-to-Point Protocol(PPP) • 인터넷에서 point-to-point로 연결된 링크에서 사용 • Cf: Ethernet • HDLC 프로토콜에 기반을 두고 HDLC 프레임에 여러 종류의 PPP 패킷을 전송한다. • Byte-oriented protocol