LINUX.ORG.RU

Что происходит при приеме слишком большого кол-ва пакетов в секунду (TCP сокеты)?


0

0

Здравствуйте. Поддерживаю на плаву программу, получающую большие объемы данных через tcp сокеты. Что будет происходить, если посылать ей количество пакетов, "выходящее за рамки допустимого"? Возможно ли добиться переполнения буфера TCP/IP? Какие еще могут быть проблемы на стороне принимающей программы, и как их отследить?

Читать описание протокола TCP/IP. Вкратце, обе стороны умеют договариваться в таких ситуациях. Но в критических ситуациях пакеты просто дропнуться могут.

mv ★★★★★
()

Если на примнимающией стороне никто не будет читать буфер. При этом на отправляющей стороне буфер заполниться, то передача пакетов остановиться. А отправляющая сторона ничего не сможет записать в буфер, будет получать ошибку записи, обрабатывать ошибку и снова пытаться записать то же самое.

Вот и все.

Aleks_IZA
()

на принимающей стороне проблем не будет :)

true_admin ★★★★★
()

> Возможно ли добиться переполнения буфера TCP/IP?

Да. Но проблем при этом не будет. Принимающая сторона дропнет лишнее, и отправляющая, не получив подтверждения о получении пакетов, перестанет "слать как сумашедшая". Впрочем, я даже DOS (apache) наблюдал, когда безконтрольно заваливали канал, приходилось iptables-ом рубить гада :)

Casus ★★★★★
()

Никаких проблем, по идее, на принимающей стороне не должно быть.

smh ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.