TCP/IP:UDP(1)
2017-02-03 15:18
295 查看
1.UDP不提供可靠性意味着:把应用程序传给IP层的数据发送出去,但是并不保证它们能够到达目的地.
2.应用程序必须关心IP数据报的长度.如果超过网络的MTU,那么就要对IP数据报进行分片.并不是只是发送端连接的第一个网络才切片,而是途径的,从源端到目的端之间的每个网络都可能进行分片(如果要分片).
3.UDP首部:(图来源于网络,是正确的)
有几点需要注意的:
(1)UDP长度是指UDP首部和UDP数据的字节长度(不包括伪首部).
(2)16位UDP长度标识值(…0000 1000)最小=8,单位是字节.就是说等于UDP首部的长度,UDP数据长度=0.
(3)UDP伪首部是用来检验UDP数据首部和UDP数据正确性的.见第4点.
4.UDP检验和覆盖UDP首部和UDP数据,区别于IP首部的检验和(只覆盖了IP首部,不检验数据).
5.UDP的检验和是可选的,TCP检验和是必须的.
6.UDP数据报长度可以是奇数个字节,但是检验和算法必须是偶数字节,所以正如上图所示,对于奇数字节长度的数据报,补0至偶数个.补0只是在计算的时候,在传送的时候是不需要这些补位的.
7.UDP和TCP都包含一个12字节长度的伪首部.伪首部包含IP首部一些信息(IP地址),目的是让UDP两次检查是否正确到达目的地.
第一次:通过伪首部IP地址验证目的主机是否正确
第二次:通过伪首部协议字段验证传输的协议是UDP不是其他误传到UDP.
8.如果发送端没有计算检验和而接收端检测到检验和由差错,UDP数据报被丢弃,不产生任何差错报文.
2.应用程序必须关心IP数据报的长度.如果超过网络的MTU,那么就要对IP数据报进行分片.并不是只是发送端连接的第一个网络才切片,而是途径的,从源端到目的端之间的每个网络都可能进行分片(如果要分片).
3.UDP首部:(图来源于网络,是正确的)
有几点需要注意的:
(1)UDP长度是指UDP首部和UDP数据的字节长度(不包括伪首部).
(2)16位UDP长度标识值(…0000 1000)最小=8,单位是字节.就是说等于UDP首部的长度,UDP数据长度=0.
(3)UDP伪首部是用来检验UDP数据首部和UDP数据正确性的.见第4点.
4.UDP检验和覆盖UDP首部和UDP数据,区别于IP首部的检验和(只覆盖了IP首部,不检验数据).
5.UDP的检验和是可选的,TCP检验和是必须的.
6.UDP数据报长度可以是奇数个字节,但是检验和算法必须是偶数字节,所以正如上图所示,对于奇数字节长度的数据报,补0至偶数个.补0只是在计算的时候,在传送的时候是不需要这些补位的.
7.UDP和TCP都包含一个12字节长度的伪首部.伪首部包含IP首部一些信息(IP地址),目的是让UDP两次检查是否正确到达目的地.
第一次:通过伪首部IP地址验证目的主机是否正确
第二次:通过伪首部协议字段验证传输的协议是UDP不是其他误传到UDP.
8.如果发送端没有计算检验和而接收端检测到检验和由差错,UDP数据报被丢弃,不产生任何差错报文.
相关文章推荐
- 循环神经网络教程第三部分-BPTT和梯度消失
- 网络知识。一个网友的回答
- linux下配置niginxhttps
- 网络知识。一个网友的回答
- windows下tomcat生成证书配置https
- windwos下Nginx配置https
- 10.4 分割TCP 的IO程序
- Angular 1.6提示$http.get(...).success is not a function
- Chrome浏览器地址栏https显示红叉和删除线,无法打开网站,且没有"继续"选项
- httpclient 工具类
- 学习网络编程时需要了解的一些问题
- https原理:证书传递、验证和数据加密、解密过程解析
- 利用hosts跳过DNS
- 浅谈原生ajax
- linux 网络编程-基础篇01
- angularjs--$http
- VMware下CentOS7网络重启出错解决方案
- Python Raw Socket使用示例(发送TCP SYN数据包)
- vmware10 centos7 网络配置
- No mapping found for HTTP request with URI [...] in DispatcherServlet with name '...'