欢迎亚博app买球官方网站!我们只为解决化工装备的难题!提供化工装备一站式的整体解决方案!

亚博app买球-亚博app英超买球首选

亚博app买球

石化装备制造行业系统方案提供商

专注压力容器生产、研发、制造具有一、二、三类压力容器制造许可证

全国咨询热线 0510-80751588

当前位置: 首页 > 公司动态 > 行业百科

UDP(广播,多播)(传输)的详细说明

作者:亚博app买球    发布日期:2021-03-31 20:20:55

首先转载大佬对UDP的评论。再次测试广播和多播

原文:cnblogs.com/HPAHPA/p/773753 1. html

广播和多播测试代码

链接:pan.baidu.com/s/1v-DdLDqJI-7eg1lIc-sgJg提取代码:3wbj

UDP协议摘要

我们已经解释了物理层,连接层和网络层。最初,有许多类型的连接层协议(以太网,Wifi,ARP等)。在网络层,我们只剩下一个IP协议(IPv4和IPv6是替代关系)。进入传输层(transport layer),协议的类型已经开始再次多样化(例如TCP,UDP,SCTP等)。就像下面的那棵大树。根(连接层)被大量分支,然后统一为干线(网络层)。当到达顶部(透射层)时,该部分再次开始分支,并且每个分支都增长更多。叶子(应用程序层)。我们已经在网络层中看到,通过统一树干,我们已经实现了Internet(Internet)的全球覆盖。但是,我们可能将此“网络”用于不同的目的,并且我们使用它的方式也有所不同。不同的传输层协议(以及更多的应用程序层协议)只是我们使用“ net”的不同方式的体现。

传输层中最重要的协议是TCP协议和UDP协议。这两个使用“净”方法达到两个极端。两项协议的比较非常有趣。 TCP协议很复杂,但是传输是可靠的。 UDP协议很简单,但是传输不可靠。其他各种传输层协议在某种程度上是这两个协议之间的折衷。首先让我们看一下传输层协议中相对简单的UDP协议。

UDP协议简介

UDP(用户数据报协议)传输与IP传输非常相似。您可以将UDP协议视为IP协议在传输层公开的接口。 UDP协议也以数据报的形式传输,其传输方式也是“尽力而为”,因此UDP协议也不可靠。那么,为什么不直接使用IP协议并添加其他UDP协议呢?一个重要的原因是IP协议中没有端口的概念。 IP协议进行IP地址到IP地址的传输,这意味着两台计算机之间的对话。但是,每台计算机都需要具有多个通信通道,并且将多个通信通道分配给了不同的进程以供使用(有关进程,您可以参考Linux Process Basics)。端口代表这样的通信通道。正如我们在邮局和邮递员中提到的,收件人的概念是相同的。 UDP协议实现了该端口,以便可以根据IP地址将数据包发送到某个端口。

尽管UDP协议非常简单,但它的出现要晚于更复杂的TCP协议。早期的网络开发人员开发了IP协议和TCP协议,分别位于网络层和传输层。所有通信必须先由TCP封装,然后再由IP封装(应用程序层-> TCP-> IP)。开发人员将TCP / IP视为相互合作的包。但是很快,网络开发人员发现IP协议的功能和TCP协议的功能是相互独立的。对于一些简单的通信,我们只需要“尽力而为”类型的IP传输,而不是使用复杂的TCP协议建立连接的方法(尤其是在早期的网络环境中,如果建立的TCP连接过多udp 广播udp 广播,将会造成很大的麻烦)。网络负担,并且UDP协议可以相对较快地处理这些简单的通信)。 UDP协议随后被开发为传输层IP协议的““”。这样,网络通信可以通过应用程序层-> UDP-> IP封装方法绕过TCP协议。由于UDP协议本身非常简单,因此它实际上仅充当IP传输的桥梁。在TCP协议的说明中,我们将看到TCP协议与UDP协议之间的更多比较。

UDP数据包也分为两部分:标头和有效负载。 UDP是一种传输层协议,这意味着UDP数据包需要由IP协议封装,然后通过IP协议传输到目标计算机。然后,将UDP数据包解压缩到目标计算机上,并将该信息发送到相应端口的缓冲区。

UDP协议的标头

上面的源端口和目标端口分别是UDP数据包的离开端口和目标端口。长度是整个UDP数据包的长度。

校验和算法类似于IP协议的标头校验和算法。但是,由UDP校验和验证的序列包括整个UDP数据包和封装的IP标头的某些信息(主要是源IP和目标IP)。这样,校验和可以验证IP:port的正确性。在IPv4中,校验和可以为0,这表示不使用校验和。 IPv6需要校验和验证。

端口和套接字

端口是随传输层的诞生而诞生的概念。它可以将网络层的IP通信分配到每个通信通道。尽管UDP协议和TCP协议在工作方式上有很大不同,但它们都可以建立从一个端口到另一个端口的通信。

当我们进入传输层时,我们还可以在操作系统中调用API来构建套接字。套接字是操作系统提供的编程接口,用于表示特定的网络通信。应用程序通过套接字调用处理系统内核中的网络协议的模块,这些内核模块负责特定网络协议的实现。这样,我们可以让内核接收网络协议的详细信息,而我们只需要提供要传输的内容即可。内核将帮助我们控制格式,并将其进一步封装到底层。因此,在实际应用中,我们不需要知道如何形成UDP数据包,而只需要提供相关信息(例如IP地址,例如端口号,例如要传输的信息),就可以使用操作系统内核将基于之前的传输方式我们提供的相关信息构成一个合格的UDP数据包(以及下层数据包和帧)。套接字是一个相对较大的主题,在协议林系列中不会太深。

(在原始的Python服务器中,我们讨论了如何使用套接字建立TCP连接,可以用作参考)

端口是传输层带来的最重要的概念。我们了解了有关UDP协议的更多信息。如果您已经掌握了IP协议亚博APp买球首选 ,那么UDP协议就不会有任何困难。它只是IP协议在传输层上公开的接口。

UDP套接字是一种无连接且不可靠的数据报协议;如果不可靠,为什么要使用它?一:当应用程序使用广播或多播时,只能使用UDP协议。第二个:因为它是无连接的,所以速度很快。因为UDP套接字是无连接的,所以如果一方的数据报丢失,则另一方将无限期地等待。解决方案是设置超时时间。

建立UDP套接字时,套接字函数的第二个参数应为SOCK_DGRAM,表示已建立UDP套接字。由于UDP是无连接的,因此服务器不需要侦听或接受功能。

使用UDP套接字编程可以实现基于TCP / IP协议的无连接通信。它分为两部分:服务器端和客户端。主要实现过程如图3. 1所示。

以下是原始内容,尽管它也是在线收集的。

经常使用UDP编程,但是很少使用广播和多播。根据协议亚博APP安全有保障 ,它在局域网中应该有很大的作用。我专门写了两个例子来测试广播。测试连接放在最前面。

组播是一种数据包传输方法。考虑到带宽和CPU负担,当多个主机同时成为数据包的收件人时,多播已成为最佳选择。

组播使用22 4. 0. 0. 0-23 9. 25 5. 25 5. 255作为目标地址,源主机在上述范围内发送目标地址多播地址。在网络中,如果其他主机对该组的数据包感兴趣,则可以申请加入该组并接受该组,但不是该组成员的其他成员不能接受该组。邮件的内容。

著名的D类IP地址:

D类地址的使用情况

22 4. 0. 0. 1子网上的所有主机

22 4. 0. 0. 2子网上的所有路由器

22 4. 0. 0. 4个所有DVMRP协议路由器

22 4. 0. 0. 5所有开放式最短路径优先(OSPF)路由器

22 4. 0. 0. 6所有OSPF指定路由器

22 4. 0. 0. 9所有RIPv2路由器

22 4. 0. 0. 13所有PIM协议路由器

22 4. 0. 0. 0-22 4. 0. 0. 255保留供本地使用,用于管理和维护任务

23 9. 0. 0. 0-23 9. 25 5. 25 5. 255保留供管理使用

25 5. 25 5. 25 5. 255广播,看来路由器会丢弃这些数据包亚博app买球 ,请检查UD的详细信息

TEL:135-8501-5999 FAX:0510-85180729 EMAIL:wxdf888@163.com

亚博app买球-宜兴厂

(宜兴工厂地址:无锡•宜兴市周铁镇兴达路8号)

备案号:苏ICP备17065672号-5

Copyright © 2019-2020 亚博app买球 版权所有