[데이터통신] Chapter 8 정리

정민경·2023년 5월 21일
0

data_communications

목록 보기
8/12
post-thumbnail

Chapter8 : Data Link Control (DLC)

- Objection

  1. DLC 하위 계층에서 제공하는 general services
    • two types of frames
    • flow and error control
  2. 하위 계층에서 구현되는 일반적인 data-link protocols
    • Simple Protocol
    • Stop-and-Wait Protocol
  3. introduces HDLC : 모든 일반 데이터 링크 프로토콜의 기반이 되는 프로토콜
    • 구성(configurations) 및 전송(transfer) 모드
    • HDLC 에서 사용되는 3가지 frame 형식

1) DLC 하위 계층에서 제공하는 general services

  • data link control 은 dedicated 인지 broadcast 인지에 관계없이 인접한 두 노드 간의 통신 절차를 처리함.
  • data link function 에는 다음 두가지 기능이 존재
    1. framing
    2. flow and error control
  • framing : 각각의 frame 이 서로 구별될 수 있도록 bit 를 frame 안에 packing 해야한다.
    • 우편 시스템에서 우편봉투를 생각하면 쉬움.
    • 편지를 봉투에 넣는 간단한 작업으로 편지들끼리 혼동 없이 분리됨.
  • framing 과정에서는 sender addressdestination address 를 adding 함.
    • sender address : 받는 사람이 누가보냈는지 확인할 때 사용
    • destination address : 패킷이 갈 곳 정의

  • Flag : 식별자, 구별자 (실제 정보 없음.)
  • Header : source 와 destination address
  • trailer : error detection 을 위한 redundancy
  • Byte Stuffing and unstuffing
    • ESC 를 추가해 ESC 뒤에 오는 Flag 는 식별자로써 사용되는 것이 아니라 데이터에서 사용됨을 알려줌.
      (이것을 표시해주기 위해 필요한 byte 가 늘어나는 단점이 있음.)
    • 중간단계에서 붙는 ESC 와 Flag 등등을 전부 제거하고 난 후 남은 부분이 실제 data 임.
  • flow control : receive 가 받을 수 있는 크기 (양) 을 알려줌.
    ( receive의 상태를 알지 못하고 계속 data를 보내는 문제를 해결하기 위해 사용됨.)
    • Buffer : flow control 의 가장 기본적인 방법
      • buffer 는 비어있거나 가득차있는 두가지 상태가 존재
      • buffer 가 empty 상태일때는 절대 data 손실이 일어나지 않음.
        => 즉 receive 측의 buffer 가 empty 상태일때만 data 를 보냄.

  • flow and error control 를 처리하기 위한 4가지 protocol

    1) Simple
    2) Stop-and-Wait
    3) Go-Back-N
    4) Selective-Repeat

  • 1, 2번 protocol 은 아직도 사용되고 있지만, 3, 4번 protocol 은 이제는 사용되지 않는다.

1) Simple : flow 와 error control 이 필요 없는 상황이라고 가정한 후 사용되는 protocol
( error 와 data 손실이 발생하지 않는 상황 == 이상적인 상황 )

  • 수신자가 모든 frame 을 받는 즉시 처리할 수 있다고 가정.
  • error 가 발생하지 않는 link 사용. (error control 이 필요없음.)
  • data 를 받으면 바로바로 사용해 Buffer 가 차지 않음. (flow control 이 필요없음.)

2) Stop-and-Wait : data를 보내면 stop하고 상대가 data 를 처리했다는 신호를 wait 함.
(한번에 한 frame 을 보내고 다음 frame 을 보내기 전에 승인 ( ack ) 을 기다림.)
이 과정에서 손상된 frame 을 감지하기 위한 redundancy 를 추가.

  • sender는 receiver 가 보내는 ack 를 기다림.
    • Ack 가 제대로 전달이 안되는 경우 ( == error 인 경우 )
      1) Data 가 전송이 안된경우
      2) Ack 가 중간에 lost 된 경우
  • 이 때 sender 가 receiver 의 ack 를 무한정 기다리면 error 발생 시 ack 를 받지 못하므로 계속 기다리게 됨. -> deadlock 발생.
  • deadlock 을 해결하기 위해 timer 를 사용.
    • timer 의 시간을 정해놓은 뒤 일정 시간안에 ack 가 오지 않으면 error 라고 판단해 message 재전송.
    • 이 때 timer 의 시간을 잘못정하면 효율이 매우 낮아지게 되므로 timer 의 시간을 잘 정해야함.
  • Stop-and-Wait의 단점은 utilization 이 낮음.
    • 대역폭이 높거나 지연이 긴 링크의 경우 링크 용량이 낭비됨.
    • 나는 100만큼 보낼 수 있는데 10만큼만 보내고 기다림. -> 낭비

3) Go-Back-N : 파이프를 사용해 2개 이상의 패킷을 대기상태로 두는 방법.
( 전송시간이 있으므로 대기 패킷을 두어 차례로 처리하고자 함.)

  • 내가 보낼 수 있는 최대 양 ( == 수신자가 받을 수 있는 최대 양 ) 의 단위를 window 로 관리.
    => window 가 꽉차면 패킷을 더 보내지 못함. (대기 패킷으로 꽉 차 있음.)
  • 현재 0 ~ 6 까지 총 7개의 패킷을 보낼 수 있음.
  • 0 ~ 3번 message 를 보낸 상태고, 아직 ack 가 오지 않은 상태임.
    (만약 time out 상황이 오면 재전송해야하므로 가지고있음.)
  • 0, 1 에 대한 ack 가 오면 window 를 2 ~ 0 으로 slide 해 옮김.
  • window 를 기준으로 왼쪽은 ack 를 받은 ( == 제대로 sending 된 msg ) data 이고, 오른쪽은 아직 받지 못한 data 이다.
  • window size 는 message size 보다 작아야 함.
    • ex) message size = 4 (0~3) 이라면 window size 는 3 이하여야함.
    • ex) message size = 5 (0~3) 이라면 window size 는 3 이하여야함. (2의 배수보다 작아야 함.)

4) Selective-Repeat Protocol : 수신측에서도 잘 받은 data 를 저장할 수 있도록 하는 방법

  • Go-Back-N 방법에서는 제대로 보낸 data 도 순서가 잘못되었다면 다시 처음부터 보내야함. ( 비효율적 )
    • ex) 1, 2 수신, 3 lost 되고 4 수신하면 ack 번호가 잘못되었으므로 3, 4 를 다시 보냄.
  • Selective-Repeat 방법에서는 위와 같은 예시에서 3만 재전송할 수 있도록 함.
    • time out 이 되었는데도 오지않은 ACK 가 있다면 그 번호의 data 만을 재전송함.

  • 위에서 알아본 protocol 들은 단방향 통신일 때를 알아봤지만, data 는 양방향통신을 하고 있다.
    => 양방향 통신을 하기 위한 방법 : Piggybacking
    • piggybacking : sender 와 receiver 모두 ACK 번호를 붙여서 함께 감.
      ( 내가 보내는 번호와 내가 받은 번호를 함께 보냄. )

3) introduces HDLC : 모든 일반 데이터 링크 프로토콜의 기반이 되는 프로토콜

  • HDLC (High-Level Data Link Control) : 통신을 위한 bit-oriented protocol
  • Stop-and-Wait protocol 을 구현함.
  • PPP, Ethernet, 무선LAN 과 같은 다른 practical protocol 의 기초이다.
  • Transfer Mode

1) Normal response mode (NRM) : primary device는 명령만, Secondary 는 응답만 수행

2) Asynchronous Balanced Mode (ABM) : primary 와 Secondary device 로 나누지 않고 명령 및 응답을 모두 하는 device 로 구성되어있는 mode

  • HDLC 에서 사용되는 3가지 framing (1개만 보내는 것이 아니라 3개를 모두 사용)

1) information frames (I - frames) : 정보 전송 시 사용 (0)
2) supervisory frames (S - frames) : error control 을 하기 위함. (10)
( data 는 안보내도 ACK 는 보내야할 때 사용)
3) unnumbered frames (U - frames) : 연결 설정, 연결 끊을 때 사용 (11)

  • Flag : 시작과 끝을 나타냄.
  • Address : Source / Destination 주소 정보 저장
  • Control : 어떤 frame 인지를 구별 ( Control 을 읽고 그것에 맞는 것으로 converting 수행.)
  • FCS : error control code ( redundancy )
  • control field format
  • Point-to-Point Protocol (PPP) : 지점 간 액세스를 위한 가장 일반적인 프로토콜 중 하나

0개의 댓글