ip协议的数据分片备忘

总结: 不仅tcp协议能对数据段进行分割,ip协议也具备这个功能,之所以会这样是两者都受到底层MTU的限制(虽说tcp是根据MSS限制来分割数据包,由于MTU=tcp包头+ip包头+MSS,所以其实也算是受MTU的制约。)。但是尽量别让ip协议来负责数据包的分包工作,因为虽然ip协议会对数据包进行分割,编号和分包的组装,但是ip协议不负责重传,所以传输层不提供重传机制就可能会丢失数据,而就算上层能保证重传,但是如果分包是ip协议负责,上层协议无法知道哪个分包丢失(协议之间是透明的),所以只能是将整个数据包进行重传,这样极度浪费资源,因此应该避免让ip分包。

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值。

时间: 2024-08-28 01:17:24

ip协议的数据分片备忘的相关文章

数据备份与恢复备忘

1.MySqlDump备份数据库 首先进入命令提示符环境,进入到Mysqldump.exe所在的目录(C:\Program Files\MySQL\MySQL Server 5.7\bin), format: >Mysqldump -u user -p dbname > abc.sql (备份库中的所有表) eg: >Mysqldump -u root -p Test_DB > C:/DbBackup/Test_DB.sql (注意‘/’方向) 2.还原数据库 >Mysql

批量插入数据存储过程备忘

1 DELIMITER / 2 CREATE PROCEDURE insertuser() 3 BEGIN 4 SET @i = 1000; 5 SET @temp = 'xxx'; 6 WHILE @i < 3000 DO 7 SET @username = CONCAT(@temp,@i); 8 INSERT INTO xxx(id,username,password,nikename,head,email,ischeckemail) values 9 (@username,@usernam

TCP/IP协议中分包与重组原理介绍

[原文链接] 引言 分片是分组交换的思想体现,也是IP协议解决的两个主要问题之一.在IP协议中的分片算法主要解决不同物理网络最大传输单元(MTU) 的不同造成的传输问题.但是分组在传输过程中不断地分片和重组会带来很大的工作量还会增加一些不安全的因素.我们将在这篇小论文中讨论IP分片的原因.原理.实现以及引起的安全问题. 一.什么是IP分片 IP分片是网络上传输IP报文的一种技术手段.IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组.这一过程称为分片(fragment

对TCP/IP协议的一些看法(4):网络层协议概述

之前有提到,链路层的上层是网络层(Internet层),也有翻译为网际层.这层开始一直到应用层就是用户所需要关注的地方了.网络层协议包括了最著名的IP协议.ICMP协议.IGMP协议等,今天主要对IP协议进行一下概述. IP协议: 数据从应用层传下来,在每一层都要对数据的头部进行封装,包括传输层添加TCP或UDP报头,IP层添加IP报头以及链路层添加以太网报头.网络层的报文叫做IP数据包,其主要的格式如下: 其中各位的意思是: 1.版本号:占4位,代表是IPv4还是IPv6 2.首部长度:4位,

TCP/IP协议简介

计算机网络是什么? 简单地理解,计算机网络的任务就是传输数据.为了完成这一复杂的任务,国际标准化组织ISO提供了OSI参考模型,这种模型把互联网网络氛围7层,分别是物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.每个曾有明确的分工,并且在层与层之间,下层为上层提供服务.这种分层的思想简化了网络系统的设计过程,例如在设计应用层时候只需要考虑创建满足用户实际需求的应用:在设计传输层时,只需要考虑如何在两个主机之间传输数据:在设计网络层时,只需要考虑如何在网络上找到一条发送数据的路径,即路

《图解TCP/IP》--TCP/IP协议分层模型与通信

本篇随笔只是粗略了解了一下TCP/IP协议分层及其之间的通信,往后针对每个部分会深入理解,以下仅供参考. 一.TCP/IP与OSI参考模型关系 OSI参考模型注重通信协议必要的功能是什么,而TCP/IP则更强调在计算机上实现协议应该开发哪种程序. 二.TCP/IP协议分层模型各个层次讲解 1. 硬件(物理层) TCP/IP的最底层是负责数据传输的硬件.这种硬件就相当于以太网或电话线路等物理层的设备. 2. 网络接口层(数据链路层) 网络接口层利用以太网中的数据链路层进行通信,因此属于接口层.也就

TCP/IP协议学习

计算机网路学得不好,首先先放个OSI七层网络模型吧 在协议的控制下,上层对下层进行调用,下层对上层进行服务, 上下层间用交换原语交换信息.这样可以提高传输速率,并且保证数据安全,所以说其实每一层都有存在的必要 但是现在互联网上大家都有TCP/IP协议,可以说是某种黑话,他封装了前三层 每一层也有不同的协议 在网络通信的过程中,将发出数据的主机称为源主机,接收数据的主机称为目的主机.当源主机发出数据时,数据在源主机中从上层向下层传送.源主机中的应用进程先将数据交给应用层,应用层加上必要的控制信息就

Wireshark数据包分析之IP协议包解读

*此篇博客仅作为个人笔记和学习参考 IP协议包首部格式 IP数据包概况 Internet Protocol Version 4, Src: 192.168.1.104 (192.168.1.104), Dst: 119.75.217.109 (119.75.217.109)#IPv4,源IP地址:192.168.1.104,目标IP地址:119.75.217.109#Version: 4 #IP协议版本:4#Header Length: 20 bytes #头部长度:20字节#Different

TCP/IP协议数据包文件PCAP分析器

一.设计原理 1.PCAP文件构成 参考http://blog.csdn.net/gulu_gulu_jp/article/details/50494909 PCAP文件由一个PCAP文件头和多个PCAP数据包组成,PCAP数据又由数据包头和数据包内容组成.数据包内容才是我们将要进行分析还原的TCP/IP协议数据.PCAP总体结构如图 11所示: 图 11 PCAP文件总体结构 以TCP协议为例,详细解析PCAP文件格式.PCAP前24个字节为文件头,包含了文件信息,其结构如图 11所示.接着1