Hi, Don't want to sound like a captain obvious, but what I can say after a quick look at your traces is that both client and server are behind NAT and either some entity drops big packets silently or somebody drops ICMP (fragmentation needed) which doesn't allow TCP to adjust max MSS. The other strange thing is that you said that you set server's MTU to 800 bytes, but server has sent a huge TCP segment with a total length of 1548 bytes and "Don't fragment" bit set.
On 24/06/15 17:30, Andrey Utkin wrote:
Thanks for all the suggestions. Have taken pcap dumps with commands tcpdump -i any -w /tmp/sip_tcp.pcap host <counterpart host>
http://whdd.org/sip_tcp_server.pcap http://whdd.org/sip_tcp_client.pcap
The only obviously bad thing I see is "[TCP Previous segment not captured]" mark on the packet client side dump which is the ending of INVITE request body. Googling on this message, I've found some advice at StackOverflow to tune TCP socket TCP_MAXSEG option.
http://whdd.org/sip_tcp_mtu800_server.pcap http://whdd.org/sip_tcp_mtu800_client.pcap
For this test I have set MTU to 800 on the server's only actual net interface, and restarted Kamailio. The situation stays the same, despite the packets show differently in wireshark. On client side, there's still "[TCP Previous segment not captured]", and on server side there's a mark "[TCP segment of a reassembled PDU]".
Any review is greatly appreciated!