TCP/IP_UDP归纳
参考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归纳相关推荐
- 对TCP/IP网络协议的浅出归纳
前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网 ...
- 网关拓扑结构与功能设计归纳
引言 本文就网关拓扑结构和常见功能与设计点归纳整理. 一.网络拓扑与流量走向 1.网络拓扑架构 下面是一个比较通用的南北流量网关部署架构,各个层次如下: 终端服务层:公司提供的各种设备.APP等 四层 ...
- 给Java新手的一些建议——Java知识点归纳(Java基础部分)
写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...
- java编程中的点_Java的21个技术点和知识点归纳(转)
1. JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可.不过对于一个有着3年以上Java经验的资深开发者来说,不 ...
- TCP,IP数据包结构
TCP/IP协议中各层的数据报结构是一个比较抽象的内容,大家在日常学习过程中往往难以理解和掌握,常常是死记硬背把它记住了事.本文首先利用Sniffer工具捕获了FTP命令操作过程中的所有数据包,然后对 ...
- TCP/IP协议-概念、应用、开发、Hack
TCP/IP协议 一 协议概述 <一> 概念 1 基本概念 Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协 ...
- golang检查tcp是否可用_宕机处理:Kubernetes集群高可用实战总结
导语 | 在企业生产环境,Kubernetes高可用是一个必不可少的特性,其中最通用的场景就是如何在Kubernetes集群宕机一个节点的情况下保障服务依旧可用.本文对在该场景下实现集群和应用高可用过 ...
- linux图形图像三剑客,就linux三剑客简单归纳
就linux三剑客简单归纳:1:awk 习题1:用 awk 中查看服务器连接状态并汇总 netstat-an|awk '/^tcp/{++s[$NF]}END{for(a in s)print a,s ...
- TCP的粘包和拆包及Netty中的解决方案
1.基本介绍 TCP 是面向连接的,面向流的,提供高可靠性服务.收发两端(客户端和服务器端)都要有一一成对的 socket, 因此,发送端为了将多个发给接收端的包,更有效的发给对方,使用了优化方法(N ...
最新文章
- mupdf不支持x64_ARM版Win10用户狂喜 微软全新补丁让应用不再不兼容
- list对象排序java_【Java】list对象(类)按某个属性排序
- Server 2012 RDS ‘there are no Remote Desktop License Servers available to provide a license.’
- 二、Netty服务端/客户端启动整体流程
- a卡显存测试软件_官方游戏性能堪比RTX 3080 苏姿丰:RX 6000 Big Navi是史上最强A卡...
- torch.randn与torch.rand的区别
- 计算机基础知识离线作业答案,浙大远程教育计算机离线作业1.计算机基础知识题...
- 写sql语句的经验之谈
- 2020快手用户及营销报告
- 位运算(、|、^、~、>>、<<)
- alexnet论文_【SOT】Siamese RPN++ 论文和代码解析
- 朗文3000词汇表带音标_SBS朗文国际英语教程第二册单词表(带音标)
- 虚拟机黑裙加载硬盘_适合练手,在虚拟机中安装黑群晖,想要组建NAS服务器的看这里...
- 海军领域搜狗细胞词库
- html5快手视频播放特效,抖音快手热门上人在天上飞的特效视频教程
- 租号服务器未响应,租号玩启动不了wegame
- win7 c盘空间不足怎么扩大
- 如何快速有效的发散思维?
- 知识图谱论文读后感001
- 流量卡之家:5G从概念到落地,未来工厂触手可及