История изменений
Исправление 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 способен справится с этой задачей?