ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

day2 – udp聊天室

2021-08-08 21:01:49  阅读:175  来源: 互联网

标签:校检 UDP 首部 IP 报文 day2 udp 数据 聊天室


UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。

用户数据报协议UDP只在IP得到数据报服务至上增加了很少一点的功能,这就是复用和分用的功能以及差错检测的功能。

1.UDP的主要特点
(1) UDP是无连接的,即发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延。

(2) UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。

(3) UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。因此,应用程序必须选择合适大小的报文。

(4) UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。很多的实时应用(如IP电话、实时视频会议等)要去源主机以恒定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据,但却不允许数据有太多的时延。UDP正好符合这种要求。

(5) UDP支持一对一、一对多、多对一和多对多的交互通信。

(6) UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。

注意:

(1) 不使用拥塞控制功能的UDP有可能会引起网络产生严重的拥塞问题。

(2) 一些使用UDP的实时应用进程本身可以在不影响应用的实时性的前提下,增加一些提高可靠性的措施,如采用前向纠错或重传已丢失的报文。

2.UDP的首部格式
用户数据报UDP有两个字段:数据字段和首部字段。首部字段很简单,只有8个字节,由四个字段组成,每个字段的长度都是两个字节。各字段的意义如下:

(1) 源端口 源端口号。在需要对方回信时选用。不需要时可用全0。

(2) 目的端口 目的端口号。 这在终点交付报文时必须要使用到。

(3) 长度 UDP用户数据报的长度,其最小值是8(仅有首部)

(4) 检验和 检测UDP用户数据报在传输中是否有错。有错就丢弃。

一个UDP模块必须提供产生和验证检验和的功能,但是一个应用程序在使用UDP服务时,可以自由选择是否要求产生校检和。在计算校检和时,要在UDP用户数据报之前增加12字节的伪首部。校检和就是按照这个临时的UDP用户数据报来计算的。

UDP计算校检和的方法和计算IP数据报首部校检和的方法相似。但不同的是:IP数据报的校检和只校检IP数据报的首部,但UDP的校检和使把首部和数据部分一起都校检。

3.UDP的复用和分用
当运输层从IP层收到UDP数据报时,就根据首部中的目的端口,把UDP数据报通过相应的端口,上交到最后的终点——应用进程。下图是UDP基于端口分用的示意图。

基于端口的复用示意图与上图相似,只是数据报的传输方向相反。

如果接收方UDP发现收到的报文中的目的端口号不正确(即不存在对应于该端口号的应用进程),就丢弃该报文,并由网际控制报文协议ICMP发送“端口不可达”差错报文给发送方。

标签:校检,UDP,首部,IP,报文,day2,udp,数据,聊天室
来源: https://www.cnblogs.com/zaixialongaotian/p/15116196.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有