TCP 难道也要重组? 做网络和设备的来说说。
2011/12/15 Moore <lyx...@gmail.com>:
追悔莫及啊。
On Dec 15, 10:30 am, Chaos Eternal <chaoseter...@shlug.org> wrote:
> tcp不需要重组?
>
This is normal and is just TCP/IP working as designed.
-- from superuser.com
F.i. in http, the reply often takes more than one packet. All but the
last packet of the reply are marked like this. It just means that this
packet is part of a larger message.
--from fixunix.com
On Dec 15, 10:40 am, Moore <lyx...@gmail.com> wrote:
> 不懂啊,羞愧+悔恨。
>
> 追悔莫及啊。
>
其中主要的是,如果一个 HTTP 协议报文不完整,就会提示 TCP segment of a reassemble PDU
而怎么算HTTP 报文不完整, 见HTTP/1.1 协议,要有头又有尾才行。
这个一般表示你当前看到的这个大包是从TCP#1,#2,#5,#10(我随便写的,Wireshark里面有提示的)组合起来的一个完整的应用程序的请求。
针对HTTP, SMB. FTP这类协议(有很多,我忘记了)都有这种重组的功能。
2011/12/15 Moore <lyx...@gmail.com>:
--
================================
Best Regards,
Tim Chen
看到wireshark 的一个开发人员说,只做了HTTP重组,你确定其他的还有?
> ip包分片是由于下一层(链路层)MTU不能传输ip包那么长的帧,导致ip包被分割成几个小ip包。
那这么说,一个应用层的包在发送的时候可能被两次分割。 一次在tcp/udp层。
另一次在ip层。
> tcp分片是由于应用层的某个PDU很大,一个tcp装不下,于是就会出现多个tcp包。这些包的特点是ACK字段数值都相等(普通情况下,不同的tcp包不可能有相同的ack,除非是错误),但是SN字段和普通包类似,每个都在增长。然后收到这些包的那端,回复的ack包数量与之相等,而且ack包里的sn都是一样的,数值等于刚才tcp分片里的ack值。
> 你可以看一下收到的分片tcp的flags,只有最后一个包的push被置1,前面的包都是0,和普通不分片的包比较一下,普通的包也是1。当接收端收到push为1的包时,才会给发送端回复ack包(rfc建议接收端端缓存push未被置1的包,不发给上层,直到收到最后一个置1的包),同时重组数据段内容,形成一个PDU发给上层,至于push标志位是否用某些接口函数传递给应用层,是不一定的(rfc建议)。所以我不太理解tim的说法,在我看来这个功能是虽然与上层、上层PDU有关,但是实质是tcp协议进行监测、分片、重组、完成的。可以看看这个,虽然是英文的:http://freesoft.org/CIE/RFC/1122/88.htm ,还有rfc http://www.faqs.org/rfcs/rfc793.html 。
>
> 如果你不想看到wireshark这个提示,可以修改:
> edit->preferences->protocols->tcp->Allow subdissector to desegment TCP
> streams
>
> 附:
> http://www.wireshark.org/lists/wireshark-users/200806/msg00047.html
> http://hi.baidu.com/yuanhuiyong/blog/item/c2e4404d5ffd7d02b2de0500.html
>
--
Wizard
--
Wizard
On Dec 16, 9:59 am, liyaoshi <liyao...@gmail.com> wrote:
> udp 我记得没有fragment
>
> 在 2011年12月16日 上午9:46,Wizard <wizarddewh...@gmail.com> 写道:
>
>
|
Wireshark calls this mechanism reassembling, although a specific protocol specification might use a different term for this (e.g. desegmentation, defragmentation, ...). |
2011/12/16 Wizard <wizard...@gmail.com>:
http://tools.ietf.org/html/rfc1122#page-82 是指 4.2.2.2 Use of Push: RFC-793 Section 2.8
--
Wizard
--
Wizard