새소식

반응형
CS 지식/네트워크

[데이터 통신] 11. Data Link Control(DLC)

2023.02.13
  • -
반응형

11.1 Framing

frame 만들기

  • Data link layer needs to pack bits into frames, so that each frame is distinguishable from another.
  • Separate a message from one source to a destination, or from other messages to other destinations, by adding a sender address and a destination address
  • Frame size: fixed or variable
  • Variable-size framing: 일반적인 경우 fixed보다 variable을 사용
    • Need a way to define the end of the frame and the beginning of the next
    • Character-oriented approach and bit-oriented approach

 

11.2 Data-link layer protocols

Character-Oriented Protocols

  • Frame structure

flag라는 시작과 끝을 알리는 8 bit pattern으로 구분을 짓는다.

 

  • Byte stuffing and unstuffing: process of adding 1 extra byte whenever there is a flag or escape character in the text.
    • Flag라는 data가 존재하는 경우 이것이 frame의 끝이 아니라는 것을 알려주기 위해 or ESC라는 special character 앞에서 구분해 주기 위해서 Byte stuffing 과정과
    • 수신측에서 ESC를 빼 주는 unstuffing 과정이 거쳐진다.
    • ESC character 없이 FLAG가 오게 되면 끝 or 시작이라고 판단
    • byte를 다 읽고 ESC든지 FLAG든지를 판단 가능

Bit-Oriented Protocols

character oriented 보다 더 많이 씀

  • Frame structure

  • Bit stuffing: process of adding one extra 0 whenever five consecutive 1s follow a 0 in the data
    • 011111? : ? = 0
    • 만약 flag와 똑같은 bit pattern이 data안에 있는 경우를 막기 위해서 0다음에 1이 5개가 오면 그 다음 bit는 무조건 0이 오도록 만든다.(0에 1이 6개가 붙어면 bit pattern이 될 수 있기 때문)
    • receiver에서는 flag가 아니라고 판단하면 다시 unstuffing을 통해 0을 제거해 준다.

Flow and Error Control

data link layer의 기능 중에서 가장 중요한 두 가지 기능

  • Data link control = flow control + error control
  • Flow control refers to a set of procedures used to restrict the amount of data that the sender can send before waiting for acknowledgement
    • data의 양을 조절하여 overflow의 발생을 막는다.
  • Using two buffers at the sending and receiving data-link layer
  • Error control prevent the receiving node from delivering corrupted packets to its network layer

Finite State Machine(FSM)

 

  • 복잡한 protocol을 정형화 하는 기법
  • 유한한 state를 갖고 있고 event가 있을 때마다 another state로 transition함.
    • 각 state에서 다른 state로의 transition은 event에 의해 이루어 지며 event에 따른 actions을 수행할 수도 있고 딱히 수행하는 action이 없을 수도 있다.

 

Data-Link Layer: Simple Protocol

  • Simplest protocol with no flow or error control

Sending mode:

  • Packet came from network layer 라는 event가 발생하면 Make a frame and sent it 이라는 action 수행

Receiving mode:

  • Frame arrived라는 event가 발생하면 deliver the packet to network layer 라는 action 수행

둘 다 state은 계속 ready로 제자리로 돌아온다.

 

Example 11.2

  • 아주 간단한 예제에 대하여 time 축에 대하여 정형화 된 그림
  • frame을 보낼 때와 도착했을 때의 delay가 있음.

 

Stop-and-Wait Protocol

  • Use both flow and error control
  • CRC & ACK(Acknowledgement)
  • 답장을 기다린다 -> 일종의 flow control
  • CRC가 붙는다 -> error control
  • frame을 하나 보내고 receiver에서 잘 받았다는 답장이 올 때까지 stop 한다(답장을 wait).
  • timer가 필요한 이유는 frame을 보냈는데 중간에 lost 되어 답장을 받을 수 없을 때 무한정 기다릴 수 없으므로 설정된 timer 시간이 지나면 자동으로 다시 frame을 보내게 되기 위함이다.
    • frame이 lost 되었을 수도 ACK이 lost 되었을 수도 있다.

FSM for Stop-and-Wait Protocol

event가 발생 -> action 수행 -> state transition

  • save a copy -> 전송에 실패한 경우 다시 보내려면 복사해 두었던 것을 보내기 위해서
  • error-free 즉, 제대로 전달이 된 경우 -> timer 멈추고, saved frame 버리기
  • corrupted ACK -> ACK를 버림

Q) 계속 error가 발생하면 sender 측에서 계속 같은 frame만 보내게 되나요? error가 발생한 frame에 대해서 그 다음 전송 때는 error가 발생하지 않을 수도 있나요?

A) 그치. 그니까 재전송하는 것. 모종의 이유로 잘 도착하지 않은 것이기 때문에 다시 전송해 주는 것

 

Flow Diagram for Example 11.3

ACK(응답)가 lost된 경우에는 reiciving node까지 packet이 제대로 도착해서 network layer로 packet을 잘 올렸음에도 답장(ACK)이 가다가 lost된 것이기 때문에 sender 측에서는 잘 올라갔는지를 몰라서 똑같은 frame을 또 보내게 되고 똑같은 frame을 다시 보냈기 때문에 중복된 packet이 또 올라가게 되는 duplicate 문제가 발생한다.

 

Flow Diagram for Example 11.4

  • 위에서 발생한 문제를 해결하기 위해서 각 frame에 sequential (binary) number(0, 1)를 주면서 해결할 수 있다.
  • reiciving 측에서 ACK1을 전송한다는 것은 frame 1을 받을 것을 기대한다는 뜻,
    • 즉 Frame0은 잘 받았다는 것을 의미한다.
  • ACK1이 중간에 깨지거나 하는 이유로 답장을 못받으면 time out 될 때까지 기다리다가 다시 보내게 되는데 sender 입장에서는 ACK1을 받지 못했기 때문에 frame1을 보낼 수 없는 것이고 frame0을 다시 보내도록 한다.
  • 그런데 또 0을 받게 되면 이미 직전에 frame0을 받았었기 때문에 충돌이 일어나 packet을 network layer에 delivery 하지는 않고 ACK1을 sender 측에 resent 한다.

 

11.3 HDLC(High-level Data Link Control)

  • bit-oriented protocol
  • High-level Data Link Control
  • stop and wait protocol 보다 효율적
  • Two common transfer mode:
    • normal response mode (NRM) and asynchronous balanced mode (ABM)

  • NRM
    • 하나는 Primary 하나는 Secondary로 일종의 주종 관계에 있다고 할 수 있다.
    • primary의 command에 따라서 Secondary가 response를 보내는 통신방식
      • secondary가 여러개인 경우 하나를 지정해서 response하도록 할 수 있음
  • ABM: asynchronous balanced mode -> 양쪽이 동등한 관계의 통신

 

HDLC: Frames

  • bit-oriented protocol
  • The shortest frame in HDLC protocol is usually the supervisory frame.(s-frame)
  • I(information)-frames, S(supervisory)-frames, U(unnumbered frame)-frames
  • Flag field: 01111110 to identify both the beginning and the end of a frame and serve as synchronization pattern for receiver
  • FCS field: 2- or 4-byte ITU-T CRC for error detection
    • FCS = Frame Checking Sequence

  • I-frame: Information frame
    • 실질적인 정보를 포함하는 frame
    • network가 내려준 정보를 전달
  • S-frame: Supervisor frame
    • 보낸 정보를 잘 받았는지를 확인하기 위해 보내는 frame(like ACK)
    • 관리 제어
  • U-frame: Unnumbered frame
    • link를 setup 혹은 끊을 때 사용하는 frame
    • unnumbered frame
  • 세 frames 모두 Flag로 시작해서 Flag로 끝난다.

 

HDLC: Frames

  • Control Field: 1- or 2-byte segment of the frame used for flow and error control
    • 이해를 위해서 1 byte의 control field를 집중적으로 보겠다.
  • Determine the type of frame and define its functionality
    • 맨 앞의 bit
  • control field의 MSB를 확인해서
    • 0이면 I-frame
    • 10이면 S-frame
    • 11이면 U-frame
  • Control field for I-frame: P/F (poll/final bit for primary/secondary)
    • P/F -> command를 보내거나 response를 보낼 때 1로 된다.
      • 요즘엔 master-slave 관계가 아니라 양쪽이 combinde이기 때문에 별로 신경 안 씀.
  • N(S) : send sequence number
    • 000~111까지의 패턴을 매 frame마다의 number를 나타낸다.
      • 즉 지금 내가 지금 보내는 frame의 number를 뜻함
  • N(R): Receive sequence number
    • 답장 전용의 frame인 S-frame에서는 N(R)만 존재함
    • frame을 잘 받았다는 답장을 줌
    • 만약 010(2) 라면 2번을 받을 것을 기대한다는 의미로 1번까지는 잘 받았다는 뜻이다.

HDLC: Frames

  • Control field for S-frame
  • Receive ready (RR), Receive not ready (RNR), Reject (REJ), Selective reject (SREJ)

  • RR: 00
    • ACK에 해당하는 것 (PACK)
    • 또한 RNR로 STOP 시켜놨던 flow control을 재기시키는 역할도 한다.
  • REJ: 01
    • NACK로 error가 있으면 reject하는
    • NACK : Negative ACK
    • sender가 0번도 보내고 1번, 2번, 3번... 을 쭉 보내는데 3번에 error가 있으면 3번을 reject, 즉 다시 보내는 것을 요청하고 그 뒤의 4번, 5번,... 은 전부 받지 않고 버린다.
  • RNR: 10
    • STOP
  • RR/RNR
    • Flow control
  • SREJ: 11
    • Selective-reject and NACK
    • sender가 0번도 보내고 1번, 2번, 3번... 을 쭉 보내는데 3번에 error가 있으면 3번은 reject해서 다시 보내라고 하지만 뒤의 4번이나 5번이 잘 왔다면 받아 놓는다.

 

REJ vs. SREJ :

  • 3번 frame이 가다가 깨지면 receiver 측에서는 REJ로 3번을 다시 보낸다.
  • 이 때 REJ는 그 뒤의 4번, 5번 데이터를 모두 버리지만
  • SREJ는 3번은 REJ하여 다시 보내라고 하긴 하지만 그 뒤의 4, 5번은 다 받아 놓는다.
  • 3에대한 REJ가 오면 3,4,5를 전부 보냈더라도 3번부터 다시 3,4,5를 전부 reject 할 것이기 때문에 그 뒤의 것들을 전부 다시 보내야 하고
  • 3에대한 SREJ가 오면 3,4,5를 전부 보냈으면 3번만 다시 보내고 4,5번은 이미 받았기 때문에 3번 다음으로는 6번으로 넘어가게 된다.

 

HDLC: Frames

  • Control field for U-frame

SNRM: normal response mode로 연결(set) 하자

UA: 알겠다고(okay) 답장하는 것

RD: 연결을 끊는 것(No)

 

Example 11.5: HDLC

  • Connection and disconnection

U-frame은 connection establishment and connection release.

Data tranfer에서는 I-frame과 S-frame이 왔다갔다 할 것이다.

 

Example 11.6: HDLC

data transfer에서는 어떤 일이 벌어지는 지 보도록 하자.

  • Piggybacking without error
    • Piggybacking: 내가 보내고 싶은 정보를 보내면서 상대방의 답장까지 보내는

  • 세 번째 frame에서 node B는 내가 보내고 싶은 정보인 0을 보내면서 상대방이 보낸 0과 1에 대해 답장을 잘 받았다는 의미로 2번의 ACK를 동시에 보낸다. -> piggybacking
  • 보낼 편지가 없으면 마지막 frame에서와 같이 S-frame(답장 전용)으로 3번에 대한 ACK를 보내게 된다.
    • RR -> receive ready 즉, ACK

 

Example 11.6: HDLC

  • Piggybacking with error

  • REJ 1을 보냈다는 것은 0번까지는 잘 받았고 1에 대한 응답과 더불어 2번까지 응답을 다시 보낼 것을 요청하는 것이다.
  • 만약 SREJ였다면 2번까지 다시 보내지 않고 1번을 다시 보내고 그 다음에는 3번을 보냈을 것이다.

 

HDLC: Bit Stuffing and Unstuffing

HDLC는 Bit-oriented protocol 이기 때문에 bit stuffing이 존재함

  • 하나의 0이후에 연속적인 1이 다섯개가 오면 무조건(flag와 구별하기 위해) 0을 그 다음에 insertion한다.
  • 송신 측에 도착하면 0 이후에 연속적인 1 다섯개가 있으면 그 다음에 있는 0은 제거한다.

 

11.4 Point-to-Point Protocol: PPP

대표적으로 전화망이 있음

  • One of the most common protocols for point-to-point access
  • Many Internet users who need to connect their home computer to the server of an Internet service provider use PPP
  • A point-to-point link protocol is required to control and manage the transfer of data
  • But, several services are missing for simplicity
    • no flow control, simple error control (detection and discard), no sophisticate addressing for multipoint configuration
      • 그냥 error 체크하고 error 있으면 버려버리는
    • 1:1 protocol이기 때문에 address가 필요없음
    • sophisticate: 정교한, 복잡한

 

PPP Frame

  • Flag: 01111110 the same as HDLC, but it treated as a byte because of PPP is a byte-oriented protocol
  • Address:
    • 11111111 (broadcast address)
    • 보내면 무조건 상대가 받기 때문에 broadcast
    • point-to-point 형태라서 sender, receiver 주소를 필요로 하지 않는다.
  • Control:
    • No need because PPP has no flow control and limited error control
  • PPP is a byte-oriented protocol using byte stuffing with the escape byte 01111101
  • FCS:
    • error control
  • Protocol: defines the type of payload encapsulated in the frame.
    • defines the contents of the data field.

PPP: Transition Phases

dead: 양쪽 device의 파워가 꺼진 상태

Establish: 설정 단계 -> link를 설정

authenticate: 인증 절차

 

PPP: Multiplexing

  • PPP uses another set of other protocols to establish the link, authenticate the parties, and carry the network layer data
  • Three sets of protocols defined for powerful PPP: LCP, two APs, several NCPs
    • LCP: Link control protocol
      • link를 끊고 setup하는 것을 담당
    • AP: Authenticate protocol
    • NCP: Network control protocol

LCP: Encapsulated in a Frame

Link Control Protocol: link를 setup할 때 어떤 option을 가지고 할 것인지를 정하는

  • Purpose
    • Configuration
    • Termination
    • Option negotiation

 

LCP: Common Options

  • Options are inserted in the information field of the configuration packets

Authentication

  • Authentication means validating the identity of a user who needs to access
  • PPP is designed for use over dial-up links
    • User authentication is necessary
    • 전화를 통해서 연결된 이 사람이 인증된 사람인가
  • PPP has two protocols for authentication
    • Password Authentication Protocol (PAP)
    • Challenge Handshake Authentication Protocol (CHAP)

 

Password Authentication Protocol (PAP)

  • Two way password authentication protocol
    • Autehnticate-request
    • Autehnticate-ack or Autehnticate-nak

  • user name과 password를 주면 authenticate-request을 통해 system을 가고 system으로부터는 사용을 허락하는 Authenticate ACK가 올 수도 있고 user name 과 password가 matching이 안 됐을 경우 접근을 거절하는 NAK가 가도록 한다.
  • user name과 password를 주고 받는 와중에 누가 정보를 가로채 가면 정보가 노출되는 것이기 때문에 보안에 취약한 점이 단점

 

Challenge Handshake Authentication Protocol (CHAP)

  • Three-way hand-shaking authentication protocol with greater security than PAP
    • Challenge
    • Response
    • Success of failure

  • system 쪽에서 user에게 challenge value를 주면 user는 양쪽에게 약속된 function을 적용한다.
    • 예를 들어 challenge value에 root를 씌운 값이 실제 값이라던가와 같은
  • 그래서 같은 function을 적용해서 valid한 결과가 나오면 승인 아니면 거절을 한다.
  • 그렇기 때문에 정보를 빼가더라도 challenge value를 처리하는 algorithm을 모르면 쓸모가 없기 때문에 PAP가 가졌던 보안에 취약한 것을 보완하기 위한 protocol이다.

 

Network Control Protocol: NCP

  • PPP is a multiple-network layer protocol.
  • It can carry a network data packet from protocols defined by the Internet, OSI, Xerox, DECnet, AppleTalk, Novel
  • IPCP (IP Control Protocol)
    • Configures the link used to carry IP packets in the Internet

IPCP Packet

 

IP Datagram in a PPP frame

 

 

Multi-link PPP

payload를 channel을 분리시켜서 하나 이상의 channel로 보내는 것도 가능하도록 설계되었다.

 

Example 11.7: PPP

  • PPP
    • Flag-to-Flag
    • Byte-oriented
  • PPP가 동작하는 절차
    1. data link layer 세팅을 하고
    2. 인증을 하고
    3. network layer 세팅을 하고
    4. data transfer(교환)
    5. terminate(끊는)
  • configure-request: data-link 어떻게 연결할지, 압축할 것인지, authentication 할 건지 와 관련된 option을 보낸다.
  • 그거에 대한 답장이 온다.(한다/ 안 한다.)

시험에 PPP 관련된 것은 나오지 않을 것이다.

 

QnA 틀린 문제

  • In the PPP frame, the control field is similar to that of the U-frame in HDLC.
  • In PPP, the address field defines None of the choices are correct of the packet.
    • point-to-point 형태라서 sender, receiver 주소를 필요로 하지 않는다.
  • In PPP, the CHAP protocol uses 3 steps to authenticate the parties in communication.
    • Three-way hand-shaking authentication protocol with greater security than PAP라고 위의 필기에 적혀있음
      • Challenge
      • Response
      • Success of failure
    • PAP는 두 단계임.
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.