ljerezchaves / ofswitch13

OFSwitch13: OpenFlow 1.3 module for ns-3.
http://www.lrc.ic.unicamp.br/ofswitch13/
GNU General Public License v2.0
24 stars 16 forks source link

TcpSocket #27

Closed ljerezchaves closed 9 years ago

ljerezchaves commented 9 years ago

Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)


Validar questão do envio e recebimento de pacotes pelos Sockets TCP. Percebi que uma boa quantidade de pacotes recebidos pelo controlador apresentam erro, e acredito que estão relacionados com o tamanho do pacote e o SegmentSize do socket.


ljerezchaves commented 9 years ago

Original comment by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)


Concluído em [7d0e6c8889c8]

ljerezchaves commented 9 years ago

Original comment by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)


Identifiquei também que se o SegmentSize for pequeno então acontece o efeito contrário: o pacote chega pela metade. Neste caso, a solução seria armazenar o que já chegou em um buffer e aguardar pelo restante. Entretanto, optei por definir manualmente um MSS grande (2960) para evitar este comportamento (além de inserir uma asserção para isso).

ljerezchaves commented 9 years ago

Original comment by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)


Encontrei a explicação para o problema. Ver em http://www.codeproject.com/Articles/11922/Solution-for-TCP-IP-client-socket-message-boundary tanto a descrição do problema como solução para implementação.

ljerezchaves commented 9 years ago

Original comment by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)


Iniciando as pesquisas na lista do ns3 para identificar o problema. Acredito eu ser relacionado com a quantidade de bytes que o comando de leitura recupera por vez.