Как передаются данные в физический уровень? До канального уровня в tcp/ip все ясно, что передаваемые данные обрастают заголовками а вот дальше? Оборудование анализирует размер ip пакета и в зависимости от его размера нарезает его (ip пакет) на куски (фреймы) и уже после передает их в физический уровень или добавляет к инкапсулирует весь ip пакет в фрейм и уже после этот большой фрейм режет на куски? Или вообще как то иначе?
Валентин
@vvpoloskin Куратор тега Компьютерные сети
Инженер связи
Фрейм не режется. На кусок фрагмеетированного IP-пакета пакета навешивается Ethernet-закголовок и CRC код. Ну и как бы в Ethernet Фрейме может вообще не быть ip (например, там mpls или ipv6)
Т.е. на транспортный уровень данные передаются в том виде в котором его отправило приложение (цельными) потом на сетевом уровне сравнивается размер сегмента транспортного уровня и MTU и если сегмент больше MTU то сетевой уровень фрагментирует и после отправляет на канальный уровень?
Написано
Валентин
@vvpoloskin Куратор тега Компьютерные сети
nak-alexey, сетевому уровню неважно, что там передается на транспортном. Просто приходит пакет (ну ок, датаграмма), он его режет в соответствии со своим L2 MTU. А если точнее, то на транспорте данные - это непрерывный поток данных (stream). Когда данные по сетевому стеку доходят до сетевого уровня, он их упаковывает в пакеты согласно значению МТУ.
эхх , насколько я помню. На втором уровне секвенция пакета не производиться. Просто добавляется служебная информация которая приписывается к пакету. Если объем пакета получается больше чем MTU порта , пакет будет отброшен.
nak-alexey, там механизм сложнее. TCP не знает какой MTU на пути. Он используют алгоритмы. Что то типа отправляю в начале потока маленький пакет, потом его увеличиваю, И так пока не достигну максимума.