IP-层内存限制的利器-和-MAC-化解-TCP-分段技术 (ip存储空间)
引言
在数据通信中,IP 和 MAC 层在发送数据包时都面临内存受限的问题。这导致了对消息长度的限制,进而对数据传输带来了挑战。为了克服这一限制,TCP 协议在将数据传递给 IP 层之前,需要将可变长度的字节打包成多个段,确保每个段的长度适当。TCP 分段技术
TCP(传输控制协议)是一种可靠的传输协议,旨在确保数据在网络中的可靠传输并提供流控制。在将数据传递给 IP 层之前,TCP 将数据分割成一系列的段,每个段都有自己的序号和校验和。这样做的目的是适应 IP 层和 MAC 层的限制,确保数据可以在网络中正确传输。IP 层
IP 层是网络协议栈中负责将数据从源主机传输到目标主机的层。IP 层的数据单元称为 IP 数据报,它包含了源 IP 地址、目标 IP 地址和其他相关的控制信息。由于 IP 数据报的长度受到 IP 层内存的限制,因此 TCP 需要将数据分割成适当的长度,以便能够在 IP 层进行传输。MAC 层
MAC 层是网络协议栈中的另一层,负责将数据从一个节点传输到另一个节点。MAC 层使用 MAC 地址来标识网络设备,它将数据封装成帧的形式进行传输。由于 MAC 帧的长度也受到内存限制,TCP 需要将数据分割成适当的长度,以便能够在 MAC 层进行传输。分段过程
为了实现数据的分段,TCP 使用了一种称为分段的技术。在分段过程中,TCP 将数据分割成多个适当长度的段,每个段都有自己的序号和校验和。这样做的好处是,即使在网络传输过程中发生丢包或错误,TCP 也可以通过重传丢失的段或纠正错误的段来保证数据的可靠传输。TCP 传输过程
在 TCP 传输过程中,发送方和接收方之间会进行一系列的握手和确认操作,以确保数据的可靠性和完整性。发送方会根据接收方的反馈信息来调整发送的段的大小,以适应网络的状况和接收方的处理能力。这样,TCP 可以根据实际情况动态地调整分段的大小,以提高传输效率和性能。结论
IP 和 MAC 层的内存受限要求 TCP 在传递数据给 IP 层之前,将可变长度的字节打包成多个适当长度的段。这样做可以克服内存限制,确保数据可以在网络中正确传输。TCP 通过分段技术和握手机制,保证了数据的可靠性和完整性。这些机制使得 TCP 成为一种可靠的传输协议,广泛应用于现代网络通信中。我办公电脑的IP地址和MAC被网管限制了网速,每秒3KB的网速,要是我更换IP地址后,可以达到20
1、众所周知,利用路由器进行限速时,我们通过根据DHCP服务器地址分配范围来进行限速。 如图就是路由器常见的一种动态IP地址分配策略:2、当网管员对局域网速进行限制时,通常是在“宽带限制”选项卡中,将所限制的IP地址范围也定义在“192.168.0.100”至“192.168.0.199”之间,这种疏忽大意也为我们突破路由器限速提供了基础。 3、要想突破路由器限速设置,我们只需要给电脑 分配静态IP地址,其地址范围位于“192.168.0.199”之后就可以啦。 下面就来看一下具体的设置方法。 4、按“Windows“+“R”打开“运行”对话框,输入CMD进入MSDOS界面。 5、在打开的MSDOS界面中,输入“IPCONFIG /all”命令就可以查看到“网关”和“DNS”地址啦。 6、接下来手动设置IP地址:打开“控制面板”,点击“网络和共享中心”项进入。 7、在打开的窗口中,点击“更改适配器设置”按钮。 8、接着右击“本地连接”,从弹出的菜单中选择“属性”项。 9、双击“TCP/IP协议”,将其IP地址设置为“手动设置IP地址”,同时进行如图所示的设置“,就会发现网速限制被解除啦。
IP分片和TCP分段有什么区别?
IP分片和TCP分段的区别 1,MTU(Maximum Transmission Unit,MTU),最大传输单元 (1)以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492个字节。 链路层的这个特性称作MTU。 不同类型的网络大多数都有一个上限。 如果IP层有一个数据要传,且数据的长度比链路层的MTU还大,那么IP层就要进行分片(fragmentation),把数据报分成若干片,这样每一个分片都小于MTU。 (2)把一份IP数据报进行分片以后,由到达目的端的IP层来进行重新组装,其目的是使分片和重新组装过程对运输层(TCP/UDP)是透明的。 由于每一分片都是一个独立的包,当这些数据报的片到达目的端时有可能会失序,但是在IP首部中有足够的信息让接收端能正确组装这些数据报片。 (3)尽管IP分片过程看起来透明的,但有一点让人不想使用它:即使只丢失一片数据也要重新传整个数据报。 why?因为IP层本身没有超时重传机制------由更高层(比如TCP)来负责超时和重传。 当来自TCP报文段的某一片丢失后,TCP在超时后会重发整个TCP报文段,该报文段对应于一份IP数据报(而不是一个分片),没有办法只重传数据报中的一个数据分片。 (4)使用UDP很容易导致IP分片,TCP试图避免IP分片。 那么TCP是如何试图避免IP分片的呢?其实说白了,采用TCP协议进行数据传输是不会造成IP分片的,因为一旦TCP数据过大,超过了MSS,则在传输层会对TCP包进行分段(如何分,见下文!),自然到了IP层的数据报肯定不会超过MTU,当然也就不用分片了。 而对于UDP数据报,如果UDP组成的IP数据报长度超过了1500,那么IP数据报显然就要进行分片,因为UDP不能像TCP一样自己进行分段。 总结:UDP不会分段,就由我IP来分。 TCP会分段,当然也就不用我IP来分了! 2,MSS(Maxitum Segment Size)最大分段大小的缩写,是TCP协议里面的一个概念(1)MSS就是TCP数据包每次能够传输的最大数据分段。 为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460。 通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。 (2)相信看到这里,还有最后一个问题:TCP是如何实现分段的呢?其实TCP无所谓分段,因为每个TCP数据报在组成前其大小就已经被MSS限制了,所以TCP数据报的长度是不可能大于MSS的,当然由它形成的IP包的长度也就不会大于MTU,自然也就不用IP分片了
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。