计算机网络全部笔记

UDP简述和应用

UDP是一种无连接的协议,提供了不可靠数据传送服务

基于Internet IP协议,在Ip协议的基础上,又新增了:

复用 / 分用简单的错误校验

"Best effort"服务,UDP段可能会:

丢失非按序到达

无连接:

UDP发送方和接收方不需要握手每个UDP段的处理独立于其他的段

简单描述UDP过程:

UDP从应用进程得到数据,附加上用于多路复用/分解服务的源和目的端口号字段以及其他的两个小字端,然后将形成的报文段交付给网络层。网络层将运输层报文段封装到一个IP数据报中,然后尽力交付给目的主机。如果报文段到达了目的主机,将通过目的端口号交付给正确的进程。

DNS使用UDP的过程

当主机中的DNS应用程序想要进行一次查询

构造了一个DNS查询报文并且交付给UDP主机端的UDP为此报文添加首部字端,然后交付给网络层网络层将UDP封装成IP数据报,发送给一个名字服务器等待查询的响应。。。。。。

UDP存在的价值?

既然UDP存在这么多的缺点,为什么还是有很多的应用采用UDP协议进行呢?

UDP无需建立连接,减少了很多时延实现比较简单:不需要维护连接的状态头部开销比较小(TCP 20字节, UDP 8字节)没有拥塞控制:应用能够更好的控制发送时间和速率

UDP用途?

常用于流媒体应用

容忍丢失速率敏感

UDP还用于

DNS(上面简述了过程)SNMP

UDP是不可靠的,那我们怎么让他变得可靠呢?

在应用层增加可靠性机制应用特定的错误恢复机制

UDP报文段

UDP首部只有4个字段,每个字段由两个字节组成,通过 分解将应用数据报发送给目的端系统中的响应进程。

长度字段:指示了在UDP报文段中的字节数(首部加数据),接收方检验检查报文段是否出现了差错

UDP检验和

UDP检验和提供了差错检测功能,检验和用于确定当UDP报文段从源到达目的地移动的时候,其中的比特是否发生了改变。

为什么没有差错就是111111…?

发送方将校验和进行了反码操作,发送给了接收方,接收方将收到的字段进行二进制加法得到字段。

如果没有差错的话就是 原码和反码相加自然就是111111…(也不一定,万一原字端某几位进行了偶数次改变呢)

UDP 检验和提供了差错检测的功能。这是基于端到端原则实现的。但是 UDP 的检验和并不提供差错回复的能力。

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: