LINUX.ORG.RU

История изменений

Исправление user_id_68054, (текущая версия) :

если так — то я слегка обеспокоен на тему того — что станет с порядковыми номерами пакетов? как они будут перестроены занова? как это изменение порядковых номеров пакетов — станет возможным в случае <хорошего-сценария>?

Да такие же будут, не перестроятся. Сообщение о большом пакете же не в TCP-сессии шлется, а через ICMPv6 (или просто ICMP для IPv4).

вот — пресдтавим — установилась TCP-сессия, пошли некоторые пакеты..

..может быть даже перый пакет прошёл успешно (HTTP-заголовок уместился в размер менее 1400)..

и вдруг роутер «роняет» слишком большой пакет и отсылает клиентскому компу ICMPv6-пакет о том что был "слишком большой размер пакета. следующий раз шли не более чем 1490"

что происходит дальше?

клиенту значит теперь нужно посылать пакеты — более маленького размера, но часть пакетов уже отослана (часть из них «уранилась», а часть прошла успешно).

конечно клиент знает какие именно пакеты дошли а какие не дошли. загадка не в этом :) ..

но у каждого из дошедщих пакетов были свои номера.

и у каждого НЕ дошедшего пакета — *тоже* были тоже свои номера.

послать новые пакеты с такими же номерами как и у недошедших пакетов — нельзя — так как теперь нужен более маленький размер пакетов, а следовательно их количество должно быть больше чем количество пакетов которые не смогли дойти.

например если были отосланы пакеты:

... ... ...
000111 [успешно, так как пакет маленький]
000112 [не успешно, так как пакет слишком большой]
000113 [не успешно, так как пакет слишком большой]
000114 [не успешно, так как пакет слишком большой]
000115 [успешно, так как пакет маленький]
... ... ...

то мы не можем просто уменьшить пакеты 112,113,114 так как теперь нужно не 3 пакета а уже 4 пакета.

как TCP способен справится с этой задачей?

может быть какая-то внеочередная синхронизация TCP-сессии должна произойти для того чтобы занова перестроить номера отсылаемых пакетов?

Исправление user_id_68054, :

если так — то я слегка обеспокоен на тему того — что станет с порядковыми номерами пакетов? как они будут перестроены занова? как это изменение порядковых номеров пакетов — станет возможным в случае <хорошего-сценария>?

Да такие же будут, не перестроятся. Сообщение о большом пакете же не в TCP-сессии шлется, а через ICMPv6 (или просто ICMP для IPv4).

вот — пресдтавим — установилась TCP-сессия, пошли некоторые пакеты..

..может быть даже перый пакет прошёл успешно (HTTP-заголовок уместился в размер менее 1400)..

и вдруг роутер «роняет» слишком большой пакет и отсылает клиентскому компу ICMPv6-пакет о том что был "слишком большой размер пакета. следующий раз шли не более чем 1490"

что происходит дальше?

клиенту значит теперь нужно посылать пакеты — более маленького размера, но часть пакетов уже отослана (часть из них «уранилась», а часть прошла успешно).

конечно клиент знает какие именно пакеты дошли а какие не дошли. загадка не в этом :) ..

но у каждого из дошедщих пакетов были свои номера.

и у каждого НЕ дошедшего пакета — *тоже* были тоже свои номера.

послать новые пакеты с такими же номерами как и у недошедших пакетов — нельзя — так как теперь нужен более маленький размер пакетов, а следовательно их количество должно быть больше чем количество пакетов которые не смогли дойти.

например если были отосланы пакеты:

000111 [успешно, так как пакет маленький]
000112 [не успешно, так как пакет слишком большой]
000113 [не успешно, так как пакет слишком большой]
000114 [не успешно, так как пакет слишком большой]
000115 [успешно, так как пакет маленький]

то мы не можем просто уменьшить пакеты 112,113,114 так как теперь нужно не 3 пакета а уже 4 пакета.

как TCP способен справится с этой задачей?

может быть какая-то внеочередная синхронизация TCP-сессии должна произойти для того чтобы занова перестроить номера отсылаемых пакетов?

Исходная версия user_id_68054, :

если так — то я слегка обеспокоен на тему того — что станет с порядковыми номерами пакетов? как они будут перестроены занова? как это изменение порядковых номеров пакетов — станет возможным в случае <хорошего-сценария>?

Да такие же будут, не перестроятся. Сообщение о большом пакете же не в TCP-сессии шлется, а через ICMPv6 (или просто ICMP для IPv4).

вот — пресдтавим — установилась TCP-сессия, пошли некоторые пакеты..

..может быть даже перый пакет прошёл успешно (HTTP-заголовок уместился в размер менее 1400)..

и вдруг ролутер «роняет» слишком большой пакет и отсылает клиентскому компу ICMPv6-пакет о том что был "слишком большой размер пакета. следующий раз шли не более чем 1490"

что происходит дальше?

клиенту значит теперь нужно посылать пакеты — более маленького размера, но часть пакетов уже отослана (часть из них «уранилась», а часть прошла успешно).

конечно клиент знает какие именно пакеты дошли а какие не дошли. загадка не в этом :) ..

но у каждого из дошедщих пакетов были свои номера.

и у каждого НЕ дошедшего пакета — *тоже* были тоже свои номера.

послать новые пакеты с такими же номерами как и у недошедших пакетов — нельзя — так как теперь нужен более маленький размер пакетов, а следовательно их количество должно быть больше чем количество пакетов которые не смогли дойти.

например если были отосланы пакеты:

000111 [успешно, так как пакет маленький]
000112 [не успешно, так как пакет слишком большой]
000113 [не успешно, так как пакет слишком большой]
000114 [не успешно, так как пакет слишком большой]
000115 [успешно, так как пакет маленький]

то мы не можем просто уменьшить пакеты 112,113,114 так как теперь нужно не 3 пакета а уже 4 пакета.

как TCP способен справится с этой задачей?