one_jeje
로그인
one_jeje
로그인
[데이타통신] Chap.9 Data Link
one_jeje
·
2022년 12월 16일
팔로우
0
데이타통신
0
1. Data Link Control Protocol
연결된 두 개의 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
one_jeje
팔로우
이전 포스트
[데이타통신] Chap.8 Error detect & correct
다음 포스트
[데이타통신] Chap.11 Switching
0개의 댓글
댓글 작성