Tamanho fixo de carga TCP [fechado]

1

Eu tenho um aplicativo que precisa ter um tamanho de carga útil fixa (516 byes) no pacote TCP. O aplicativo em si não pode ser modificado para ajustar as configurações, portanto, eu preciso ajustar o tamanho do buffer TCP do O.S ....

Até onde eu sei, o tamanho do buffer TCP (SO_SNDBUF) pode ser ajustado para que o 'autotuning' não tente incluir mais dados no pacote.

Se eu ajustar SO_SNDBUF para 516, isso será apenas para a carga útil ou afetará todo o pacote (cabeçalho + carga útil)?

    
por Bruno Araujo 14.08.2013 / 18:50

1 resposta

2

Se você definir SO_SNDBUF em um soquete como 516, o kernel duplicará e assumirá que os buffers devem ter 1032 bytes. Essa sobrecarga é para estruturas de kernel.

Se você criar um buffer de mensagem com 516 bytes, preenchê-lo e, em seguida, chamar send () ou sendto () ou write (), então esses 516 bytes serão automaticamente enviados como um único pacote.

    
por 14.08.2013 / 19:09