Можно ли заставить TCP-сокет отправлять 0 байтов в случае потери пакетов - python - PullRequest
0 голосов
/ 18 декабря 2018

Я пишу простой файл клиент-сервер связи для передачи файла с TCP.Код, который я хочу реализовать, используя программирование сокетов Python.Я следую этому примеру .Мне интересно, если это возможно, чтобы контролировать потерю пакетов и повторной передачи.Например, я могу отправить нулевые байты потерянного размера при отбрасывании пакетов вместо повторной передачи фактических потерянных сегментов?

1 Ответ

0 голосов
/ 18 декабря 2018

Нет, отправка 0 байтов является индикатором того, что сокет был правильно закрыт, и это является частью протокола TCP.То, что вы пытаетесь сделать, это изменить протокол TCP, который уже обрабатывает потерю пакетов.Вы, конечно, можете отправлять данные, которые указывают на потерю пакета, но они будут получены после того, как попытки повторной попытки были завершены для данных, которые были ранее потеряны и не помогут вам.Похоже, что то, что вы пытаетесь сделать, было бы лучше, если бы вы использовали UDP и писали свою собственную логику в отношении потери пакетов, но тогда вам придется обрабатывать и неупорядоченные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...