第三章第二节 无连接运输:UDP

UDP(用户数据报协议,User Datagram Protocol),它只是做了运输层协议能够做的最少工作,除了多路复用和多路分解及一些差错检测外,它几乎没有做任何东西。参考前文:计算机网络2.1

Outline

Notes

## UDP的优势

  • 应用层能更好发控制要发送的数据和发送时间:当网络应用进程有数据传递给UDP时,UDP马上就会将此数据打包成UDP报文段,并把它交付给网络层,从而把数据发送出去。而TCP的拥塞机制会让视频会议等功能的体验变得很差。
  • UDP无需握手:在使用UDP时,在发送报文段之前,发送方和接收方的运输层实体之间没有进行握手,所谓的握手,就是发送方和接收方通过发送一些特定的报文段来互相确认,从而为发送做准备。无需握手就不会引入建立连接的时延,所以DNS运行在UDP之上而不是TCP之上。
  • UDP无连接状态:TCP需要在端系统中维护连接状态。此连接状态包括接收和发送缓存、拥塞控制参数、序号与确认序号等参数。而UDP不维护连接状态,也不跟踪这些参数。因此,使用UDP的服务器能支持更多的活动客户机。
  • 分组首部开销小:由于UDP提供的服务少,只提供多路分解和多路复用和校验功能,所以其首部字段少,只有8个字节,而TCP的首部有20个字节。

## UDP报文段格式

UDP报文段结构由RFC 768定义,如上图所示,UDP首部只有4个字段,每个字段由两个字节组成。

  • 源端口号: 本机(客户端)的应用程序的套接字所对应的端口号,服务器端可利用此端口号向客户端发送数据。
  • 目的端口号: 服务端上的应用进程的套接字所对应的端口号,例如HTTP服务器的80端口。
  • 长度:指明了首部和数据部分的UDP报文段的总长度,单位为字节,即首部+数据。
  • 检验和: 提供了差错检测功能,即检验和用于确定当UDP报文段从源到达目的时,其中的比特是否发生了改变

【UDP检验和】

  • 发送方

    • 将段的内容视为16-bit整数
    • 校验和计算:计算所有整数的和,进位加在和的后面,将得到的值按位求反,得到校验和
    • 发送方将校验和放入校验和字段
  • 接收方
    • 计算所得到段的检验和,并将其余检验和字段进行比较
    • 如果不相等,则检验出错误,但若想等也可能有错误。

【计算机网络】3.2 无连接运输:UDP的更多相关文章

  1. 3.3 无连接运输:UDP

    3.3 无连接运输:UDP 简介: UDP提供不可靠的服务,它只做了运输层能做的最少工作,除了分解/复用以及少量的差错检测之外,几乎对IP没增加什么东西. 为什么应用开发人员宁愿再UDP之上构建应用, ...

  2. 无连接运输的UDP、可靠数据传输原理、面向连接运输的TCP

    由[RFC 768]定义的UDP只是做了运输协议能够做的最少工作.除了复用/分解功能极少量的差错检测外,它几乎没有对IP增加别的东西.如果应用程序开发人员选择UDP而不是TCP,则该应用程序差不多就是 ...

  3. [计算机网络-传输层] 无连接传输:UDP

    UDP(用户数据报协议) 下面是UDP的报文段格式: 可以看出UDP的首部长度是固定的,共64bit,即8个字节. 校验和:提供了差错检测得功能,即用于确定当UDP报文段从源到达目的时,其中的比特是否 ...

  4. 无连接运输:UDP

    多路复用和解复用与校验和是UDP唯一能做的事,运输层的协议必须做点什么,什么都没有就不需要这一层了. 为什么要使用UDP 既然有了可靠传输的TCP,为什么还要在udp之上来构件应用呢? 有效载荷大,T ...

  5. 计算机网络基础笔记 运输层协议UDP/TCP

    目录 UDP 首部结构 主要特点 TCP 首部结构 主要特点 TCP 可靠性实现 停止等待ARQ协议 连续ARQ协议&滑动窗口协议 拥塞控制 TCP 运输连接管理 连接建立:三次握手 连接释放 ...

  6. 计算机网络(6)-----运输层概述和UDP协议

    运输层(Transport Layer) 定义 运输层负责端到端的通信,既是七层模型中负责数据通信的最高层,又是面向网络通信的低三层和面向信息处理的最高三层之间的中间层.运输层位于网络层之上.会话层之 ...

  7. 计算机网络之TCP协议与UDP协议

    运输层向它上面应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最底层. 两个主机进行通信实际上就是两个主机中的应用进程互相通信.应用进程之间的通信又称为端到端的通信. 应用层不同进 ...

  8. 计算机网络课设之基于UDP协议的简易聊天机器人

    前言:2017年6月份计算机网络的课设任务,在同学的帮助和自学下基本搞懂了,基于UDP协议的基本聊天的实现方法.实现起来很简单,原理也很简单,主要是由于老师必须要求使用C语言来写,所以特别麻烦,而且C ...

  9. 计算机网络基础:TCP和UDP

    UDP(用户数据报协议) 应用场景:一个数据包就能完成数据通信:不需要建立会话和流量控制:多播.广播:是一种不可靠传输.(例如QQ聊天,屏幕广播) UDP协议特点: UDP是无连接的,即发送数据之前不 ...

随机推荐

  1. 八.OC基础加强--1.autorelease的用法 2.ARC下内存管理 3.分类(category)4.block的学习

    1.autorelease的用法   1.自动释放池及autorelease介绍 (1)在iOS程序运行过程中,会创建无数个池子,这些池子都是以栈结构(先进后出)存在的. (2)当一个对象调用auto ...

  2. [SCOI 2007] 修车

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1070 [算法] 首先 , 我们发现 , 在倒数第i个修车会对答案产生i * k的贡献 ...

  3. 客户端与服务器持续同步解析(轮询,comet,WebSocket)

    在B/S模型的Web应用中,客户端常常需要保持和服务器的持续更新.这种对及时性要求比较高的应用比如:股票价格的查询,实时的商品价格,自动更新的twitter timeline以及基于浏览器的聊天系统( ...

  4. UI:用UITableView制作通讯录的关键代码

    分析{功能分析(打电话.添加联系人.修改联系人),模块分析(联系人展示.详情模块.添加模块)} 拿到一个项目,首先分析项目框架(工程框架) 首先:判断是否是用户第一次安装:(如果是的,那就加载用户引导 ...

  5. tar.xz格式文件的解压方法(转载)

    转自:http://bbs.chinaunix.net/thread-3610738-1-1.html 现在很多找到的软件都是tar.xz的格式的,xz 是一个使用 LZMA压缩算法的无损数据压缩文件 ...

  6. bzoj 2111: [ZJOI2010]Perm 排列计数【树形dp+lucas】

    是我想复杂了 首先发现大于关系构成了一棵二叉树的结构,于是树形dp 设f[i]为i点的方案数,si[i]为i点的子树大小,递推式是\( f[i]=f[i*2]*f[i*2+1]*C_{si[i]-1} ...

  7. 【POJ - 1321】棋盘问题 (dfs)

    棋盘问题 Descriptions: 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘 ...

  8. vs2013 安装 mvc5 的方法

    工具-->NuGet程序包管理器-->程序包管理器控制台 然后 PM>Install-Package Microsoft.AspNet.Mvc -Version 5.0.0

  9. 依赖注入(二)Autofac简单使用

    Autofac简单使用 源码下载传上源码,终于学会传文件了. 首先 还是那句话:“不要信我,否则你死得很惨!”. C#常见的依赖注入容器 IoC in .NET part 1: Autofac IoC ...

  10. python中字典的陷阱

    把字典与列表组合,如 i=20 s=[]#定义一个空列表 b={'d':i}#定义一个字典 while i>0: i=i-1 b['d']=i#更新字典的值 s.append(b) print( ...