[데이타통신] Chap.9 Data Link

one_jeje·2022년 12월 16일
0
  • 연결된 두 개의 node가 data를 주고 받으며 통신할 수 있도록 유/무선 Link를 통해 데이터 전송을 담당하는 계층
  • Frame: Header + Payload + Checksum
  • Frame을 전송하는 과정에서 loss나 error로 인해 수신측에 제대로 전달되지 않는 상황이 발생할 수도 있음

(1) Flow control: 수신측의 버퍼 상황을 고려하여 송신측에서 데이터 전송량을 조절

  • Q. why 수신측에서는 버퍼링을 하는가?
  • A. 프로세스 처리속도보다 input 속도가 빠르다면 추후에 프로세스를 처리할 수 있도록 일단 버퍼에 담아두는 것 but 버퍼는 유한자원이니 over flow가 날 수 있는데 그러면 송신측에서 flow control에 의해 더이상 전송하지 않음
  • ACK(Acknowledgement): 데이터를 잘 받았으면 잘 받았다고 알려줌(내가 받은 data일수도 있고, 다음에 받아야할 data의 sequence num일수도)
  • ① Stop-and-Wait
  • 하나만 보내고 더 보내지 않고 기다림 > 잘 받았다는 뜻의 ACK이 온다면 다음 데이터를 보냄
  • 단점: 느림
  • Utilization(유용하게 사용한 정도): 1 / (2 * Tp/Tx + 1)
  • Tp(Propagation delay, 전파 속도): link를 통해 packet을 전달하는데 걸리는 시간
  • Tx(=Tt, Transmission delay, 전송 속도): packet을 link로 내보내는데 걸리는 시간
  • data를 전송하는데 걸리는 Tp와 ACK를 전송하는데 걸리는 Tp는 동일
  • data를 내보내는데 걸리는 Tx보다 ACK을 내보내는데 걸리는 Tx는 작음 > 생략 가능
  • → 전체 걸린 시간 중 실제로 데이터를 주고 받는 시간을 계산하면 Utilization이 나옴
  • ② Sliding windows
  • window size가 정해져있음
  • ACK이 안오더라도 window size만큼은 frame을 전송할 수 있음(but 요청이 없다면 꼭 최대 window만큼 보내지 않을 수도)
  • → ACK이 온다면 window를 뒤로 sliding하여 다음 frame을 전송함
  • +) piggyback ACKS: 내가 보낼 data가 있을 때 여기에 받았던 data에 대한 ACK을 같이 보냄

(2) ARQ(Automatic Repeat Request): 자동으로 재전송을 요구하여 error control

  • 수신측이 데이터 수신 시에 오류가 있다면 송신측에 재전송을 요구
  • frame 안에 있는 checksum을 사용하거나, parity check를 하거나, CRC 등으로 오류를 검출하거나, time out 등으로 도착하지 않을 때 요구
  • → link의 신뢰성 확보(오류를 detect하니까)
  • ① Stop-and-Wait(=IDLE RQ)
  • stop-and-wait flow control과 동일
  • frame이 도중에 loss하여 기다려봤지만 수신측에서 ACK을 보내지 않아 time out으로 재전송
  • 또한, 수신측이 frame을 제대로 받고 ACK을 전송하는 도중 ACK도 data이기 때문에 loss가 발생하여 time out이 발생할 수도 있음 → 이런 경우 frame 중복이 발생함
  • ② Go-Back-N(≒Sliding window)
  • 흔하게 사용되는 error control 방식으로 sliding window 방식에 기반
  • 만약 error가 발생한다면 NAK(Negative ACK)을 보냄 or ACK이 올때까지 time out or loss → error가 발생한 frame부터 다시 재전송
  • 장점: error 이후로 전부 폐기 후 재전송하기 때문에 버퍼가 필요없음
  • window size: (2^seq num bit) - 1 why? seq num은 계속 반복되는데(Ex. 123123123) ACK이 왔을 때 이게 어떤 seq num의 ACK인지 구분하기 위해서
  • ③ Selective Reject
  • Go-Back-N과 유사하나 error가 발생한 frame만 재전송 > 오류 frame 이후의 frame들도 관리하고 있어야하니 버퍼 필요 & 더 복잡 but long propagation delay(Ex. satellite)인 경우 유용
  • window size: 2^(k bit - 1)

+) Ref

http://www.ktword.co.kr/test/view/view.php?m_temp1=848

0개의 댓글