第8章 传输层(2)_UDP协议

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数据报。

时间: 2025-01-18 10:56:01

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

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

1. 传输层的两个协议 1.1 TCP和UDP协议的应用场景 (1)TCP协议:如果要传输的内容比较多,需要将发送的内容分成多个数据包发送.这就要求在传输层用TCP协议,在发送方和接收方建立连接,实现可靠传输.流量控制和拥塞避免.(如下载500M电影.QQ好友传输文件.浏览网页.发送电子邮件等) (2)UDP协议:一个数据包就能发送全部内容,不需要持续发送,发送方和接收方不需要建立连接.由于就一个数据包不需要流量控制和拥塞避免,在传输层不需要负责可靠传输.如果数据包发送出去,应用程序没有收到返回

传输层:UDP协议

传输层:UDP 协议 一.传输层协议 从之前介绍的网络层协议来看,通信的两端是两台主机,IP 数据报首部就标明了这两台主机的 IP 地址.但是从传输层来看,是发送方主机中的一个进程与接收方主机中的一个进程在交换数据,因此,严格地讲,通信双方不是主机,而是主机中的进程.主机中常常有多个应用进程同时在与外部通信(比如你的浏览器和 QQ 在同时运行),下图中,A 主机的 AP1 进程在于 B 主机的 AP3 进程通信,同时主机 A 的 AP2 进程也在与 B 主机的 AP4 进程通信.两个主机的传输层

第五章 传输层

传输层的两个协议 TCP(Transmission Control Protocol,传输控制协议)需要将要传输的        文件分段传输   建立会话     可靠传输      流量控制 UDP(User Data Protocol,用户数据报协议)  一个数据包就能够完成数据通信 不分段 不需要建立会话 不可靠传输  不需要流量控制 常见使用UDP协议:QQ消息  屏幕广播 多播 广播  DNS解析 查看会话 netstat -n 查看建立会话的进程 netstat -nb 传输层协议

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

本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/7532512 更多请看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html 作者:闫明 注:标题中的”(上)“,”(下)“表示分析过程基于数据包的传递方向:”(上)“表示分析是从底层向上分析.”(下)“表示分析是从上向下分析. 这里看看数据包从IP层是如何

传输层:TCP 协议

传输层:TCP 协议 一.概述 TCP 和 UDP 处在同一层——运输层,但是它们有很多的不同.TCP 是 TCP/IP 系列协议中最复杂的部分,它具有以下特点: (1) TCP 提供 可靠的 数据传输服务,TCP 是 面向连接的 .应用程序在使用 TCP 通信之前,先要建立连接,这是一个类似“打电话”的过程,通信结束后还要“挂电话”. (2) TCP 连接是 点对点 的,一条 TCP 连接只能连接两个端点. (3) TCP 提供可靠传输,无差错.不丢失.不重复.按顺序. (4) TCP 提供 

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

3. 传输控制协议(TCP) 3.1 TCP协议的主要特点 (1)TCP是面向连接的传输层协议.即使用TCP协议之前必须先建立TCP连接.在传送数据完毕之后,必须释放己经建立的TCP连接. (2)每一条TCP连接只能有两个端点,即只能是一对一的. (3)TCP提供可靠交付服务,也就是说通过TCP连接传送的数据,无差错.不丢失.不重复且按序发送. (4)TCP提供全双工通信.TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据.这就允许通信双方在任何时候都可以发送数据. (5)面向

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

上一博客记录了UDP协议的关键要点,这部分记录TCP协议的关键要点. 24.3 传输控制协议(TRANSMISSION CONTROL PROTOCOL) TCP(Transmission Control Procotol )协议是一个面向连接,可靠的协议.TCP为了提供面向连接的服务,专门定义了连接创建,数据传输.连接终止阶段.TCP使用GBN和SR协议来提供可靠性.为了实现可靠性这个目标,TCP使用检验和来进行误差控制.重传来处理数据包丢失和冲突.同时还利用了应答和计数机制.在本节,首先讨论

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

这节课我们来学习一下TCP协议的特点以及TCP报文段的格式. 首先呢我们来看一下TCP有哪些特点呢.之前我们说过TCP它是一个比较可靠的面向连接的协议,所以最主要的特点它是可以面向连接的一种传输层协议.那之所以说面向连接呢就是指应用程序在使用这个TCP协议之前,必须要先建立好一个TCP的连接,在传输数据完毕之后呢再释放这个已经建立的连接.也就是说俩应用进程之间的通信啊好像就是在打call一样,啊只要两个人电话打通了才可以进行数据的传输,也就是TCP它面向连接的一个特点.那这里面为什么说它是虚连接

计算机网络 学习笔记-传输层:TCP协议简介

概述: TCP传输前先要建立连接 TCP在传输层 点对点,一条TCP只能连接两个端点 可靠传输.无差错.不丢失.不重复.按顺序 全双工 字节流 TCP报文段 TCP报文段的报头前20字节是固定的,后面4n字节是根据需要而添加的. 20字节的固定部分: 源端口和目的端口:分别写入源端口号和目的端口号 序号:0-(2^32-1),本报文段数据的第一个字节的序号,用来解决乱序问题 确认序号:期望收到对方下一个报文段的第一个数据字节的序号,用来解决丢包问题 数据偏移:TCP报头长度,包括固定的20字节和

传输层:UDP 协议

一.传输层协议 从之前介绍的网络层协议来看,通信的两端是两台主机,IP 数据报首部就标明了这两台主机的 IP 地址.但是从传输层来看,是发送方主机中的一个进程与接收方主机中的一个进程在交换数据,因此,严格地讲,通信双方不是主机,而是主机中的进程. 主机中常常有多个应用进程同时在与外部通信(比如你的浏览器和 QQ 在同时运行),下图中,A 主机的 AP1 进程在与 B 主机的 AP3 进程通信,同时主机 A 的 AP2 进程也在与 B 主机的 AP4 进程通信. 两个主机的传输层之间有一个灰色双向