UDP与IP分片
一、引言

UDP是简单的面向数据报的运输层协议。UDP不提供可靠性:它负责把应用程序传给IP层的数据发送出去,不保证能导到目的地。
二、UDP首部

端口号表示发送进程和接受进程。由于IP层已经把IP数据报分配给了TCP和UDP,因此TCP和UDP端口号是相互独立的。
UDP长度字段指的是UDP首部和UDP数据的自己长度。
三、IP分片
由于物理网络层一般要限制每次发送数据帧的最大长度,因此当IP数据报的长度大于MTU时,就会发送IP分片。
- 分片可以发生在原始发送端主机上,也可以发生在中间路由器上。
- 已经分片过的数据报可能会再次进行分片(可能不止一次)
- IP数据报被分片以后,只有到达目的地才进行由目的端的IP层进行组装。

IP首部的16位标识、3位标志及13位片偏移用户分片过程。
- 16位标识可以唯一确定一份IP数据报
- 标志字段用一个比特来表示“更多的片”,除了最后一片外,其他每片都把该位置为1
- 标志字段有一个比特称为“不分片”位。若为1,IP不对数据报进行分片,而是将数据报丢弃并发送一个ICMP差错报文给起始端
- 片偏移字段指的是该片偏移原始数据报开始处的位置
- 分片以后,每片的总长度值要修改为该片的长度值
- 分片以后,任何传输层的首部都只出现在第一片数据中

四、ICMP不可达差错(需要分片)
当路由器收到一份需要分片的数据报,而在IP首部又设置了不分片标志比特,路由器会发送ICMP不可达差错给源端。
可以利用这一特性来判断到达目的端的路途中的最小MTU。

UDP与IP分片的更多相关文章
- iOS TUN之避免UDP包ip分片
iOS的NetworkExtension给应用暴露了一个虚拟网卡TUN设备,可以设置其MTU值.如果上层应用发送的IP包大于这个MTU就会被分片.(详见:http://blog.csdn.net/n5 ...
- TCP/IP具体解释--UDP数据报中的IP分片
1.UDP首部 2.UDP分片 在第二章,讲链路层是,提到过以太网.刨除数据帧帧头.最多传输的长度为1500.也就是说,假设一个ip数据报,长度大于1500,则须要分片. 分片方法: 在ip头中3位标 ...
- IP分片 与 TCP分段的区别 !!!!careful========以及udp中一个包大小究竟为多大合适 ==========三次握手四次挥手细节
首先声明:TCP分片应该称为TCP分段 TCP/IP详解--TCP的分段和IP的分片 分组可以发生在运输层和网络层,运输层中的TCP会分段,网络层中的IP会分片.IP层的分片更多的是为运输层的UDP服 ...
- IP分片详解
IP分片是网络上传输IP报文的一种技术手段.IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组.不同的链路类型规定有不同最大长度的链路层数据帧,称为链路层MTU(最大传输单 ...
- IP分片重组的分析和常见碎片攻击 v0.2
IP分片重组的分析和常见碎片攻击 v0.2http://www.nsfocus.net/index.php?act=magazine&do=view&mid=584 作者:yawl ( ...
- TCP/IP 协议难点之一—— IP分片
1 IP协议简单介绍 就个人而言,网络中,抛开网络安全加密这些,就只单单讨论协议本身,比较难的有三个地方: IP分片与重组 TCP滑动窗口与TCP状态的改变 TCP定时器 其实协议本身根据<TC ...
- 【转】IP分片和TCP分段
ZC: 由于 TCP中 MSS 的关系,TCP 不会造成 IP分片和TCP分段 ! 1.http://zhidao.baidu.com/link?url=YCnR8B-1EN4-cgauRtwa-iV ...
- tcp/ip分片
from http://blog.csdn.net/cumirror/article/details/5071234 前段时间要做一个关于网络嗅探的程序,里面要重组IP分片,TCP分片. 但做的时候忽 ...
- IP分片浅析
在TCP/IP分层中,数据链路层用MTU(Maximum Transmission Unit,最大传输单元)来限制所能传输的数据包大小,MTU是指一次传送的数据最大长度,不包括数据链路层数据帧的帧头, ...
随机推荐
- unity与android交互总结
http://www.jianshu.com/p/4739ce2f4cd1 http://www.cnblogs.com/suoluo/p/5443889.html http://www.th7.cn ...
- 路由软件quagga和bird日志配置打印ospf邻居变化
背景: 网络侧反馈偶尔会出现ospf邻居状态变化:full-> other status -> full.历史原因,线上运行的路由软件有quagga和bird两种.两种路由软件的日志级别配 ...
- 深入理解mysql的隔离级别
建表插入测试数据A> create table test(id int ,num int) ;Query OK, 0 rows affected (0.53 sec) A> insert ...
- Paradox
克己博伦 当一个无法阻挡的力量,碰到了一个无法移动的物体?如果这个力量移动了物体,那么这个物体就不是无法移动的.如果这个力量没有移动物体,那么这个无法阻挡的力量就被挡了下来. 上帝能造出一个重到他自己 ...
- Openssl CA.pl命令
一.简介 CA.pl是证书操作的友好接口,简化了一些相似的证书创建或管理操作 二.语法 CA.pl [-?] [-h] [-help] [-newcert] [-newreq][-newreq-nod ...
- NPOI读写Excel sheet操作
QueryInfo dataInfo = new QueryInfo(); dataInfo.CustomSQL = $@" select t1.name name,t1.url url f ...
- MapReduce的初次尝试
====前提: 搭建好集群环境(zookeeper.hadoop.hbase). 搭建方法这里就不进行介绍了,网上有很多博客在介绍这些. ====简单需求: WordCount单词计数,号称Hadoo ...
- [随笔]CENTOS7更换YUM源为163源(记录一下以防忘记)
2016年2月16日,最新163源变更后的更新方法: 访问地址为:http://mirrors.163.com/.help/centos.html 首先备份源: mv /etc/yum.repos.d ...
- 开发工具Visual Studio使用相关知识和经验的碎片化记录
开发工具Visual Studio使用相关知识和经验的碎片化记录 1.Visual Studio提示"无法启动IIS Express Web服务器"的解决方法 有时,在使用Visu ...
- Cannot evaluate the property expression "$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140\'))" found at "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuil
Cannot evaluate the property expression "$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBu ...