参考TCP/IP三卷
第11章 UDP:用户数据报协议
在这章中,提到了UDP,分片,和UDP服务器的特征。

文章第一句话就指出,IP数据报分片,并不是发送端主机连接第一个网络才这么做,而是在源端到目的端之间

每个网络都可能产生分片。
最显著一个特征,不提供可靠性。

UDP首部字段:
16位UDP长度:这个长度指的是全长减去IP首部的长度。即,UDP首部和UDP数据的字节长度

UDP检验和:
看看IP首部检验方法:只覆盖了IP首部,不涉及到数据。
UDP和TCP都有覆盖他们的首部和数据, 同时,UDP的检验和是可选的,TCP是必须的。RFC标准中,UDP检验默认

是开启的。要想知道UDP是否打开检验和,检查UDP首部的UDP检验和即可。
检验时是16bit进行相加,所以对可能出现奇字节的UDP,经常用一个全0的字段填充,这个全0的字段是否会被

发送,要靠具体情况而定。

UDP和TCP段都包含一个12字节长的伪首部,为了计算检验而设置,不做为包发送, 伪首部包含IP首部一些字段

,其目的让UDP进行两次检验。。 其实可以发现ARP中也包含了一些重复性的数据。我对这个看法认为,各层

之间是透明的,除了一些检验外,不涉及到其他数据交换等。所以有这种现象是正常的。

IP分片:
为什么要IP分片。略
在分片时,除了第一片有运输层的首部,其他都只有IP层的首部
几个主要特征位:
一个唯一的标志值
是否允许分片()
是否还有其他分片
偏移量

ICMP不可达差别(需要分片)
基本MTU都在1500字节左右
当路由器收到一份需要分片的数据报,而在IP首部又设了不可分片标志.在该报文中设置了下一站网络的MTU

最大UDP数据报长度
理论上,IP数据报最大长度为65535字节。去除20字节IP首部和8个字节的UDP首部,理论为65507,但是大多

数实现所提供的长度比这个最大值小

UDP路径MTU发现

UDP和ARP之间交互作用
这里作者举了一个很有意思的例子:发送一个8192字节UDP,产生6个数据报片,ARP缓存似乎空的。
用tcpdump查看结果是,在第一个arp返回前,总共产生6个ARP请求。认为原因是,IP很快产生6个数据报片,而

每个数据报片都引发一个ARP请求。
在接收到第一个ARP应答时,只发送最后一个数据报片,似乎将前5个数据报片全都丢弃了。那么可以得出,

ARP操作的规律,在等待一个ARP应答时,只将最后一个报文发给特定的目的主机(FIFO)。(RFC里规定,ARP应该

至少保留一个报文.)
在这里就有个问题,如果IP分片越多,发送的ARP就越多。建议最高速率是每秒一次。
在监视时大家会发现没产生ICMP错误,这里有两个原因:
1.大多数从Berkeley派生的实现从不产生错误.这些实现会设置定时器.比如在以上例子中,在第一个数据报

片出现时,IP层必须启动一个定时器.正常值为30秒或60秒,如果超时,或所有数据报片未能全部到达,那么将丢弃
2.并未接收到第一个数报片(包含传输层首部),ICMP就无法区分出是哪个进程所发送的数据报被丢弃.

UDP输入队列
一台服务器,先休眠30秒.2台客户机,同时向它各发送3个数据报,在12秒内完成.结果S只收到两台C的第一份数

据报.其他四份丢弃.从这里可以看出,不存在像ICMP的报错信息,UDP输出队列遵循FIFO的.而在ARP里却是LIFO.

限制本地IP地址

大多UDP服务器在创建UDP端点都使用直接监听方式.如 *.* ports
就表明进入的UDP数据报如果其目的为服务器端口,那么(可能有多个地址)本接口均可接收到它.

可以手动指定IP地址
变成
XXX.XXX.XXX.XXX ports

TCP/IP_UDP归纳相关推荐

  1. 对TCP/IP网络协议的浅出归纳

    前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网 ...

  2. 网关拓扑结构与功能设计归纳

    引言 本文就网关拓扑结构和常见功能与设计点归纳整理. 一.网络拓扑与流量走向 1.网络拓扑架构 下面是一个比较通用的南北流量网关部署架构,各个层次如下: 终端服务层:公司提供的各种设备.APP等 四层 ...

  3. 给Java新手的一些建议——Java知识点归纳(Java基础部分)

    写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...

  4. java编程中的点_Java的21个技术点和知识点归纳(转)

    1. JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可.不过对于一个有着3年以上Java经验的资深开发者来说,不 ...

  5. TCP,IP数据包结构

    TCP/IP协议中各层的数据报结构是一个比较抽象的内容,大家在日常学习过程中往往难以理解和掌握,常常是死记硬背把它记住了事.本文首先利用Sniffer工具捕获了FTP命令操作过程中的所有数据包,然后对 ...

  6. TCP/IP协议-概念、应用、开发、Hack

    TCP/IP协议 一 协议概述 <一> 概念 1 基本概念     Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协 ...

  7. golang检查tcp是否可用_宕机处理:Kubernetes集群高可用实战总结

    导语 | 在企业生产环境,Kubernetes高可用是一个必不可少的特性,其中最通用的场景就是如何在Kubernetes集群宕机一个节点的情况下保障服务依旧可用.本文对在该场景下实现集群和应用高可用过 ...

  8. linux图形图像三剑客,就linux三剑客简单归纳

    就linux三剑客简单归纳:1:awk 习题1:用 awk 中查看服务器连接状态并汇总 netstat-an|awk '/^tcp/{++s[$NF]}END{for(a in s)print a,s ...

  9. TCP的粘包和拆包及Netty中的解决方案

    1.基本介绍 TCP 是面向连接的,面向流的,提供高可靠性服务.收发两端(客户端和服务器端)都要有一一成对的 socket, 因此,发送端为了将多个发给接收端的包,更有效的发给对方,使用了优化方法(N ...

最新文章

  1. mupdf不支持x64_ARM版Win10用户狂喜 微软全新补丁让应用不再不兼容
  2. list对象排序java_【Java】list对象(类)按某个属性排序
  3. Server 2012 RDS ‘there are no Remote Desktop License Servers available to provide a license.’
  4. 二、Netty服务端/客户端启动整体流程
  5. a卡显存测试软件_官方游戏性能堪比RTX 3080 苏姿丰:RX 6000 Big Navi是史上最强A卡...
  6. torch.randn与torch.rand的区别
  7. 计算机基础知识离线作业答案,浙大远程教育计算机离线作业1.计算机基础知识题...
  8. 写sql语句的经验之谈
  9. 2020快手用户及营销报告
  10. 位运算(、|、^、~、>>、<<)
  11. alexnet论文_【SOT】Siamese RPN++ 论文和代码解析
  12. 朗文3000词汇表带音标_SBS朗文国际英语教程第二册单词表(带音标)
  13. 虚拟机黑裙加载硬盘_适合练手,在虚拟机中安装黑群晖,想要组建NAS服务器的看这里...
  14. 海军领域搜狗细胞词库
  15. html5快手视频播放特效,抖音快手热门上人在天上飞的特效视频教程
  16. 租号服务器未响应,租号玩启动不了wegame
  17. win7 c盘空间不足怎么扩大
  18. 如何快速有效的发散思维?
  19. 知识图谱论文读后感001
  20. 流量卡之家:5G从概念到落地,未来工厂触手可及

热门文章

  1. SpaceVim 中文教程
  2. ODBC 编程API
  3. Android 机顶盒TV app开发
  4. 【顺序表】13 顺序表ADT模板设计及简单应用:将顺序表中前 m 个元素和后 n 个元素进行互换
  5. 经典机器学习算法:高斯判别分析GDA
  6. 网络计算机表格教程,新手电脑怎样制作表格步骤?
  7. Android 与 Chrome OS 中针对大屏幕设备的更新
  8. 51单片机之——串口通信(含实现部分)
  9. 绿岛风IPO上市已过会 加大人才储备 创新管理模式
  10. 软件工程复试——二、可行性研究