2. 用户数据报协议(UDP)

2.1 UDP的特点

(1)UDP是无连接的,即发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延。

(2)UDP使用了尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表,通信的两端不用保持连接,因此节省系统资源。

(3)UDP是面向报文的。UDP对应用层下来的报文即既不合并,也不拆分,而是保留这些报文的边界。也就是说应用层交给UDP多长的报文,UDP就原样发送,即一次发送一个报文。(这要求应用程序必须选择合适大小的报文,以免降低IP层的效率!)

(4)UDP没有拥塞控制:如果网络出现拥塞不会使主机的发送速率降低。这对某些实时应用很重要(如IP电话、实时视频会议等),它允许在网络发生拥塞时丢失一些数据但不允许数据有太大的时延,UDP正好适合这种要求。

(5)UDP支持一对一、一对多、多对一和多对多的交互通信。

(6)UDP的首部开销小,只有8字节,比TCP的20字节的首部要短。

2.2 UDP的首部格式

(1)抓包分析(以域名解析数据包为例)

  ①源端口:在需要对方回信时选用。不需要时可用全0。

  ②目的端口:在终点交付报文时必须要使用到

  ③长度:UDP用户数据据的长度(数据字段和首部字段),最小值是8(仅有首部时)

  ④检验和:检测UDP用户数据报在传输中是否有错。有错就丢弃

(2)UDP首部和伪首部

  ①UDP用户数据报有两个字段:数据字段和首部字段。其中的首部很简单,只有8个字节(源端口、目标端口、长度和校验和)

  ②“伪首部”:并不是UDP数据报真正的首部,只是在计算检验和时,临时添加在UDP数据报前面,得到一个临时的UDP用户数据报,检验和就是按照这个临时的UDP数据报来计算的。这个伪首部既不向下传递也不向上递交,而仅仅是为了计算检验和之用

(3)UDP检验和的计算

  ①UDP的检验和是把首部和数据部分一起都检验(有别于IP数据报检验和只检验IP数据报的首部)。

  ②发送方首先把全零放入检验和字段,再把伪首部以及UDP用户数据报看成是由许多16位的字(如上图)一起串接起来。如果数据部分不是偶数个字节,则填入一个全零字节(但不发送)。然后按二进制反码计算出这些16位字的和将此和的二进制反码写入检验和字段。然后发送这个UDP数据报。

  ③接收方把收到的UDP数据报连同伪首部(以及可能的填充全零字节)一起按二进制反码求这些16位字的和。当无差错时其结果应全为1;否则就表明有差错出现,接收方应丢弃这个UDP数据报。

第8章 传输层(2)_UDP协议的更多相关文章

  1. 第8章 传输层(1)_TCP/UDP协议的应用场景

    1. 传输层的两个协议 1.1 TCP和UDP协议的应用场景 (1)TCP协议:如果要传输的内容比较多,需要将发送的内容分成多个数据包发送.这就要求在传输层用TCP协议,在发送方和接收方建立连接,实现 ...

  2. 第6章 传输层(详解TCP的三次握手与四次挥手)

    第6章 传输层 传输层简介 传输层为网络应用程序提供了一个接口,并且能够对网络传输提供了可选的错误检测.流量控制和验证功能.TCP/IP传输层包含很多有用的协议,能够提供数据在网络传输所需的必要寻址信 ...

  3. Linux内核--网络栈实现分析(五)--传输层之UDP协议(上)

    本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/7532512 更多请看专栏, ...

  4. 传输层:TCP 协议

    传输层:TCP 协议 一.概述 TCP 和 UDP 处在同一层——运输层,但是它们有很多的不同.TCP 是 TCP/IP 系列协议中最复杂的部分,它具有以下特点: (1) TCP 提供 可靠的 数据传 ...

  5. 【知识强化】第五章 传输层 5.3 TCP协议

    这节课我们来学习一下TCP协议的特点以及TCP报文段的格式. 首先呢我们来看一下TCP有哪些特点呢.之前我们说过TCP它是一个比较可靠的面向连接的协议,所以最主要的特点它是可以面向连接的一种传输层协议 ...

  6. 第8章 传输层(3)_TCP协议

    3. 传输控制协议(TCP) 3.1 TCP协议的主要特点 (1)TCP是面向连接的传输层协议.即使用TCP协议之前必须先建立TCP连接.在传送数据完毕之后,必须释放己经建立的TCP连接. (2)每一 ...

  7. 数据通讯与网络 第五版第24章 传输层协议-TCP协议部分要点

    上一博客记录了UDP协议的关键要点,这部分记录TCP协议的关键要点. 24.3 传输控制协议(TRANSMISSION CONTROL PROTOCOL) TCP(Transmission Contr ...

  8. 数据通讯与网络 第五版第24章 传输层协议-UDP协议部分要点

    24.1 介绍 本章节主要集中于传输层协议的解读,图24.1展示TCP.UDP.SCTP在TCP\IP协议栈的位置 24.1.1 服务(Service) 每个协议都提供不同的服务,所以应该合理正确的使 ...

  9. 【知识强化】第五章 传输层 5.2 UDP协议

    这节课我们来学习一下UDP协议. 那在上节课呢我们学了这样一个打油诗. 啊,就是传输层有两个好兄弟,大哥TCP和二弟UDP.大哥很靠谱,二弟不靠谱.那只要说到UDP协议我们就要知道它的一个重要的特点, ...

  10. Linux内核--网络栈实现分析(九)--传输层之UDP协议(下)

    本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7549340 更多请查看专栏,地 ...

随机推荐

  1. drone 1.0 新的定时任务界面&&构建任务支持重启

    drone 1.0 的定时任务是一个不错的功能,早期的版本是必须使用cron 表达式的 最近发布的版本支持通过配置就可以了,很方便,只是目前比较简单的,支持小时. 天.周.月.年的模式 环境准备 do ...

  2. 关于C# winform怎么调用webapi来获取到json数据

    C/S系统也可以和B/S系统一样实现“前后端分离”,那这样写winform就相当于纯粹的前端页面了,然后再单独部署一个webapi项目,通过api调用数据库进行数据的操作,有利于维护和数据安全性的提高 ...

  3. js 时间戳和日期互转

    // 获取当前时间戳(以s为单位) var timestamp = Date.parse(new Date()); timestamp = timestamp / 1000; //当前时间戳为:140 ...

  4. 深入详解美团点评CAT跨语言服务监控(九)CAT管理平台MVC框架

    在第2章我们讲到,服务器在初始化CatServlet 之后, 会初始化 MVC,MVC也是继承自AbstractContainerServlet , 同样也是一个 Servlet 容器,这是一个非常古 ...

  5. Add task bar to ubuntu

    http://www.howtogeek.com/189819/how-to-add-a-taskbar-to-the-desktop-in-ubuntu-14.04/ sudo apt-get in ...

  6. minicom的安装及配置

    1. sudo apt-get install minicom 2. 配置 (1). sudo minicom –s (2). (3). 按“A”配置设备,再按回车保存.按”F”,把留空改为NO.回车 ...

  7. Weka训练模型的存取

    因为WEKA中所有分类器都实现了Serializable,所以只需要用java的ObjectOutputStream就可以实现了. /** * 存储model * * @param model * 训 ...

  8. Observable讲解

    参见这里 总结: Observable是传统观察者+链式模式的函数式实现 Observable官方文档 还是比较喜欢EventBus,简单粗暴,angular-event-service可支持angu ...

  9. GoJS拖动设计

    http://192.168.0.149:8035/gojs/intro/groups.html http://192.168.0.149:8035/gojs/intro/ports.html htt ...

  10. 【linux】centos6.9设置etc0网卡开机自动获取ip

    在vm新安装的centos系统中,一般选择NAT来设置和主机共享局域网,通过ifconfig etc0 192.168.xx.xx 这种作法机器重启之后就会失效,所以可以使用更改文件的方式完成设置ce ...