Pergunta

Estou trabalhando em um projeto relacionado à rede e estou usando o DTLS (TLS/UDP) para garantir comunicações.

Lendo as especificações para os DTLs, observei que os DTLs exigem o Df sinalizador (não fragmento) a ser definido.

Na minha rede local, se eu tentar enviar uma mensagem maior que 1500 bytes, nada é enviado. Isso faz todo o sentido. No Windows, o sendTo () relata um sucesso, mas nada é enviado.

Eu obviamente não posso despertar o Df Sinalizador manualmente, pois é obrigatório para o DTLS e não tenho certeza se o limite de 1500 bytes (MTU?) poderia mudar em algumas situações. Eu acho que pode.

Então, minha pergunta é: "Existe uma maneira de descobrir esse limite?" Usando APIs?

Caso contrário, qual seria o menor valor possível?

Meu software é executado no UNIX (Linux/Mac OSX) e Windows OSes, para que soluções diferentes para cada sistema operacional sejam bem -vindas;)

Muito Obrigado.

Foi útil?

Solução

Existe um MTU mínimo que deve ser suportado - 576 bytes, incluindo cabeçalhos IP. Portanto, se você mantiver seus pacotes abaixo disso, não precisará se preocupar com o PMTU-D (é o que o DNS faz).

Outras dicas

Você provavelmente precisa 'ajustá -lo automático' enviando uma variedade de tamanhos de pacotes para o alvo e veja qual chegar. Pense binário_search ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top