当前位置: 技术问答>linux和unix
新手请教:IP reassembly 和 IP defrag 的区别
来源: 互联网 发布时间:2016-12-26
本文导语: 这方面我是新手,被这两个概念搞的混的不行,请大家指教 | IP reassembly assembly 是组合。集合的意思,前面加一个re前缀,是重新,再次的意思,也就是重新组合起来 和 IP defrag fragmen...
这方面我是新手,被这两个概念搞的混的不行,请大家指教
|
IP reassembly
assembly 是组合。集合的意思,前面加一个re前缀,是重新,再次的意思,也就是重新组合起来
和
IP defrag
fragment 是 段的意思,de前缀是 解,分解的意思,也就是分成一段段,
这两个词语应该是个相对的过程。
你发送报文的时候,由于报文很大,而链路层MAC层又有报文大小的限制,比如 1512字节,那么上层就要把很大的报文分成很多个 1512字节, 这就是 defrag,也就是分解
而这些报文一一到了网络的另一端,那边需要逆着这个过程,将这么多个1512字节的报文组合在一起,形成 发送端上层意欲发送的完整内容, 这个过程就是 reassembly,重新组合起来
在网络栈 也就是 tcp/ip 七层角度看来, 接收端就是将发送端做的事情颠倒过来,发送端分解,接收端就组合,发送端的MAC层将4bit转成5bit,或将8bit转换成10bit到达phy物理层,之后bit流到信号线上,那么接收端的phy物理层就将信号线上的数据,由10bit转换成8bit,由5bit转换成4bit给到MAC层,数据流向上层,
就是 对着干。。
assembly 是组合。集合的意思,前面加一个re前缀,是重新,再次的意思,也就是重新组合起来
和
IP defrag
fragment 是 段的意思,de前缀是 解,分解的意思,也就是分成一段段,
这两个词语应该是个相对的过程。
你发送报文的时候,由于报文很大,而链路层MAC层又有报文大小的限制,比如 1512字节,那么上层就要把很大的报文分成很多个 1512字节, 这就是 defrag,也就是分解
而这些报文一一到了网络的另一端,那边需要逆着这个过程,将这么多个1512字节的报文组合在一起,形成 发送端上层意欲发送的完整内容, 这个过程就是 reassembly,重新组合起来
在网络栈 也就是 tcp/ip 七层角度看来, 接收端就是将发送端做的事情颠倒过来,发送端分解,接收端就组合,发送端的MAC层将4bit转成5bit,或将8bit转换成10bit到达phy物理层,之后bit流到信号线上,那么接收端的phy物理层就将信号线上的数据,由10bit转换成8bit,由5bit转换成4bit给到MAC层,数据流向上层,
就是 对着干。。
|
你把1000个字节拆成10个由100多个字节组成的数据帧,就叫defrag.
你再把刚刚拆成的数据帧组成原来的1000个字节,就叫reassembly.
IP不IP,那是应用场合。
你再把刚刚拆成的数据帧组成原来的1000个字节,就叫reassembly.
IP不IP,那是应用场合。
|
IP数据包中的组包和分包操作
|
UDP要求包小于64K,过长需要拆分,TCP没有限制