UDP协议

UDP协议是一个简单的面向数据报的运输层协议。进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。
这与面向字节流协议的TCP不同,应用层产生的全体数据与真正发送的单个IP数据报可能没什么关系。

特点
  • UDP是无连接的
    不需要建立连接,也不需要在最后释放连接,因此减少了开销和发送数据之前的时延。

  • UDP使用尽最大努力交付

  • UDP是面向报文
    进程的每一个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。这个与面向字节流的协议不同,如TCP, 应用程序产生的全体数据与真正发送的单个IP数据报没有什么联系。

  • UDP没有拥塞控制
    因此网络出现拥塞不会使源主机的发送速率降低。这对某些实时应用很重要。(例如IP电话,实时视频会议)要求源主机以恒定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据。

  • UDP支持一对一,一对多,多对一和多对多的交互通信
    而TCP因为建立连接,只能支持1对1,所以TCP不提供广播或多播服务

  • UDP首部开销很小
    只有8字节,比TCP的20字节的首部要短。

UDP报文格式
UDP报文格式.png
  • 源端口
    源端口号,标记发送进程。

  • 目的端口
    目的端口号,标记接收进程。

  • 长度
    UDP报文长度(首部+数据),其最小值是8(仅含首部)。UDP首部长度固定为8,所以减去8,则得到数据部分的起始地址。

  • 检验和
    包括UDP首部和数据部分,IP首部的检验和只覆盖IP的首部。
    同时UDP和TCP的检验和都会覆盖首部和数据,但UDP检验和是可选的,TCP检验和是必需的。
    其次,TCP和UDP的检验和都包括12字节的伪首部。

    检验和.png
IP分片

IP层要发送一份数据报时,要查询接口的MTU,并将IP数据报长度与其比较,如果需要则要进行分片。分片可以发生在原始发送端主机上面,也可以发生在中间路由器上。

当IP数据报被分片后,每一片都成为一个独立的分组,具有自己的IP首部,任何运输层首部只会出现在第1片数据报分片中。并在选择路由时与其他分组独立。当数据报的这些片到达目的端时,可能会发生失序,但是在IP首部中有足够多的信息让接收端能正确组装这些数据报片。

尽管IP分片过程是透明的,但即使只丢失一片数据也要重传整个数据报,因为IP层没有超时重传机制。由更高层来负责超时和重传(TCP 有超时和重传机制,但UDP没有)。当来自TCP报文段的某一片丢失了后,TCP超时后会重发整个TCP报文段,该报文段对应于一份IP数据报,没有办法只重传数据报中的一个数据报片。

以太网上,数据帧的最大长度是1500字节,其中1472字节给数据(1500 - IP首部为20字节 - UDP首部为8字节)。

IP报文.png

现在假定我们发送一个数据内容为1473长度的报文,则会发生IP分片。

IP分片.png
ICMP不可达差错

发生ICMP不可达差错的一种情况就是:当路由器收到一份需要分片的数据报,而在IP首部又设置了不分片(DF)的标志比特。
如果某个程序需要判断到达目的端的路途中最小MTU是多少(路径MTU发现机制)。那么这个差错就可以被程序利用。

这种情况下的ICMP不可达差错报文格式如图所示:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • 1 运输层协议概述 1.1 进程之间的通信 网络层是为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑...
    Mr希灵阅读 8,069评论 0 34
  • 11.1 引言 UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一...
    张芳涛阅读 2,779评论 1 6
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,050评论 0 8
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,033评论 6 174
  • 计算机网络七层模型中,传输层有两个重要的协议:(1)用户数据报协议UDP (User Datagram Proto...
    Q南南南Q阅读 1,699评论 0 3