AM>>> У меня даже на персоналке долгое время (годы) было AM>>> прописано deny ip from any to any frag...
BB>> Да, так часто делают. Особенно для применений, которые общаются только BB>> внутри одной езернетовской локалки.
AM> Да это было не специально так задумано, просто когда-то в файрволе AM> нашли багу, в результате которой хитрым образом сделанный целый пакет AM> ошибочно подпадал под правило для фрагмента. Мне сразу обновиться было AM> некогда, и я просто вместо pass поставил deny. А после обновления вернуть AM> обратно забыл. :) Так и стояло несколько лет...
BB>> Однако, как Вы сами понимаете, такое BB>> решение никак нельзя назвать "полноценной реализацией TCP/IP". Скорее BB>> это "средство перепихнуться по UDP в пределах локалки".
AM> Hе согласен. Во-первых, не обязательно в локалке. Аппаратура реально AM> работает в довольно протяженных и разветвленных сетях. Во-вторых, из всех AM> протоколов, с которыми мне приходилось иметь дело, многокилобайтные UDP AM> пакеты используются только в NFS. По крайней мере, для эхотага, разборка AM> больших пакетов на фрагменты - скорее экзотика чем правило. Для TCP же, AM> насколько я знаю, даже если не используется PMTUD, при котором пакеты AM> вообще идут с флагом DF, есть присланный с другой стороны MSS...
AM> Все, что до сих пор было нужно как мне, так и моим коллегам (RIP, AM> NTP, SNMP, telnet, HTTP...), без проблем работает и с пакетами до 1500 AM> байт. Так что в этом смысле неполноценной я эту реализацию не считаю. В AM> ней есть другие моменты, дающие гораздо больше оснований считать ее не AM> совсем полноценной, но к использованию кучи они никакого отношения не AM> имеют.
BB>> Hапример, связное BB>> сетевое оборудование почти всегда имеет технологический канал BB>> для мониторинга и настроек. Если производитель, как часто бывает, BB>> находится в Тайбее :-), а аппаратура стоит на Камчатке, то техсаппорт BB>> теоретически можно осуществлять удаленно. Hо если реализация TCP/IP не BB>> поддерживает сборку фрагментированных пакетов, а на пути от Тайбея до BB>> Камчатки проложена линия с максимальным размером пакета меньше, чем в BB>> езернете, то несмотря на исправность всех технических средств связи BB>> получить не удасться.
AM> Верно. Только к использованию кучи это не имеет отношения. Пакет AM> размером до 1500 байт может быть собран из фрагментов в одном AM> фиксированном буфере.
А если часть второго пакета для этого же соединения пришла раньше, чем собрался первый пакет? По спецификации даже UDP (а тем более TCP/IP) такое вполне может быть. А у Вас тлько один статический буфер для сборки пакетов и нет возможности запросить новый буфер и начать сборку второго пакета, не собрав первый.