sockets - TCP transactions taking progressively longer -
i have piece of equipment i'm trying talk on tcp. it's quite simple, , following (python) code pretty want in practice.
what should happen send packet request device change setting, should receive "operation complete packet" (which '1').
i've implemented code below in c same result, i'm confident isn't python problem.
import numpy np import socket sock = socket.socket(socket.af_inet, socket.sock_stream) # set values send device values = np.arange(0.2, 1.0, 0.02) sock.connect(('192.168.1.147', 9221)) value in values: # string sets value, requests operation complete output. sock.sendall('i1 %1.3f; *opc?'.encode('utf-8') % (value, )) print(sock.recv(32)) # prints out '1', or b'1\r\n' in python 3 what experience output expected output delay between sending , receiving gets progressively longer until have kill program.
the resultant wireshark output interesting:
no. time source destination protocol length info 4 2.970271597 192.168.1.106 192.168.1.147 tcp 74 49938 → 9221 [syn] seq=0 win=26880 len=0 mss=8960 sack_perm=1 tsval=26446953 tsecr=0 ws=128 5 2.971102415 192.168.1.147 192.168.1.106 tcp 60 9221 → 49938 [syn, ack] seq=0 ack=1 win=5840 len=0 mss=1460 6 2.971118924 192.168.1.106 192.168.1.147 tcp 54 49938 → 9221 [ack] seq=1 ack=1 win=26880 len=0 7 2.971152591 192.168.1.106 192.168.1.147 tcp 69 49938 → 9221 [psh, ack] seq=1 ack=1 win=26880 len=15 8 2.977589098 192.168.1.147 192.168.1.106 tcp 60 9221 → 49938 [psh, ack] seq=1 ack=1 win=5840 len=3 9 2.977597172 192.168.1.106 192.168.1.147 tcp 54 49938 → 9221 [ack] seq=16 ack=4 win=26880 len=0 10 2.977948459 192.168.1.147 192.168.1.106 tcp 60 9221 → 49938 [ack] seq=1 ack=16 win=5840 len=0 11 2.977952056 192.168.1.106 192.168.1.147 tcp 54 [tcp dup ack 9#1] 49938 → 9221 [ack] seq=16 ack=4 win=26880 len=0 12 3.167593066 192.168.1.106 192.168.1.147 tcp 69 [tcp spurious retransmission] 49938 → 9221 [psh, ack] seq=1 ack=4 win=26880 len=15 13 3.168475846 192.168.1.147 192.168.1.106 tcp 60 [tcp dup ack 10#1] 9221 → 49938 [ack] seq=4 ack=16 win=5840 len=0 14 3.168487149 192.168.1.106 192.168.1.147 tcp 69 49938 → 9221 [psh, ack] seq=16 ack=4 win=26880 len=15 15 3.174457755 192.168.1.147 192.168.1.106 tcp 60 9221 → 49938 [psh, ack] seq=4 ack=16 win=5840 len=3 16 3.174481722 192.168.1.106 192.168.1.147 tcp 54 49938 → 9221 [ack] seq=31 ack=7 win=26880 len=0 17 3.174817948 192.168.1.147 192.168.1.106 tcp 60 9221 → 49938 [ack] seq=4 ack=31 win=5840 len=0 18 3.567587105 192.168.1.106 192.168.1.147 tcp 69 [tcp spurious retransmission] 49938 → 9221 [psh, ack] seq=16 ack=7 win=26880 len=15 19 3.568540028 192.168.1.147 192.168.1.106 tcp 60 [tcp dup ack 17#1] 9221 → 49938 [ack] seq=7 ack=31 win=5840 len=0 20 3.568551611 192.168.1.106 192.168.1.147 tcp 69 49938 → 9221 [psh, ack] seq=31 ack=7 win=26880 len=15 21 3.574509787 192.168.1.147 192.168.1.106 tcp 60 9221 → 49938 [psh, ack] seq=7 ack=31 win=5840 len=3 22 3.574533527 192.168.1.106 192.168.1.147 tcp 54 49938 → 9221 [ack] seq=46 ack=10 win=26880 len=0 23 3.574857577 192.168.1.147 192.168.1.106 tcp 60 9221 → 49938 [ack] seq=7 ack=46 win=5840 len=0 24 3.574870866 192.168.1.106 192.168.1.147 tcp 54 [tcp dup ack 22#1] 49938 → 9221 [ack] seq=46 ack=10 win=26880 len=0 25 4.367591502 192.168.1.106 192.168.1.147 tcp 69 [tcp spurious retransmission] 49938 → 9221 [psh, ack] seq=31 ack=10 win=26880 len=15 26 4.368487116 192.168.1.147 192.168.1.106 tcp 60 [tcp dup ack 23#1] 9221 → 49938 [ack] seq=10 ack=46 win=5840 len=0 27 4.368498284 192.168.1.106 192.168.1.147 tcp 69 49938 → 9221 [psh, ack] seq=46 ack=10 win=26880 len=15 28 4.374526599 192.168.1.147 192.168.1.106 tcp 60 9221 → 49938 [psh, ack] seq=10 ack=46 win=5840 len=3 29 4.374558188 192.168.1.106 192.168.1.147 tcp 54 49938 → 9221 [ack] seq=61 ack=13 win=26880 len=0 30 4.374881659 192.168.1.147 192.168.1.106 tcp 60 9221 → 49938 [ack] seq=10 ack=61 win=5840 len=0 31 4.374896303 192.168.1.106 192.168.1.147 tcp 54 [tcp dup ack 29#1] 49938 → 9221 [ack] seq=61 ack=13 win=26880 len=0 32 5.971603454 192.168.1.106 192.168.1.147 tcp 69 [tcp spurious retransmission] 49938 → 9221 [psh, ack] seq=46 ack=13 win=26880 len=15 33 5.972478351 192.168.1.147 192.168.1.106 tcp 60 [tcp dup ack 30#1] 9221 → 49938 [ack] seq=13 ack=61 win=5840 len=0 34 5.972490012 192.168.1.106 192.168.1.147 tcp 69 49938 → 9221 [psh, ack] seq=61 ack=13 win=26880 len=15 35 5.978397699 192.168.1.147 192.168.1.106 tcp 60 9221 → 49938 [psh, ack] seq=13 ack=61 win=5840 len=3 36 5.978418493 192.168.1.106 192.168.1.147 tcp 54 49938 → 9221 [ack] seq=76 ack=16 win=26880 len=0 37 5.978754841 192.168.1.147 192.168.1.106 tcp 60 9221 → 49938 [ack] seq=13 ack=76 win=5840 len=0 38 5.978768499 192.168.1.106 192.168.1.147 tcp 54 [tcp dup ack 36#1] 49938 → 9221 [ack] seq=76 ack=16 win=26880 len=0 43 7.134413907 192.168.1.106 192.168.1.147 tcp 69 49938 → 9221 [fin, psh, ack] seq=76 ack=16 win=26880 len=15 44 7.140478879 192.168.1.147 192.168.1.106 tcp 60 9221 → 49938 [psh, ack] seq=16 ack=76 win=5840 len=3 45 7.140515226 192.168.1.106 192.168.1.147 tcp 54 49938 → 9221 [rst] seq=76 win=0 len=0 46 7.140822269 192.168.1.147 192.168.1.106 tcp 60 9221 → 49938 [ack] seq=16 ack=91 win=5840 len=0 47 7.140838249 192.168.1.106 192.168.1.147 tcp 54 49938 → 9221 [rst] seq=91 win=0 len=0 (at point killed it)
what suggests me ack being sent, being ignored reason (malformed in way?). original packet sent again progressively longer delays (which suspect correct behaviour lost packets), results in transmission buffer being backed new packet not being sent. wireshark seems think resend spurious demonstrated "spurious retransmission".
the device responding packet it's sent first time, can see it's display.
it's possible there protocol incorrectness going on, don't know how diagnose problem. i'm happy work around - it's not production @ stage.
(fyi, device tti power supply).
so turns out problem firmware issue on hardware. i'm curious incorrect in ack packets cause resend, problem far concerned solved.
for completeness , encountering same problem, power supply tti pl303qmd. upgraded firmware version 3.02 4.06 , problem solved.
Comments
Post a Comment