Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tcp: Weird segmentation #408

Closed
Dirbaio opened this issue Jan 6, 2021 · 2 comments · Fixed by #499
Closed

tcp: Weird segmentation #408

Dirbaio opened this issue Jan 6, 2021 · 2 comments · Fixed by #499
Labels

Comments

@Dirbaio
Copy link
Member

Dirbaio commented Jan 6, 2021

This is a trace of a smoltcp app writing infinite data to a TcpSocket.

First 6 segments are full-sized. Next one is 92 bytes because buffer size is 8192, which is not a multiple of MSS. (1350*6 + 92 = 8192)

After that, segment sizes are completely all over the place. Maybe this is related to Silly Window Syndrome?

18627   246407.367732154   TCP  66     27625 → 8000 [SYN] Seq=0 Win=8192 Len=0 MSS=1350 WS=1 SACK_PERM=1
18628   246407.367759045   TCP  66     8000 → 27625 [SYN, ACK] Seq=0 Ack=1 Win=64240 Len=0 MSS=1460 SACK_PERM=1 WS=128
18629   246407.846954586   TCP  60     27625 → 8000 [ACK] Seq=1 Ack=1 Win=8192 Len=0
18630   246407.881168803   TCP  1404   27625 → 8000 [ACK] Seq=1 Ack=1 Win=8192 Len=1350
18631   246407.881181694   TCP  54     8000 → 27625 [ACK] Seq=1 Ack=1351 Win=63104 Len=0
18632   246407.921754133   TCP  1404   27625 → 8000 [ACK] Seq=1351 Ack=1 Win=8192 Len=1350
18633   246407.921770507   TCP  54     8000 → 27625 [ACK] Seq=1 Ack=2701 Win=63104 Len=0
18634   246408.200335031   TCP  1404   27625 → 8000 [ACK] Seq=2701 Ack=1 Win=8192 Len=1350
18635   246408.200352648   TCP  54     8000 → 27625 [ACK] Seq=1 Ack=4051 Win=63104 Len=0
18636   246408.252340503   TCP  1404   27625 → 8000 [ACK] Seq=4051 Ack=1 Win=8192 Len=1350
18637   246408.252371854   TCP  54     8000 → 27625 [ACK] Seq=1 Ack=5401 Win=63104 Len=0
18638   246408.301253002   TCP  1404   27625 → 8000 [ACK] Seq=5401 Ack=1 Win=8192 Len=1350
18639   246408.301297549   TCP  54     8000 → 27625 [ACK] Seq=1 Ack=6751 Win=63104 Len=0
18640   246408.333256171   TCP  1404   27625 → 8000 [ACK] Seq=6751 Ack=1 Win=8192 Len=1350
18641   246408.333289920   TCP  54     8000 → 27625 [ACK] Seq=1 Ack=8101 Win=63104 Len=0
18642   246408.334007471   TCP  146    27625 → 8000 [PSH, ACK] Seq=8101 Ack=1 Win=8192 Len=92
18643   246408.334022024   TCP  54     8000 → 27625 [ACK] Seq=1 Ack=8193 Win=64128 Len=0
18644   246408.496982823   TCP  455    27625 → 8000 [ACK] Seq=8193 Ack=1 Win=8192 Len=401
18645   246408.497025414   TCP  54     8000 → 27625 [ACK] Seq=1 Ack=8594 Win=63744 Len=0
18646   246408.503911995   TCP  154    27625 → 8000 [ACK] Seq=8594 Ack=1 Win=8192 Len=100
18647   246408.503941886   TCP  54     8000 → 27625 [ACK] Seq=1 Ack=8694 Win=64128 Len=0
18648   246408.657069002   TCP  452    27625 → 8000 [ACK] Seq=8694 Ack=1 Win=8192 Len=398
18649   246408.657094871   TCP  54     8000 → 27625 [ACK] Seq=1 Ack=9092 Win=63744 Len=0
18650   246408.662975286   TCP  157    27625 → 8000 [ACK] Seq=9092 Ack=1 Win=8192 Len=103
18651   246408.662995152   TCP  54     8000 → 27625 [ACK] Seq=1 Ack=9195 Win=64128 Len=0
18652   246408.825227055   TCP  449    27625 → 8000 [ACK] Seq=9195 Ack=1 Win=8192 Len=395
18653   246408.825268865   TCP  54     8000 → 27625 [ACK] Seq=1 Ack=9590 Win=63744 Len=0
18654   246408.832004722   TCP  160    27625 → 8000 [ACK] Seq=9590 Ack=1 Win=8192 Len=106
18655   246408.832034262   TCP  54     8000 → 27625 [ACK] Seq=1 Ack=9696 Win=64128 Len=0
@Dirbaio Dirbaio changed the title Weird fragmentation tcp: Weird segmentation Jan 6, 2021
@Dirbaio
Copy link
Member Author

Dirbaio commented Jun 16, 2021

Cause is lack of Nagle's Algorithm.

@Dirbaio
Copy link
Member Author

Dirbaio commented Jun 17, 2021

Turns out that it was caused by #500 too, either way this should be fixed now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

Successfully merging a pull request may close this issue.

1 participant