센로그

Chapter 11. DATA LINK CONTROL 본문

CS/컴퓨터 네트워크

Chapter 11. DATA LINK CONTROL

seeyoun 2022. 11. 2. 01:09


◆ 2계층에서 하는 일들!

1) Framing

쌍방 당사자간 데이터가 어떻게 올 지에 대한 structure정해져 있어야한다.

=> 데이터링크 계층에서는, “Frame

 

2) Flow Control & Error Control

ㆍFlow Control

보내는 사람과 받는 사람의 속도, 성능등이 다르면 컴이 좋다고 남한테 왕창 보내면 안됨

상대방이 수용할 만큼 조정해서 보내야함  == Flow control (흐름제어)

(밀당 잘하기~)

 

Error Control

데이터의 재전송을 자동적으로, 반복적으로 요청하는것. == ARQ (Automatic Repeat Request)

Error detection(탐지), Error correction(고치기), Error control(다시 보내기)

 

3) Access Control

2022.11.08 - [컴퓨터 네트워크] - Chapter 12. MULTIPLE ACCESS

 

Chapter 12. MULTIPLE ACCESS

◆ Data Link - Sublayer 데이터 링크 계층의 두 부계층(sublayer) ㆍDLC(Data Link Control sublayer) 흐름 및 오류를 제어하는 부분 ㆍMAC(Media Access Control sublayer) : 실제 매체에 접근하는 부분 Chapter 10~11까지 DLC에

grace7040.tistory.com

 


ARQ (Automatic Repeat Request) Protocols
: 자동으로 재전송

노이즈 있는 채널에서의 ARQ Protocol의 종류

  • Stop-and-Wait ARQ
  • Go-Back-N ARQ
  • Selective Repeat ARQ

■ Stop-and-Wait ARQ

한번에 보낼수 있음에도, 불안하니 하나씩 보내겠다는 개념

State를 0과 1로만 표시해서 잘 받았는지 못 받았는지 응답받고난 후 보내겠다!

ACK1: 잘 받았으니 다음 거 주렴

ACK0: 잘 못받았으니 다시 주렴

 

그러나 프레임 하나 보내고 응답 받고 하나 보내고..-> 비효율적

(Half-Duplex 방식)

 


◆ Pipeline 기술

ARQ 들에 대해 설명하기 앞서, Pipeline 기술의 개념에 대해 알아야 함.


데이터를 보내고 잘 받았다는 응답을 받은 후에 계속 보내는 방식이 Stop-and-Wait ARQ라면,
일단 한번에 보낼수 있는 만큼 꽉꽉 채워서 보낸 후에 에러를 컨트롤하는 방식이 Pipeline 방식임.


이전에 언급했던 BDP(Bandwidth Delay Product)가 이 방식을 사용함.
이번에 언급할 Go-Back-N  Selective Repeat 역시 이 방식을 사용함.

 


■ Go-Back-N ARQ

일단은 pipeline 방식으로 한번에 여러개 보내보자!
중간중간 응답이 들어오는데, 도중에 응답 못받은 경우,
응답 못받은 것부터 전부 다시 보냄

b 경우는, 순서 번호가 0~3까지 있는데, 윈도우 사이즈를 4로 딱맞게 잡은 경우임.

 

송신자가 0번째부터 쭉 응답 못 받은 경우에, 송신자는 다시 0번째를 보낸다.

그러나 사실 수신자는 이것들을 다 받은 경우라고 가정하자.

그러면 수신자는 다시 받은 저번 0번째를 새로운 0번째라고 착각함.

 

 

잘 받았다는 답장이 오기 전까지 한번에 보내는 양을 제한하는 것 == Window Size를 조정하는 것

Window Size < 2^m

※ m은 순서 번호를 매기기 위해 생성된 비트의 수. 여기선 2가 되겠다.


■ Selective Repeat ARQ

윈도우 안에 번호가 들어오면 무조건 다 받는다는 아이디어
앞에거 놓쳐도 일단 수용해놓고, 앞에 못받은거 다시 요청하겠다.

 

b 경우는, 순서 번호가 0~3까지 있는데 절반보다 하나 더 크게 윈도우를 잡은 경우임.

 

송신자는 0번째부터 쭉 응답을 못받은 경우에, 다시 0번째를 보낸다.

그러나 사실 수신자는 이것을 다 받아왔다. 그리고 윈도우를 옮겨가서 이번 윈도우에 0번째가 포함되어있다.

송신자는 이전 0번째를 보냈지만, 수신자는 자신이 지금 받아야할 3번째를 못 받고 다음 0번째가 온거라고 생각하고,

일단 들어온 (저번) 0번째를 새로운 0번째라고 착각함.

 

Window Size <= 2^(m-1)

하지만, 윈도우 크기가 2^(m-1)보다 작거나 같은 거로 줄어들어서 내가보낼수있는거의 절반으로 줄어듦

 


◆ Go-Back-N vs Selective Repeat

※ Go back N이 더 빨리 보낼까, Selective Repeat이 더 잘 보낼까? (어떤 경우에 뭐가 더 좋은지)

 
-딜레이가 길거나(한국~미국), 에러가 잘 발생하지 않고 안정된 네트워크에서는 Go Back N이 좋음
  Selective repeat은 윈도우 크기 이슈로.. (고백앤이 더 큼 == 한번에 더 많이 보낼 수 있음)
 
- 잡음 많고 에러가 자주 발생하는데 딜레이는 별로 길지 않은 경우! 그럼 Selective repeat이 나아요.

 

Comments