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이 잘 받아지기 전까지 받은 데이터는 버퍼에 저장
수신측의 버퍼가 커야함
HDLC(High Level Data Link Control)
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단계
초기화: 상대방에게 초기화가 요청되었음을 알리고, NRM, ABM, ARM 중 어느 모드를 사용할건지 요청
데이터 전송: error control을 이용해 데이터를 전송
연결해제: 송신측이 수신측에게 연결해제하자고 DISC를 보내고, 수신측에서는 알겠다고 UA를 보내면 연결이 해제되며 통신이 끊김
Last updated