Data Link Control Protocols

Flow Control

  • 수신측 속도에 맞춰 frame을 보내는 것

  • flow control이 없는 경우 수신자의 버퍼가 가득차거나 오버플로우가 발생해 데이터 소실 가능

1. Stop and Wait

  • 송신자가 frame을 보내면 수신자가 잘 받았다고 ACK를 보내기 전까지 다음 frame을 보내지 않고 기다림

  • 수신측에서는 ACK를 보내지 않음으로써 flow를 멈출 수 있음

2. Sliding Window

  • 데이터를 동시에 보낼 수 있는 사이즈를 윈도우라고 정의하고, 수신측에서 받은 데이터는 옆으로 슬라이딩하여 윈도우를 줄임

  • 송신측과 수신측의 윈도우는 동기화

  • full-duplex linke 사용시 데이터와 ACK를 동시에 전송 가능(piggyback)

Error Control

1. Stop and Wait ARQ

  • 송신측에서 frame을 보내고 ACK(0, 1)를 기다림

  • 일정 시간까지 ACK가 도착하지 않으면 time out 하고 재전송

  • 오류가 일어나기 직전 부분은 무시

2. Go Back N ARQ

  • 가장 흔히 사용되며 sliding window 기반 동작

  • 수신측은 RR(Recieve Ready), REJ(Reject)로 받고 싶은 frame, 거절된 frame을 송신측에 보냄

  • REJ된 frame은 수신측에서 재전송해 잘 받을때까지 그 전에 받은 데이터는 무시

3. Selective Reject ARQ

  • reject된 frame만 재전송하고(재전송 최소화) 오류난 frame이 잘 받아지기 전까지 받은 데이터는 버퍼에 저장

  • 수신측의 버퍼가 커야함

Data Transfer Mode

  • NRM(Normal Response Mode): 불균형적 링크 구성, primary station이 세션을 열고 secondary는 응담안함

  • ABM(Asynchronous Balanced Mode): 균형적 링크 구성, primary와 secondary station이 서로 대등하게 명령과 응답하며 동작

  • ARM(Asynchronous Response Mode): 불균형적 링크 구성, primary의 허락 없이 secondary는 응답 가능(원래는 primary의 통제하에 있음)

Frame format

  • flag: 프레임 시작과 끝을 나타내는 패턴, 프레임 동기화를 위해 사용

    • bit stuffing: 데이터와 flag를 구분하기 위해 1이 연속으로 5번 나오면 무조건 그 다음 0 삽입

  • address field: frame 발신지나 목적지인 secondary station의 주소를 포함, 7bit가 주소이고 나머지 1bit는 주소의 끝을 알림(1), 11111111이면 모든 수신측에 보내는 것

  • control field: 프레임의 종류를 나타내고 P/F로 표시, P가 1이면 Poll이며 secondary station이 있는지 확인하는 용도, F가 1이면 Final이며 secondary에서 primary station으로 데이터를 전송할때 사용

  • FCS(Frame Check Sequence): HDLC 프레임이 상대국으로 잘 전송되었는지 확인하기 위한 에러 검출용 16bit 코

  • I-frames(Information): 사용자 정보, 제어 정보 포함(사용자 데이터 전송, 수신 확인을 위해 사용)

  • S-frames(Supervisory): 제어 정보만 포함(수신확인, 전송 요청의 제어를 위해 사용)

  • U-frames(Unnumbered): 링크 관리 정보를 포함(링크 제어용으로 사용)

HDLC 3단계

  1. 초기화: 상대방에게 초기화가 요청되었음을 알리고, NRM, ABM, ARM 중 어느 모드를 사용할건지 요청

  2. 데이터 전송: error control을 이용해 데이터를 전송

  3. 연결해제: 송신측이 수신측에게 연결해제하자고 DISC를 보내고, 수신측에서는 알겠다고 UA를 보내면 연결이 해제되며 통신이 끊김

Last updated