実現したいこと
raspberrypiのapacheサーバーからテキストファイルをダウンロードするスクリプトを書き、ハンドシェイクはうまくいっているのですが受信したことを知らせるackの送信がうまくいかないためサーバーが再送を繰り返します。
よろしくお願いします。
発生している問題・分からないこと
ログを見るとオバーフローしているのか値が変化してしまっているように見えます。あまり詳しくないのでわかりません。すみません。
該当のソースコード
python3
1print(last_ack) 2print(ack_num) 3packet = IP(dst=TARGET_IP, src=SRC_IP) / TCP(dport=TARGET_PORT, 4 sport=SRC_PORT, flags="A", 5 seq=int(last_ack), 6 ack=int(ack_num)) 7send(packet, verbose=True)
pythonログ: 50 2250127638 Wireshark: 10896 16.015969 192.168.11.55 192.168.11.66 TCP 54 65432 → 80 [ACK] Seq=4294966346 Ack=537 Win=8192 Len=0 全体のやり取り 6377 10.904455 192.168.11.55 192.168.11.66 TCP 54 65432 → 80 [SYN] Seq=0 Win=8192 Len=0 6378 10.904770 192.168.11.66 192.168.11.55 TCP 60 80 → 65432 [SYN, ACK] Seq=0 Ack=1 Win=64240 Len=0 MSS=1460 6379 10.908132 192.168.11.55 192.168.11.66 TCP 54 65432 → 80 [ACK] Seq=1 Ack=1 Win=8192 Len=0 6380 10.910486 192.168.11.55 192.168.11.66 HTTP 103 GET /index.html HTTP/1.1 6381 10.910771 192.168.11.66 192.168.11.55 TCP 60 80 → 65432 [ACK] Seq=1 Ack=50 Win=64191 Len=0 6391 10.912515 192.168.11.66 192.168.11.55 TCP 590 80 → 65432 [ACK] Seq=1 Ack=50 Win=64191 Len=536 6392 10.912515 192.168.11.66 192.168.11.55 TCP 590 80 → 65432 [ACK] Seq=537 Ack=50 Win=64191 Len=536 6393 10.912515 192.168.11.66 192.168.11.55 TCP 590 80 → 65432 [PSH, ACK] Seq=1073 Ack=50 Win=64191 Len=536 6394 10.912515 192.168.11.66 192.168.11.55 TCP 590 80 → 65432 [ACK] Seq=1609 Ack=50 Win=64191 Len=536 6395 10.912515 192.168.11.66 192.168.11.55 TCP 590 80 → 65432 [ACK] Seq=2145 Ack=50 Win=64191 Len=536 6396 10.912515 192.168.11.66 192.168.11.55 TCP 590 80 → 65432 [PSH, ACK] Seq=2681 Ack=50 Win=64191 Len=536 6397 10.912515 192.168.11.66 192.168.11.55 TCP 590 80 → 65432 [ACK] Seq=3217 Ack=50 Win=64191 Len=536 6398 10.912515 192.168.11.66 192.168.11.55 TCP 590 80 → 65432 [ACK] Seq=3753 Ack=50 Win=64191 Len=536 6399 10.912515 192.168.11.66 192.168.11.55 TCP 590 80 → 65432 [PSH, ACK] Seq=4289 Ack=50 Win=64191 Len=536 6400 10.912515 192.168.11.66 192.168.11.55 TCP 590 80 → 65432 [ACK] Seq=4825 Ack=50 Win=64191 Len=536 6712 11.122158 192.168.11.66 192.168.11.55 TCP 590 [TCP Retransmission] 80 → 65432 [ACK] Seq=1 Ack=50 Win=64191 Len=536 7272 11.562079 192.168.11.66 192.168.11.55 TCP 590 [TCP Retransmission] 80 → 65432 [ACK] Seq=1 Ack=50 Win=64191 Len=536 7739 12.426157 192.168.11.66 192.168.11.55 TCP 590 [TCP Retransmission] 80 → 65432 [ACK] Seq=1 Ack=50 Win=64191 Len=536 9856 14.122178 192.168.11.66 192.168.11.55 TCP 590 [TCP Retransmission] 80 → 65432 [ACK] Seq=1 Ack=50 Win=64191 Len=536 10896 16.015969 192.168.11.55 192.168.11.66 TCP 54 65432 → 80 [ACK] Seq=4294966346 Ack=537 Win=8192 Len=0 10897 16.016306 192.168.11.66 192.168.11.55 TCP 60 [TCP Dup ACK 6381#1] 80 → 65432 [ACK] Seq=5361 Ack=50 Win=64191 Len=0 11901 17.486286 192.168.11.66 192.168.11.55 TCP 590 [TCP Spurious Retransmission] 80 → 65432 [ACK] Seq=1 Ack=50 Win=64191 Len=536
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
ChatGPTに言われて0xFFFFFFFFでマスクしてみましたが結果は同じです。
補足
環境:windows

あなたの回答
tips
プレビュー