运输层2——用户数据报协议UDP
写在前面:本文章是针对《计算机网络第七版》的学习笔记
1. UDP概述
用户数据报协议只在IP数据报服务之上增加了很少一点的功能:复用,分用以及差错检测的功能。UDP的主要特点:
UDP是无连接的:即发送数据前不需要建立连接,减少了开销和发送数据的时延。
UDP使用尽最大努力交付:不保证可靠,因此主机无需维持复杂的连接状态。
UDP是面向报文的:发送方的UDP对应用程序交下来的报文添加首部后直接交付给IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。
UDP没有拥塞控制:因此网络出现拥塞不会影响主机的发送速率,也就是允许丢失数据,但要保证时延。
UDP支持一对一,一对多,多对一,多对多的通信。
UDP首部开销小:只有8个字节。
2. UDP首部格式
UDP用户数据报分为 = 首部字段 (8个字节,4个字段,每个字段2个字节)+ 数字字段。
首部字段:
源端口: 源端口号。在需要对方回信的时候选用,不需要填0。
目的端口: 目的端口号。必填。
长度: UDP用户数据报的长度。最小为8。
检验和:检测UDP用户数据报传输过程中是否有错。有错就丢弃。
3. UDP首部检验和计算方法
在计算检验和时,需要在用户数据报之前加12字节的伪首部。
所谓伪首部,是指他并不是UDP用户数据报的真正首部,只是在计算检验和的时候,临时加上的,检验和就是按照这个临时的用户数据报计算的。既不下传也不向上提交。伪首部的格式如上图。
UDP计算检验和与IP数据报类似,只是UDP的首部校验和把首部和数据一起都检验了。步骤如下:
在发送方,首先先把全零放到检验和字段;
再把伪首部和UDP用户数据报看成是由许多16位的字串连接起来的;
然后按二进制反码计算出这些16位字的和,并将此和的反码写入检验和字段后,就发送这样的用户数据报。
在接收方,把收到的UDP用户数据报连同伪首部(以及可能的填充全零字节)一起,按二进制反码求这些16位字的和。
若无差错时其结果应全为1;否则就是有差错出现,可以选择丢失,可以上传(但是要附上错误信息)。
运输层2——用户数据报协议UDP的更多相关文章
- 《TCP/IP详解卷1:协议》第11章 UDP:用户数据报协议-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- 《TCP/IP具体解释卷2:实现》笔记--UDP:用户数据报协议
用户数据报协议.即UDP,是一个面向数据报的简单运输层协议:进程的每次输出操作仅仅产生一个UDP数据报,从而发送 一个IP数据报. 进程通过创建一个Internet域内的SOCK_DGRAM类型的插口 ...
- 【RL-TCPnet网络教程】第16章 UDP用户数据报协议基础知识
第16章 UDP用户数据报协议基础知识 本章节为大家讲解UDP(User Datagram Protocol,用户数据报协议),需要大家对UDP有个基础的认识,方便后面章节UDP实战操作. ...
- udp用户数据报协议
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层 ...
- 【TCP/IP详解 卷一:协议】第十一章 UDP 用户数据报协议
11.1 引言 UDP 是一个简单的 面向数据报 的运输层协议:进程的每个 输出操作 都正好产生一个 UDP数据报,并且组装成一份待发送的IP数据报. 这与 TCP 不一样,它是 面向流字符 的协议, ...
- TCP/IP详解学习笔记(8)-- UDP:用户数据报协议
1.UDP概述 UDP是一种无连接的, 即发送数据前不需要建立连接,因此减小的开销和发送数据的延迟. UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表. UDP是面向报文 ...
- 《TCP/IP 详解 卷1:协议》第 10 章:用户数据报协议
引言 UDP 稍微扩展了IP协议,使得包可以在进程间传送,而不仅仅是在主机件.--<CSAPP> IP 数据报是指 IP 层端到端的传输单元.分组(packet)是 IP 层和链路层的传输 ...
- UDP:用户数据报协议
UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报.这与面向流字符的协议不同,如TCP,应用程序产生的全体数据与真正发送的单个IP数 ...
- TCP/IP详解 卷一(第十一章 UDP:用户数据报协议)
UDP是一个简单的面向数据报的运输层协议. UDP不提供可靠性:它把应用程序传给IP层的数据发送出去,但是并不保证它们能到达目的地. UDP首部的个字段如下图所示
随机推荐
- -webkit-overflow-scrolling : touch 快速滚动 回弹 效果
现在很多for Mobile的HTML5网页内都有快速滚动和回弹的效果,看上去和原生app的效率都有得一拼. 要实现这个效果很简单,只需要在元素上加一行css代码即可: -webkit-overflo ...
- windows系统中在jupyter安装虚拟环境内核
一.在jupyter中安装虚拟环境内核 1.创建Python3虚拟环境 参考本文其他博客 2.进入虚拟环境 3.安装jupyter pip install jupyter 4.添加当前环境到jupyt ...
- docker 在 centos7.* 上的部署及问题解决
最近尝试搭建docker 环境,其实个人是比较喜欢“菜鸟学习系列”的知识的,怎奈它的讲解是以Ubuntu为主的,最后找到一个搭建学习系列,感觉写的很好,主要是页面风格清晰明了,遂决定按照此教程学习搭建 ...
- Eureka客户端源码流程梳理
前面梳理了Eureka服务端的流程,现在整理下客户端的流程. 1.在这个包(spring-cloud-netflix-eureka-client)里面寻找客户端启动入口相关配置,关键配置文件sprin ...
- 微信小程序之一:动态添加view(view包含picker,input)
<view wx:for="{{array}}" wx:key="this" class="borderContainer"> ...
- mac upgrade node and npm
一直以来, 我们都可以很轻松的更新npm: npm install npm -g 而Node我却是很久没有更新了, 记得当时好像是使用安装包安装的, 实际上有更加简单的安装方法. 实际上Mac上有一个 ...
- pytorch1.0实现GAN
import torch import torch.nn as nn import numpy as np import matplotlib.pyplot as plt # 超参数设置 # Hype ...
- 『Python基础练习题』day03
# 1. 有变量name = " aleX leNb " 完成如下操作: # 移除 name 变量对应的值两边的空格,并输出处理结果 # 判断 name 变量是否以 "a ...
- chrome下载离线安装包
chrome下载离线安装包 - codeflyto - 博客园 下载页面:
- ubuntu下tftp的安装、配置、使用
1. 安装 sudo apt-get install tftp-hpa tftpd-hpa -y 2. 配置 sudo vi /etc/default/tftpd-hpa #/etc/default/ ...