stopandwait2 rdt 3.0 완벽 정리: 타이머(Timer)를 활용한 패킷 유실 해결과 신뢰적 전송의 완성 [송신측] rdt 3.0: 유실에 대응하는 타이머 메커니즘rdt 3.0의 핵심은 Countdown Timer이다패킷을 보내고 일정 시간(Timeout) 동안 대답이 없으면 잃어버린 것으로 간주하고 다시 보냅니다.1단계: 0번 패킷 전송 (Wait for call 0 from above)(1) 이벤트: rdt_send(data) (데이터가 내려옴)(2) 액션 1: sndpkt = make_pkt(0, data, checksum) (0번 패킷 생성)(3) 액션 2: udt_send(sndpkt) (패킷 전송)(4) 액션 3: start_timer (유실을 확인하기 위해 타이머 시작)2단계: 0번 ACK 확인 대기 (Wait for ACK 0)이 상태에서는 '유실' 상황을 처리하는 액션이 추가됩니다.상황 A:.. 2026. 2. 11. rdt 2.1 완벽 정리: Sequence Number를 활용한 ACK/NAK 오류 제어와 Sender-Receiver 메커니즘 rdt 2.1(Sender)송신측은 패킷에 0번과 1번 번호를 번갈아 붙여서 보내며, 상대방의 대답을 확인하고 다음 단계로 넘어간다1단계: 0번 패킷 전송 (Wait for call 0 from above)(1) 이벤트: rdt_send(data) (상위 애플리케이션으로부터 보낼 데이터가 내려옴)(2) 액션 1: sndpkt = make_pkt(0, data, checksum) (0번 번호와 데이터, 체크섬을 포함한 패킷을 만듦)(3) 액션 2: udt_send(sndpkt) (만든 패킷을 하위 채널로 전송함)2단계: 0번 응답 확인 (Wait for ACK or NAK 0)상황 A: 응답이 깨졌거나 NAK인 경우 (실패)(4) 이벤트: rdt_rcv(rcvpkt) && (corrupt(rcvpkt) |.. 2026. 2. 11. 이전 1 다음