2012-10-25 2 views
1

Je travaille sur une application où j'ai besoin d'envoyer des données volumineuses dans plusieurs paquets UDP à un client, comment puis-je déterminer par programme le MTU pour mon socket UDP?Comment puis-je déterminer par programme MTU, en C++

Je dois être capable de le faire sur Windows et Linux.

+0

Utilisez-vous Linux? –

+4

La réponse dépend de la plateforme. Il n'est pas non plus spécifique au descripteur de socket. Le MTU est une propriété d'une interface, et l'interface que prend votre paquet est déterminée par la configuration de routage ** après ** l'envoi. –

+1

Question connexe: http://stackoverflow.com/questions/25841/maximum-buffer-length-for-sendto –

Répondre

5

Vous pouvez définir l'indicateur "Ne pas fragmenter" dans l'en-tête IP. Vous pouvez alors obtenir une réponse icmp sur la fragmentation nécessaire.

+2

Voilà comment vous détecter un chemin MTU. Mon interprétation de la question était que l'auteur voulait simplement connaître le MTU de l'interface locale, mais peut-être que c'est faux ... –

+1

D'accord, j'ai peut-être mal compris la question. Et vous avez raison, cela aidera à découvrir le chemin mtu. Merci pour le conseil. – Stefan

Questions connexes