Надежный UDP и вопрос о методе ACK

Я читаю о реализациях надежного UDP (т.е. отправка пакетов ACK и повторная отправка пакетов без ACK снова).

Из двух основных шаблонов я, кажется, нахожу в сети:

  1. Клиент отправляет ACK для каждого полученного пакета с последовательностью этого пакета. Сервер предполагает, что пакет не доставлен, если он не получает ACK.

  2. Клиент отправляет ACK-пакет с последовательностями пакетов, которые, по его мнению, отсутствуют. Краткий пример обоих методов:

    Method 1: Server sends: 1,2,3,4,5 
    Client received: 1,3,5,4 
    Client sends back: ACK 1, ACK 3, ACK 5, ACK 4  
    Server resends: 2.. maybe more if ACK packets were lost
    
    
    Method 2:
    Server sends 1,2,3,4,5,6,7,8
    Client receives: 1,3,2,5,7
    Client Sends :ACK (lowest continuous 3,highest received 7,  seem to be missing 4,6)
    Server resends: 4,6,8
    
7
задан Radu094 7 January 2011 в 10:38
поделиться