RDT 효율
Go-Back-N (GBN)
Window Size만큼 한번에 보낸 뒤에 ack 기다린다.
송신자 측면:
- k-bit 시퀀스 번호가 패킷 헤더에 포함됩니다. 이는 송신되는 각 패킷의 순서를 나타내는 중요한 정보입니다.
- 송신자는 최대 N개의 연속적인 확인되지 않은(ACK되지 않은) 패킷을 전송할 수 있습니다. 이를 **윈도우 크기(window size)**라고 합니다.
타임아웃 및 재전송:
- 각 비행 중인(in-flight) 패킷마다 타이머가 설정됩니다.
- **타임아웃(timeout(n))**이 발생하면, 송신자는 시퀀스 번호 n과 윈도우 내의 그 이상의 시퀀스 번호를 가진 모든 패킷을 다시 전송합니다.
패킷 loss
2번 패킷이 손실되면
ㅡ> 리시버는 계속 2번만 기다리고 뒤에 오는것들은 안받는다.
ㅡ> ack는 계속 ack1만 보낸다.
ㅡ> sender에서 패킷2번에 대한 time-out이 발생한다.
ㅡ> 2번부터 다시보낸다. (그래서 go back n)
(P) 다시 2번으로 돌아가서 다 재전송하니 비효율적...
(S) Selective Repeat : 손실된 패킷만 재전송
Selective Repeat (선택적 재전송)
- 수신자가 이미 받은 패킷을 따로 보관할 수 있으며, 나중에 순서대로 상위 계층에 전달합니다.
- Go-Back-N과는 달리, 송신자는 특정 패킷만 재전송하므로 네트워크 자원을 더 효율적으로 사용합니다.
Selective Repeat 딜레마
Selective Repeat은, 다음 두가지 상황을 구분할 수 없다.
(a) 시나리오:
- pkt0, pkt1, pkt2가 송신됩니다.
- ACK0를 받지 못했기 때문에 pkt0이 재전송됩니다.
- 수신자는 재전송된 pkt0을 새로운 데이터로 간주하여 잘못 처리됩니다.
(b) 시나리오:
- pkt0, pkt1, pkt2가 송신됩니다.
- ACK0,1,2가 수신됩니다.
- pkt3가 손실되고, pkt0이 송신되어 제대로 처리됩니다.
Q: 시퀀스 번호 크기와 윈도우 크기의 안전한 관계는 무엇인가?
- 이 질문은 송신자와 수신자가 데이터를 정확하게 처리할 수 있도록 시퀀스 번호의 범위와 윈도우 크기를 어떻게 설정해야 하는지에 대한 문제를 제기합니다. 이 문제는 중복된 패킷을 방지하는 중요한 요소입니다.
A : 시퀀스 번호의 범위가 윈도우 크기보다 최소 2배 이상 커야 합니다
'CS > 네트워크' 카테고리의 다른 글
전송계층3 - TCP Flow Control, Conection (3-way handshake) (0) | 2024.09.26 |
---|---|
전송계층2 - TCP, segment구조, RTT, 타임아웃 (0) | 2024.09.20 |
2. 어플리케이션 계층2 (0) | 2024.09.15 |
2. 어플리케이션 계층 (0) | 2024.09.09 |
컴퓨터네트워크 기본2 (1) | 2024.09.04 |