모든 개발자들의 구글

Chapter 11. Data Link Control(DLC) 본문

Study Material/컴퓨터 네트워크

Chapter 11. Data Link Control(DLC)

h_j_u_u_ 2019. 5. 28. 14:56

데이터 링크층

-      상위 부계층(DLC)

-      하위 부계층(MAC)

11.1 DLC 서비스

DLC(데이터 링크 제어)

1)     프레임 짜기(크기 고정, 가변)

2)     흐름 및 오류 제어(혼잡제어는 data-link layer에서 사용X)

11.1.1 프레임 짜기

-      bit 들을 frame 안에 넣어 주소를 가진 frame으로 서로 구분

-      Frame 짜기

       1)     고정크기 Frame

               고정 길이 or 가변 길이

       2)     가변크기 Frame

              Frame의 끝과 next frame의 시작하는 곳(flag 사용)

              a.     문자 중심 protocol(Character-Oriented Framing)

              → 전달되는 data는 8비트 문자

              → 시작, 마지막에 flag 추가

              b.      비트 중심 protocol(Bit-Oriented Framing)

              → frame의 data부분을 전부 bit열로 사용

              → 플래그는 01111110 bit pattern 사용

              → 111111(X) / 1111010(O): flag와 혼란 피하기위해

11.1.2 흐름 및 오류 제어

흐름제어

-      sender가 확인응답을 받기 전 보낼 수 있는 data의 양을 제한하는 절차

오류제어

-      network층에서 손상된 packet을 receiver에게 전달되는 것을 막기위해 데이터링크층에서 사용하는 일련의 절차

 

Flow control & Error control은 combine 될 수 O

ACK(acknowledgement)는 Flow control을 위해 보내지고 but error control을 위해서도 사용가능

11.1.3    비연결/연결 지향

DLC protocol

1)     connectionless-oriented(비연결)

-      Frame 사이에 관계 X

-      하나의 노드에서 다음 node로 frame이 보내짐

2)     connection-oriented(연결)

-      frame에 번호가 매겨져 순서대로 보내짐

-      두 node 사이 논리적 연결 수립

-      관련 frame들 전송

-      논리적 연결 종료

 

11.2 데이터링크 계층 protocol

Flow, Error control을 다루는 데이터링크층 protocol

       1)     simple(단순)

       2)     stop-and-wait(정리/대기)

       3)     Go-Back-N

       4)     selective-Repeat(선택적-반복)

11.2.1 simple protocol

단순 프로토콜 (비연결성 – 오류 제어X, 흐름 제어X)

-      흐름제어X, 오류 제어X

-      receiver는 frame receive하면 바로 handle(처리)

-      receiver는 수신되는 frame에 의해 넘치지X

-      sender와 receiver의 data-link layer는 각자 network layer에 전송서비스 제공

-      sender는 자기의 network layer가 send 할 메시지 생길 때까지 프레임 전송 X

-      receiver는 frame 도달 전까지 network layer에 메시지 전달 X

11.2.2 Stop-and-Wait Protocol

정지-대기 프로토콜

-      흐름제어O, 오류제어 O

-      sender는 1개의 frame전송 후 다음 1개 보내기 전에 ACK 기다림

-      손상된 frame 탐지하기위해, 각각의 데이터 frame에 CRC추가

-      CRC가 일치X  → 손상의미 → 폐기

-      receiver의 침묵은 frame이 손상 or 손실됨의 신호4

-      매 시간 sender는 frame 보내고 timer 시작

-      timer 종료 전 ACK도착 → timer stop → 다음 frame 전송

-      time 종료 → 아까 frame 재전송

-      매 시간 channel에는 오직 1개의 frame, 1개의 ACK 존재

11.2.3 Piggybacking

ACK와 data를 동시 전송

-      data frame에 ACK 결합

-      station A, B 모두 data를 가짐

-      따로 보내지 않음

-      bandwidth를 save함

11.3     HDLC

HDLC(High-level Data Link Control)

고급 데이터 링크 제어

       1)     point-to-point, multipoint link 위 통신을 위하 ㄴbit 지향 protocol

       2)     2가지 전송모드

               a.     NRM(정규 응답 모드)

               b.     ABM(비동기 균형 모드)

11.3.1    구성 및 전송 모드

-      NRM(normal response mode)

       1)     station 구성이 unbalanced

       2)     1개의 primary station(send commands). 여러 개의 secondary station(only respond)

       3)     point-to-point, multipoint link 모두 사용

-      ARM(asynchronous balanced mode)

       1)     station 구성이 balanced(균형적)

       2)     각 station은 primary이자 secondary

       3)     point-to-point link에서 사용

11.3.2    Framing

HDLC 프레임 종류

1)     information frames(I-frames) 정보 프레임

       -      네트워크 층에서부터 data를 실어 나르기 위해 설계

2)     supervisory frames(S-frames) 감시 프레임

       -      piggybacking 불가 시, 흐름제어와 오류제어위해 사용

3)     unnumbered frames(U-frames) 무번호 프레임

       -      서로 연결된 장치 간에 session관리와 제어정보를 교환하는 용도로 사용

 

HDLC 필드 종류

1)     flag field(플래그 필드)

       -      프레임의 시작과 끝을 인식하고 동기화 패턴 01111110을 갖는 필드

2)     address field(주소 필드)

       -      primary station이 전송 시 → secondary station address가 address

       -      secondary station이 반응 시 → primary station address가 address

3)     control field(제어 필드)

       -      흐름제어와 오류제어에 사용되는 필드

       -      size: 1 ~ 2bytes

4)     information field(정보 필드)

       -      network layer의 사용자 data를 포함

       -      또는 management information을 포함

       -      field’s length는 네트워크마다 다름

5)     FCS field

       -      HDLC의 오류 검출 필드

       -      2bytes ~ 4bytes CRC

Control field

①     I-frame

-      첫 번째 비트(1 bit): 0

-      N(S) (3 bits): 0~7 사이

-      P/F (1 bit): 1이면 Poll(primary sends to secondary), 0이면 Final(secondary sends to primary)

-      N(R) (3 bits): ACK number(piggybacking 시)

②    S-frame

-      첫 번째 비트(2 bits): 10

-      Code (2 bits)

       1)     00 – receive ready -N(R): ACK

       2)     10 – 받았지만 receiver가 busy함 → 더 이상 receive X

                     -- N(R): ACK

                     -- sender에세 slow down 하라며 혼잡제어 mechanism

       3)     01 – reject, N(R): NAK

       4)     11 – selective reject, N(R): NAK

-      P/F (1 bit): 1이면 Poll(primary sends to secondary), 0이면 Final(secondary sends to primary)

-      N(R) (3 bits): ACK or NAK number(piggybacking 시)

③    U-frame

-      첫 번째 비트(2 bits): 11

-      Code (2 bits) prefix

       1)     00 – receive ready -N(R): ACK

       2)     10 – 받았지만 receiver가 busy함 → 더 이상 receive X

                     -- N(R): ACK             

                     -- sender에세 slow down 하라며 혼잡제어 mechanism

       3)     01 – reject, N(R): NAK

       4)     11 – selective reject, N(R): NAK

-      P/F (1 bit): 1이면 Poll(primary sends to secondary), 0이면 Final(secondary sends to primary)

-      Code (3 bits) suffix

       25=32

 

11.4 PPP

-      point-to-point를 위한 가장 널리 사용되는 protocol

-      data 전송을 제어하고 관리하기 위해서는 data-link layer에서 point-to-point protocol이 필요

-      가장 널리 사용되는 protocol

11.4.1 서비스

PPP 제공 서비스

-      여러 네트워크층에서 페이로드 허용하게

-      네트워크 주소 구성 지원

PPP 제공X 서비스

-      흐름제어 제공X

-      매우 간단한 오류제어

-      순서 번호X → 순서 바뀌어서 패킷 도착 가능

-      다중점 링크에서 프레임을 다룰 수 있는 주소 지정 방법 없음

11.4.2 프레임(Framing)

-      문자 중심 (character-oriented)

-      필드 종류

       1)     flag field

               -      01111110 값을 가진 1byte field

       2)     address field

               -      상수 값. 111111111(broadcasting address)

       3)     control field

               -      HDLC의 U-frame 본 뜬 상수 값. 00000011

       4)     protocol field

               -      데이터 필드에 user data or other information 정의

       5)     payload field

               -      user data or other information

       6)     FCS 프레임

               -      2 ~ 4bytes CRC

11.4.3 Transition Phases

 

11.4.4 Multiplexing(다중화)

PPP가 비록 데이터링크 계층 protocol이지만, PPP는 링크를 수립하고 관련된 당사자를 인증하면, 네트워크 계층 data를 옮기는 등 일련의 다른 protocol도 사용

1)     LCP(링크 제어 프로토콜)

       -      link의 설정, 유지, 형성, 해제

2)     AP(인증 프로토콜)

       -      자원들에 접근하기를 원하는 사용자의 신원 증명

3)     NCP(네트워크 제어 프로토콜)

       -      현상 하고자 하는 네트워크 프로토콜과 링크 수립, 유지, 종료를 수행

       -      network layer의 data를 가져오지는 않음

       -      그저 다가오는 data를 위해 link 확인

       -      인증 후

              → PPP가 IP network layer로부터 데이터 가져오면

                         Protocol field: 0x0021

              → PPP가 OSI network layer로부터 데이터 가져오면

                         Protocol field: 0x0023

다중링크 PPP

-      하나의 point-to-point link에 다중 channel의 이용가능성으로 시작