Computer Science/컴퓨터 네트워크 3

전송 계층 프로토콜 : Selective repeat

Selective repeat이란? Selective repeat는 한국말로 번역하면 선택적 반복이라고 한다. Go-Back-N과 달리 말 그대로 손실되거나 timeout이 발생한 패킷만 재전송한다. 따라서 불필요하게 재전송하는 경우를 피할 수 있다. sender는 올바르게 수신된 모든 패킷을 개별적으로 인식하고 필요에 따라 버퍼 패킷을 제공하여 상위 계층에 전달한다. 또한, 중간에 loss된 패킷이 발생하여 잘못된 순서의 패킷을 받았더라도 버퍼에 이를 저장해 둔 후, loss된 패킷만 다시 재전송하도록 하였다. timer는 손실된 패킷을 보호하기 위해 다시 사용하지만 오직 한 패킷만이 time out에 전송되기 때문에 각 패킷은 자신만의 논리 타이머를 가져야 한다. sender에서 보낸 패킷에 대한 a..

전송 계층 프로토콜 : Go-Back-N

Go-Back-N이란? sender는 stop- and- wait처럼 확인 응답을 기다리지 않고 여러 패킷을 전송할 수 있다. 대신, 파이프라인 즉 window size에서 확인 응답이 되지 않은 패킷의 최대 허용 수는 window size = N보다 크지 않아야 한다. rdt_send()가 상위 계층으로부터 호출이 되면 송신자는 첫째로 윈도우가 가득 찼는지, 아직 확인 응답이 되지 않는 패킷이 있는지를 확인한다. 만약 윈도우가 가득 차 있지 않다면 패킷이 생성되고 receiver로 sequence number와 data를 보낸다. receiver가 보낸 sequence number와 data, 즉 packet가 sender에게 도착하면 잘 도착했다는 의미로 패킷 순서에 따른 ack를 보내준다. 이때, ..

rdt 3.0 (stop- and- wait)

rdt 3.0이란? rdt 3.0 이전의 채널은 중간에 사라지는 문제를 해결하지 못하기 때문에 중간에 사라지지만 끊임없이 기다려야 된다는 문제점이 있다. 따라서 이를 해결하기 위해 rdt 3.0에는 일정시간동안 응답하지 않으면 재전송 하는 기능을 추가하였다. 이때 timer를 사용한다. sender가 receiver로 데이터를 보냈을 때 timer가 실행되고 receiver로부터 ACK를 받게 되면 timer는 종료한다. sender에서 보낸 데이터가 loss 되었을 경우, receiver에서 보낸 ACK에 loss가 발생한 경우 timeout이 발생한다. 그 이유는 loss가 발생할 경우, sender는 아무 응답을 받지 못하므로 긴 지연이 발생할 수 있기 때문이다. 또한, 손실이 일어나지 않은 경우에..