UDP协议详解

目录

网络原生的情况

网络原生是不可靠的:

网络是不安全的:

一,UDP协议:User Datagram Protocol 用户报文协议

UDP不可靠的原因

1,UDP工作机制

 UDP的特点:

UDP协议的应用场景:

2,UDP的报头

UDP协议的解包:

 UDP数据分用:UDP协议将数据交付给那个进程?

UDP校验和:

UDP没有发送缓冲区:

UDP协议存在接收缓冲区:

 UDP发送数据报:

UDP接收数据报:


网络原生的情况

:网络中的数据在路由器之间不停的路由转发,达到主机与主机之间的通信

网络原生是不可靠的:

1,对方不一定能收到,2,不能保证收到的顺序与发送顺序相同

网络是不安全的:

1,信息在路由器之间转发时,可以被他人修改,窃取和监听,2,别人可以伪造发送数据

一,UDP协议:User Datagram Protocol 用户报文协议

        在host to host 连通的情况下,实现process to process (P2P)

UDP不可靠的原因

        网络传输的本身时不可靠的,而UDP协议没有对信息传输做处理,因此,UDP协议是不可靠的

1,UDP工作机制

 UDP的特点:

        不可靠,无连接,面向数据报文的(字符流),传输成本低

  • 分组首部开销小**,TCP首部20字节,UDP首部8字节。

  •  UDP无连接,时间上不存在建立连接需要的时延。空间上,TCP需要在端系统中维护连接状态,需要一定的开销

  • UDP没有拥塞控制,应用层能够更好的控制要发送的数据和发送时间,网络中的拥塞控制也不会影响主机的发送速率。某些实时应用要求以稳定的速度发送,能容 忍一些数据的丢失,但是不能允许有较大的时延(比如实时视频,直播等)

  • UDP提供尽最大努力的交付,不保证可靠交付。所有维护传输可靠性的工作需要用户在应用层来完成。没有TCP的确认机制、重传机制。如果因为网络原因没有传送到对端,UDP也不会给应用层返回错误信息

  • UDP是面向报文的,对应用层交下来的报文,添加首部后直接乡下交付为IP层,既不合并,也不拆分,保留这些报文的边界。

  • UDP常用一次性传输比较少量数据的网络应用,如DNS,SNMP等,因为对于这些应用,若是采用TCP,为连接的创建,维护和拆除带来不小的开销。

UDP协议的应用场景:

UDP常用于多媒体应用(如IP电话,实时视频会议,流媒体等)数据的可靠传输对他们而言并不重要,TCP的拥塞控制会使他们有较大的延迟,也是不可容忍的

2,UDP的报头

UDP首部有8个字节,由4个字段构成,每个字段都是两个字节,
1.源端口: 源端口号,需要对方回信时选用,不需要时全部置0.
2.目的端口:目的端口号,在终点交付报文的时候需要用到。
3.长度:UDP的数据报的长度(包括首部和数据)其最小值为8(只有首部)
4.校验和:检测UDP数据报在传输中是否有错,有错则丢弃。
该字段是可选的,当源主机不想计算校验和,则直接令该字段全为0.
当传输层从IP层收到UDP数据报时,就根据首部中的目的端口,把UDP数据报通过相应的端口,上交给应用进程。
如果接收方UDP发现收到的报文中的目的端口号不正确(不存在对应端口号的应用进程0,),就丢弃该报文,并由ICMP发送“端口不可达”差错报文给对方。
 

UDP协议的解包:

        UDP协议的header一定是8字节,剩下的长度都是payload数据报文,

 UDP数据分用:UDP协议将数据交付给那个进程?

        UDP协议的目的端口,可以实现协议能到到达指定的进程。同时携带自己端口号,保证双方都可以进行通信

UDP校验和:

        保证数传输的完整性和准确性,

        原理:利用hash函数,计算发送的数据与接收的数据的hash值是否相等,来判断接收与发送数据的hash值是否相等,CRC循环冗余码则是UDP校验发送数据是否准确到达接收方的一种校验手段。

UDP没有发送缓冲区:

        应用层将数据报经过UDP协议,将UDP数据报发送成功,因为UDP没有发送缓冲区,所以应用层看到数据发送成功,只是说明数据报已经被传输层所接收。

UDP协议存在接收缓冲区:

        接收方的应用层存在缓冲区,接收方的传输层在收到数据以后,会将收到的数据暂存到缓冲区,等待接收方应用层来读取数据。

 UDP发送数据报:

(UDP协议会将数据报完完整整的发送,不会对数据报进行拆分,应用层发100K,传输层就一次性发送100k的数据)

1,应用层接收数据报

2,传输层将数据报(payload)添加协议头(16位本地端口,16位目的端口,16位数据报长度,16位的校验码,)

3,将数据报封装成datagramPacket,发送到网络层

4,网络层接收到数据报,通知应用层数据发送成功。

UDP接收数据报:

1,从网络层接收UDP数据报

2,将数据报按照定长拆分成header和payload,

3,读取发送方端口,目的端口,数据长度,校验码

4,验证长度和校验码,无论数据是否出错,UDP协议都不会做出任何响应给发送方,所以发送方也不知道数据是否发送成功,没有得到接收的回应,所以说UDP是不可靠的。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCP/IP协议是目前互联网上最重要的通信协议之一,目录包括以下内容: 第一章:TCP/IP协议概述 介绍了TCP/IP协议的起源、发展、特点、应用领域和未来趋势等方面的内容。其中包括TCP/IP协议的体系结构、分层结构、传输机制和工作原理等内容。 第二章:IP协议详解 介绍了IP协议的地址分配、IP数据报的格式和传输机制,以及IP协议的特点和应用等方面的内容。其中包括IP地址、子网掩码、网关、路由表等基本概念和应用。 第三章:TCP协议详解 介绍了TCP协议的数据传输机制、连接建立过程、数据传输过程和连接关闭过程等方面的内容。其中包括TCP协议的流量控制、拥塞控制和错误恢复等基本机制和应用。 第四章:UDP协议详解 介绍了UDP协议的数据传输机制、特点和应用等方面的内容。其中包括UDP协议的简单传输机制、优点和缺点等基本概念和应用。 第五章:DNS协议详解 介绍了DNS协议的功能、域名解析过程和域名系统的结构等方面的内容。其中包括DNS协议的查询和响应过程,以及DNS服务器的分类和功能等基本概念和应用。 第六章:FTP协议详解 介绍了FTP协议的功能、工作原理、传输方式和常用命令等方面的内容。其中包括FTP协议的文件传输方式、连接建立过程和用户身份认证等基本概念和应用。 第七章:HTTP协议详解 介绍了HTTP协议的功能、特点、请求-应答模式和报文格式等方面的内容。其中包括HTTP协议的请求方法、响应状态码、实体头部和消息主体等基本概念和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值