首页 > 其他分享 >udp介绍

udp介绍

时间:2024-08-14 23:53:11浏览次数:13  
标签:udp 首部 ip 介绍 tcp 分片 数据

1.udp介绍

udp是一个简单的面向数据报的运输层协议,进程的每个输出操作都正好产生一个udp数据报,并组装成一份待发送的ip数据包,

这与面向流字符的协议不同,如tcp,应用程序产生的全体数据与真正发送的单个ip数据报可能没有什么联系。

udp不提供可靠性:它把应用程序传给ip层的数据发送出去,但是并不保证它们能到达目的地

应用程序必须关心ip数据报的长度,如果它超过网络的mtu(2.8节),那么就要对ip数据报进行分片,我们将讨论ip分片机制。

udp首部

端口号表示发送进程和接收进程。

tcp端口号与udp端口号是相互独立的,(rsh和syslog=514)

尽管相互独立,如果tcp和udp同时提供某种知名服务,两个协议通常选择相同的端口号,这纯属是为了使用方便,而不是协议本身的要求。(dns)

udp长度字段指的是udp首部和udp数据的字节长度,该字段的最小值为8字节。

udp校验和

udp检验和覆盖udp首部的udp数据。

ip首部的检验和,它只覆盖ip的首部

udp的检验和是可选的,而tcp的检验和是必须的。

ip计算检验和udp计算检验和之间存在不同的地方,首先udp数据报的长度可以为奇数字节,但是检验和算法是把若干个16bit字相加。解决方法是必要时在最后增加填充字节0,这只是为了检验和的计算(也尺说,可能增加的填充字节不被传送)

udp数据报和tcp段都包含一个12字节长的伪首部,它是为了计算检验和而设置的,伪首部包含ip首部一些字段,其目的是让udp两次检查数据是否已经正确到达目的地(例如,ip没有接受地址不是本主机的数据报,以及ip没有把应传给另一高度的数据报传给udp)

ip分片

ip把mtu与数据报长度进行比较。

如果需要则进行分片,分片可以发生在原始端主机上,也可以发生在中间路由器上。

把一份ip数据报分片以后,只有到达目的地才进行重新组装。(fr fragment)

组装由目的端的ip层来完成,其目的是使分片和重新组装过程对运输层(tcp和udp)是透明的。

已经分片过的数据报有可能会再次进行分片(可能不止一次)。

ip分片

当ip数据报被分片后,每一片都成为一个分组,具有主机的ip首部,并在选择路由时与其他分组独立,当数据报的这些片到达目的端时有可能失序,但是在ip首部中有足够的信息让接收端能正确组装这些数据报片。

尽管ip分片过程看起来是透明的,但有一点让人不想使用它;即使丢失一片数据也要重传整个数据报。

ip层本身没有超时重传的机制--由更高层来负责超时和重传(tcp有超时和重传机制但udp没有,一些udp应用程序本身也执行超时和重传),当来自tcp报文段的某一片丢失后,tcp在超时后会重发整个tcp报文端,该报文段对应于一份ip数据报,没有办法只重传数据报中的一个数据报片。

如果对数据报分片的是中间路由器,而不是起始端系统,那么起始端系统就无法知道数据是如何被分片的,就这个原因,经常要避免分片。

ip分片:注意事项

在分片时,除最后一片外,其他每一片中的数据部分(除Ip首部外的其余部分)必须是8字节的整数倍。

ip首部被服务制到各个片中,但是,端口号udp首部,只能在第1片中被发现。

需要解释几个术语:ip数据报是指ip层端到端的传输单元(在分片之前和重新组装之后),分组是指ip层和链路层之间传送的数据单元,一个分组可以是一个完整的ip数据报,也可以是ip数据报的一个分片。

icmp不可达差错(需要分片)

发生icmp不可达差错的另一种情况是,当路由器收到一份需要分片的数据报,而在ip首部又设置了分片(df)的标志比特,如果某个程序需要判断到达目的端的路途中最小mtu是多少-称作路径mtu发现机制(2.9节),那么这个差错就可以被该程序使用。如果路由器没有提供这种新的icmp差错报文格式,那么下一站的mtu就设为0。

全球互联网

在18次运行当中,只有其中2次发现的路径mtu小于1500.其中一个跨大西洋的链路mtu值为572(其近似值甚至在rfc1191中没有被列出),而路由器返回的是新格式的icmp差错报文,另外一条链路,在日本的两个路由器之间,不能处理1500字节的数据帧,并且路由器没有返回新格式的icmp差错报文,把mtu值设成1006则可以正常工作。

从这个实验可以得出结论,现在许多但不是所哟偶的广域网都卡可以处理512字节的分组,利用路径mtu发现机制,应用程序就可以充分利用更大的mtu来发送报文。

标签:udp,首部,ip,介绍,tcp,分片,数据
From: https://www.cnblogs.com/smoke520/p/18359989

相关文章

  • icmp介绍
    2.icmp介绍icmp经常被人为是ip层的一个组成部分。它传递差错报文以及其他需要注意的信息。icmp报文通常被ip层或更高层协议(tcp或udp)使用。一些icmp报文把差错报文返回给用户进程。icmp报文是在ip数据报内部被传输的。icmp报文的格式如图6-2所示。所有报文的前4个字节都是一样......
  • tcp介绍.3
    1.tcp的成块数据流我们看到tftp使用了停止等待协议,数据发送方在发送下一个数据块之前需要等待接收对已发送数据的确认,本章我们介绍tcp所使用的被称为滑动窗口协议的另一种形式的流量控制方法,该协议允许发送方在停止并等待确认前可以连续发送多个分组,由于发送方不必每发一个分组就......
  • tcp介绍.2
    2msl等待状态time_wait状态也称为2msl等待状态,每个具体tcp实现必须选择一个报文段最大生存的时间msl(maximumsegmentlifetime).它是任何报文段被丢弃前在网络内的最长时间。msl为2分钟,然而,实现中的常用值是30秒,1分钟,或2分钟。对一个具体实现所给定的msl值,处理的原则是:当tcp执......
  • tcp介绍.1
    1.tcp介绍tcp的服务tcp提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用tcp的应用(通常一个客户和一个服务器)在彼此交换数据之前必须先建立一个tcp链接。在一个tcp链接中,仅有两方进行彼此通信。tcp的服务tcp提供一种面向连接的、可靠的字节流服务。面向连接......
  • tcp介绍.4
    快速重传和快速恢复算法快速重传算法:如果一连串收到3个或3个以上的重复ack,就非常可能是一个报文段丢失了,于是我们就重传丢失的数据报文段,而无需等待超时定时器溢出。快速恢复算法:快速重传后执行的不是慢启动算法而是拥塞避免算法icmp的差错tcp能够遇到的最常见的icmp差错就是......
  • 推荐系统三十六式学习笔记:工程篇.效果保证31|推荐系统的测试方法及常用指标介绍
    目录为什么要关注指标推荐系统的测试方法1.业务规则扫描2.离线模拟测试3.在线对比测试4.用户访谈常用指标1.系统有多好?假设你已经有了自己的推荐系统,这个系统已经上线。为什么要关注指标面对推荐系统这样一个有诸多复杂因素联动起作用的系统,要时时刻刻知道它好不......
  • 一篇文章带你弄懂Python基础之列表介绍和循环遍历
    大家好,我是Go进阶者,今天给大家分享一些Python基础(列表基础和循环遍历介绍),一起来看看吧~一、列表介绍想一想:字符串可以用来存储一串信息,那么想一想,怎样存储所有同学的名字呢?定义100个变量,每个变量存放一个学生的姓名可行吗?有更好的办法吗?答:列表。1.列表的格式namesList=[......
  • 7.接口文档,JWT介绍
    【一】接口文档1)公司使用使用world编写MD共享文档第三方平台:如:https://www.showdoc.com.cn/公司自研2)主要内容如下说明变更记录全局错误相关接口简要描述请求URL请求方式参数返回示例返回参数说明备注3)字段生成(coreapi使用)安装pipinstal......
  • OpenGL 之EGL API 介绍
    EGL介绍EGL是OpenGLES和底层Native平台视窗系统之间的接口。OpenGLES本质上是一个图形渲染管线的状态机,而EGL则是用于监控这些状态以及维护Framebuffer和其他渲染Surface的外部层。EGL提供如下机制:与设备的原生窗口系统通信查询绘图表面的可用类型和配置创......
  • python之numpy(1 安装及基本介绍)
    numpy介绍numpy是Python中的一个非常流行的库,它提供了大量的数学函数工具,特别是针对数组和矩阵的操作。numpy的全称是NumericalPython,它极大地简化了数组和矩阵的运算,使得Python成为进行科学计算的一个强大工具。安装numpy要安装numpy,需在终端(win+r---->cmd)提示符下执......