我正在写一个java(jpcap)应用程序来区分哪个响应数据包是哪个请求数据包。突然间,我遇到这两个http数据包,我的浏览器发送的数据完全相同(seq数字,ack数字,...),除了其中一个具有推送标志和不同的识别号码。我想知道为什么浏览器发送这两个?它是Ajax吗?为什么我的浏览器发送两个具有相同属性的数据包,除了推送?
1342824149:911270 /192.168.2.#->/174.143.213.# protocol(6) priority(0) hop(128) offset(0) ident(14123) TCP 11303 > 80 seq(2473817076) win(17040) ack 3940549542
1342824149:911797 /192.168.2.#->/174.143.213.# protocol(6) priority(0) hop(128) offset(0) ident(14124) TCP 11303 > 80 seq(2473817076) win(17040) ack 3940549542 P
和更重要的问题,这两个数据包有单独的回应?或者只有一个响应?或相同的回应?以及看起来会有什么回应?
这是您的TCP堆栈发送重复数据包,而不是浏览器。 – Gabe 2012-07-22 02:21:14
为什么和如何? @Gabe – Alireza 2012-07-22 02:47:19
你的浏览器只是说“连接到端口Y上的IP地址X”和“发送这些字节”。它是内核中的TCP/IP堆栈,负责实际创建数据包并确保它们到达目的地。在这种情况下,第一个数据包没有被目的地确认,所以它再次被发送。 – Gabe 2012-07-22 04:55:35