Определить MTU для заданного Destination IP
От: Vladimir Davydov Украина  
Дата: 06.12.02 14:50
Оценка:
Хочу заранее отрегулировать размер посылаемых пакетов, так, чтобы размер пакета не превышал MTU того пути, который ведет к заданному хосту в сети.
Подскажите, пожалуйста, как можно определить MTU для заданного Destination IP ?
Re: Определить MTU для заданного Destination IP
От: old->*Plutonia_Experiment() Беларусь http://blogs.rsdn.org/ikemefula
Дата: 06.12.02 15:02
Оценка:
Здравствуйте, Vladimir Davydov, Вы писали:

VD>Хочу заранее отрегулировать размер посылаемых пакетов, так, чтобы размер пакета не превышал MTU того пути, который ведет к заданному хосту в сети.


Надо узнать тип сети назначения. А лучше пользоваться тем, что наптсано в стандарте по протоколу конкретному.
Но гарантии не будет. Пакет может пройти по другой сети, в которой MTU будет еще меньше, чем там, куда ты шлешь.
Re[2]: Определить MTU для заданного Destination IP
От: Vladimir Davydov Украина  
Дата: 06.12.02 15:23
Оценка:
Здравствуйте, old->*Plutonia_Experiment(), Вы писали:

OE>Здравствуйте, Vladimir Davydov, Вы писали:


VD>>Хочу заранее отрегулировать размер посылаемых пакетов, так, чтобы размер пакета не превышал MTU того пути, который ведет к заданному хосту в сети.


OE>Надо узнать тип сети назначения. А лучше пользоваться тем, что наптсано в стандарте по протоколу конкретному.

OE>Но гарантии не будет. Пакет может пройти по другой сети, в которой MTU будет еще меньше, чем там, куда ты шлешь.

А как тогда функция sendto() при посылке через RAW-сокет узнает, "Message too long" или "не too long" ? Ведь она же откуда-то берет размер MTU, чтобы сравнить его с размером посылаемого пакета ?
Re[3]: Определить MTU для заданного Destination IP
От: old->*Plutonia_Experiment() Беларусь http://blogs.rsdn.org/ikemefula
Дата: 06.12.02 15:43
Оценка:
Здравствуйте, Vladimir Davydov, Вы писали:

OE>>Надо узнать тип сети назначения. А лучше пользоваться тем, что наптсано в стандарте по протоколу конкретному.

OE>>Но гарантии не будет. Пакет может пройти по другой сети, в которой MTU будет еще меньше, чем там, куда ты шлешь.

VD>А как тогда функция sendto() при посылке через RAW-сокет узнает, "Message too long" или "не too long" ? Ведь она же откуда-то берет размер MTU, чтобы сравнить его с размером посылаемого пакета ?


А она узнает потому, что RAW — это IP. Для него стандарт — 576 байт. Для ETHERNET можно 1500.

Все протоколы имеют поддержку в виде провайдера своего.
Этот провайдер определяется не по типу пакета, а по типу сокета, в который ты пихаешь пакет.

И на совести провайдера лежит передача пакета более низкоуровневому протоколу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.