UDP组播调试(使用TCP&UDP调试工具)

2023-05-16

如何使用调试工具进行UDP组播调试

一、下载UDP&TCP调试工具

二、双击打开调试工具并建立端口

2.1 创建组播客户端1

     类型:UDP(组播模式);目标IP:225.0.0.20;端口:60000;本机端口制定:60002

     点击“创建”按钮;如图所示:

     2.2 创建组播客户端2

    如上图再操作一遍,端口:60002;本机端口制定:60000.如下图所示:

三、测试通信情况

    端1发送“78 90 65 33 44 66”,端2发送“11 22 33 44”,效果如下图所示(测试成功):

//---------------------------------------------------------------------------------------------------------

UDP相关知识(以下转自:https://blog.csdn.net/u011555996/article/details/72967619)

一、什么是UDP?

       UDP 是UserDatagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。
UDP和TCP的区别:http://blog.csdn.net/ljheee/article/details/50823050
UDP详解:http://blog.csdn.NET/ljheee/article/details/51720594

二、UDP信息传递的方式
①  单播Unicast:是客户端与服务器之间的点到点连接。
②  广播BroadCast:主机之间“一对所有”的通讯模式,广播者可以向网络中所有主机发送信息。广播禁止在Internet宽带网上传输(广播风暴)。 
③  多播MultiCast:主机之间“一对一组”的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据。
这里需要注意的是:只有UDP才有广播、组播的传递方式;而TCP是一对一连接通信。多播的重点是高效的把同一个包尽可能多的发送到不同的,甚至可能是未知的设备。但是TCP连接是一对一明确的,只能单播。

三、UDP组播
         组播报文的目的地址使用D类IP地址, D类地址不能出现在IP报文的源IP地址字段。单播数据传输过程中,一个数据包传输的路径是从源地址路由到目的地址,利用“逐跳”的原理[路由选择]在IP网络中传输。
        然而在ip组播环中,数据包的目的地址不是一个,而是一组,形成组地址。所有的信息接收者都加入到一个组内,并且一旦加入之后,流向组地址的数据立即开始向接收者传输,组中的所有成员都能接收到数据包。组播组中的成员是动态的,主机可以在任何时刻加入和离开组播组。
        用同一个IP多播地址接收多播数据包的所有主机构成了一个主机组,也称为多播组。一个多播组的成员是随时变动的,一台主机可以随时加入或离开多播组,多播组成员的数目和所在的地理位置也不受限制,一台主机也可以属于几个多播组。此外,不属于某一个多播组的主机也可以向该多播组发送数据包。  
四、组播地址
组播组可以是永久的也可以是临时的。组播组地址中,有一部分由官方分配的,称为永久组播组。永久组播组保持不变的是它的ip地址,组中的成员构成可以发生变化。永久组播组中成员的数量都可以是任意的,甚至可以为零。那些没有保留下来供永久组播组使用的ip组播地址,可以被临时组播组利用。
224.0.0.0~224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配,其它地址供路由协议使用;
224.0.1.0~224.0.1.255是公用组播地址,可以用于Internet;
224.0.2.0~238.255.255.255为用户可用的组播地址(临时组地址),全网范围内有效;
239.0.0.0~239.255.255.255为本地管理组播地址,仅在特定的本地范围内有效。
        组播是一对多的传输方式,其中有个组播组的 概念,发送端将数据向一个组内发送,网络中的路由器通过底层的IGMP协议自动将数据发送到所有监听这个组的终端。至于广播则和组播有一些相似,区别是路由器向子网内的每一个终端都投递一份数据包,不论这些终端是否乐于接收该数据包。UDP广播只能在内网(同一网段)有效,而组播可以较好实现跨网段群发数据。
       UDP组播是采用的无连接,数据报的连接方式,所以是不可靠的。也就是数据能不能到达接受端和数据到达的顺序都是不能保证的。但是由于UDP不用保证数据 的可靠性,所有数据的传送效率是很快的。

五、IGMP协议
      IGMP是IP组播的基础。在IP协议出现以后为了加入对组播的支持,IGMP产生了。IGMP所做的实际上就是告诉路由器,在这个路由器所在的子网内有人对发送到某一个组播组的数据感兴趣,这样当这个组播组的数据到达后面,路由器就不会抛弃它,而是把他转送给所有感兴趣的客户。假如不同子网内的A和B要 进行组播通信,那么位于AB之间的所有路由器必须都要支持IGMP协议,否则AB之间不能进行通信。

六、组播的原理:
      组播首先由一个用户申请一个组播组,这个组播组被维护在路由器中,其他用户申请加入组播组,这样当一个用户向组内发送消息时,路由器将消息转发给组内的所有成员。如果申请加入的组不在本级路由中,如果路由器和交换机允许组播协议通过,路由器将申请加入的操作向上级路由提交。广域网通信要经过多级路由器和交换机,几乎所有的网络设备都默认阻止组播协议通过(只允许本网段内,不向上级提交),这使得广域网上实现组播有一定局限。 

七、UDP组播的基本步骤
建立socket 
socket和端口绑定 
加入一个组播组 
通过sendto / recvfrom进行数据的收发 
关闭socket
服务器和客户端必须都要加入相同的组播地址才可以。
多播数据报套接字类用于发送和接收 IP 多播包。MulticastSocket 是一种 (UDP) DatagramSocket,它具有加入 Internet 上其他多播主机的“组”的附加功能。
多播组通过 D 类 IP 地址和标准 UDP 端口号指定。可以通过首先使用所需端口创建 MulticastSocket,然后调用 joinGroup(InetAddress groupAddr) 方法来加入多播组。
        在Java中,多播一样十分好实现,要实现多播,就要用到MulticastSocket类,其实该类就是DatagramSocket的子类,在使用时除了多播自己的一些特性外,把它当做DatagramSocket类使用就可以了。
        默认我们知道IP(UDP和TCP一样)可以把数据包在一个网络中发到另一个设备。更准确点就是IP把数据包从一个IP地址发到另一个IP地址。多播的决窍就是在同一时间把一个数据包发送到多个设备,可以把一个特定的IP地址指定为多播地址,并同时发送到多个设备。
        IP多播首先要知道的是只有UDP有多播,没有TCP多播这样的东西,为什么呢?多播的重点是高效的把同一个包尽可能多的发送到不同的,甚至可能是未知的设备。但是TCP连接可能要求丢包重发或者延时或重组顺序,这些操作可能非常消耗资源,不适于许多使用多播的应用场景。(同时多播不知道发出的包是不是已经到达,这个也导致不能使用TCP)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UDP组播调试(使用TCP&UDP调试工具) 的相关文章

  • (三)随处可见的LED广告屏是怎么工作的呢?接入GUI

    续上文 xff0c 本篇我们将尝试接入一个GUI来控制点阵屏 在前两篇中 xff0c 我们相继介绍了点阵屏的控制原理 xff0c 以及如何让点阵屏按照我们所想的进行显示 本篇将在此基础上接入一个GUI xff0c 使点阵屏的控制更加优雅 限
  • 解决:在STM32的标准库上添加DSP库时error: #247

    DSP库相对于标准的 math h 对浮点计算做了优化和增强 xff0c 运算速度更快 关于STM32如何添加DSP库 xff0c 网上有很多教程 xff0c 笔者在实际操作时发现会遇到keil报error 247的问题 针对于解决过程 x
  • CAN总线多帧即连续帧数据发送 拆包与重装

    1939协议支持多帧数据发送即数据超过8个的帧发送 用户可以通过ID来识别当前帧是否为多帧发送 xff08 连续帧 xff09 xff0c 如果是多帧发送ID xff0c 举例 xff1a 1C EC F4 56 其中 F4和56为目标地址
  • DLT645-2007 规约 电表 报文解析

    注 xff1a 本文为转载 转载地址 xff1a https wenku baidu com view cc10838283d049649b66580d html DLT645 2007 规约 常见报文解析 2012 9 29 by leg
  • 同相比例放大器 输入端 平衡电阻的问题

    同相比例放大器 xff0c 电路原型如下 xff0c 该图是从网上摘取的 xff08 如侵权请联系删除 xff0c 原网址链接见注1 xff09 其中R1为平衡电阻 xff0c 该电阻存在的意义个人认为用于平衡 43 和 向的输入电流 xf
  • SIM800C 透传模式与非透传模式测试对比

    测试过程中 xff0c 公网 IP地址为 xff1a 39 162 72 33 1080 测试 SIM xff1a 中国移动物联卡 测试数据格式 xff1a 16进制 链路连接 xff1a 单路 工作模式 xff1a TCP客户端 说明 x
  • PADS 无模命令 层显示

    Z 43 1 显示的为第一层 Z 43 2 显示的为第二层 依次类推 Z 43 o 显示外层 xff0c 即首层 Z xff08 n M 即显示第几层到第几层 Z 显示所有层 ZT 显示顶层 ZB 显示底层 ZSM Z B显示底层Z C显示
  • 16位精度 ADC 选型

    ADS8320 售价 xff1a 人民币25 40元 ADS8320 16 Bit High Speed 2 7 V to 5 V microPower Sampling Analog to Digital Converter 1Featu
  • 怎么样在stata上安装pwcorr_a啊?findit pwcorr_a之后就是下面图那样?

    怎么样在stata上安装pwcorr a啊 xff1f findit pwcorr a之后就是下面图那样 xff1f 转载 xff1a 我的电脑用findit 不行 xff0c 经管之家的要收费 xff0c 在Gitte网站找到一个开源的压
  • 奇偶校验(附代码实现)

    定义 奇偶校验 Parity Check 是一种校验代码传输正确性的方法 根据被传输的一组二进制代码的数位中 1 的个数是奇数或偶数来进行校验 采用奇数的称为奇校验 xff0c 反之 xff0c 称为偶校验 采用何种校验是事先规定好的 通常
  • libcurl在windows中编译和使用的说明文档(官方翻译)

    使用Visual C构建先决条件 本文档描述了如何编译 xff0c 构建和安装curl和libcurl 从使用Visual C构建工具的来源 要用VC构建 xff0c 你会 当然要先安装VC 所需的最低版本VC是6 xff08 Visual
  • odroid xu4安装ROS melodic+远程登录+Roboware 开发

    odroid xu4安装ROS melodic 43 远程登录 43 Roboware 开发 一 odroid xu4安装ROS melodic二 远程登录odroid xu41 odroid xu4自动登录2 odroid xu4配置固定
  • Vector 简介和优缺点

    引用 xff1a https blog csdn net taiyang1987912 article details 50351827 vector向量相当于一个数组 在内存中分配一块连续的内存空间进行存储 支持不指定vector大小的存
  • PC电脑控制手机iphone(iOS 11、iOS 12、iOS 13),需越狱

    Veency是一款可以用电脑控制你的iPhone的插件 xff0c 作者是大名鼎鼎的Cydia的创始人Jay Freeman xff0c 也就是Saurik 但是最高支持到IOS9 xff0c 在IOS 10以上无法使用 基于Veency
  • 【Windows】Shellcode免杀,过360、火绒、Defender 静态及主防

    Shellcode xff0c 顾名思义是一段拿来执行的代码片段 xff0c 我们可以使用Shellcode来完成我们需要的任务 弹窗的代码 xff0c 可以被认为是一段Shellcode xff0c 获取某个模块的基址的代码 xff0c
  • Metasploit体系结构和目录

    一 Metasploit体系结构 一 xff09 基础库文件 metasploit基础库文件位于源码根目录路径下的libraries目录中 xff0c 包括Rex framework core和framework base三部分 Rex是整
  • Metasploit Framework Handbook

    文章目录 前言MsFrameworkMetasploit诞生发展体系结构功能阶段工具管理基本命令情报搜集网络服务渗透测试 Refference 前言 众所周知Metasploit工具是一款强大的渗透测试利器 xff0c 在渗透测试中堪称一条
  • 简单无锁队列的实现和使用

    无锁队列越来越流行 xff0c 在特定的场合使用不同的无锁队列 xff0c 可以起到节省锁开销 xff0c 提高程序效率 Linux内核中有无锁队列的实现 xff0c 可谓简洁而不简单 核心判断部分利用了整数溢出机制 xff0c 这个有很多
  • 关于网狐棋牌6603源码的整理、编译和搭建

    最近换工作 xff0c 趁着有一段清闲时间 xff0c 整理了一下网狐棋牌的源码 xff0c 这份源码下载很久了 xff0c 一直呆在硬盘 这次正好好好看看 网狐的代码质量很高 xff0c 流露出来的代码也比较完整 xff0c 基本上都能编
  • Pycharm:注释、删除所有注释

    1 单行注释 2 39 39 39 多行注释 39 39 39 3 删除所有注释 CTRL 43 R进入替换模式 xff0c 勾选右上角正则表达式 xff0c 然后在搜索框输入 xff0c Replace All即可

随机推荐

  • Outlook 2016 pst/ost邮件数据文件迁移实现

    当使用outlook 2016新建Email账户的时候 xff0c 其数据文件 xff08 ost文件 xff09 总是被保存在C盘默认目录 C Users 用户名 AppData Local Microsoft Outlook 下 xff
  • 跟我一起学习VIM - vim插件合集

    前两天同事让我在小组内部分享一下VIM xff0c 于是我花了一点时间写了个简短的教程 虽然准备有限 xff0c 但分享过程中大家大多带着一种惊叹的表情 xff0c 原来编辑器可以这样强大 xff0c 这算是对我多年来使用VIM的最大鼓舞吧
  • linux最简单搭建邮件服务器

    一 概述 xff1a 在配置邮件服务器之前 xff0c 先解释几个概念 通常使用Email都很容易 xff0c 但是Internet的邮件系统是通过几个复杂的部分连接而成的 xff0c 对于最终用户而言 xff0c 我们熟悉的Outlook
  • ROS导航小车经验总结

    经验教训 QS1 rviz地图与gazebo不同步 详细描述 工作空间 xff1a 仿真项目 文件位置 course03 启动urdf gazebo launch union launch xff08 模型启动文件 和 gazebo环境 x
  • 使用libcurl发送post请求

    C语言代码如下 xff1a include lt stdio h gt include lt string h gt include lt curl curl h gt int main int argc char argv CURL cu
  • 访问带有用户名、密码的URL

    很简单 xff0c 举例如下 xff1a HttpURLConnection urlConnection 61 HttpURLConnection url span class hljs preprocessor openConnectio
  • ROS下驱动双雷达

    ROS下驱动SLAMETC的A2和A3雷达步骤如下 xff1a 1 连上激光雷达并进入至 dev文件夹中查看ttyUSB xff1f 的编号 2 使用sudo chmod 777 ttyUSB 来更改USB端口权限 3 调整A2和A3激光雷
  • Usart 串口发送数据包 两种方式(遍历结构体,指针数组)

    Usart 串口发送数据包 两种方式 xff08 结构体 xff0c 指针数组 xff09 1 结构体指针 1 1 结构体和联合体 叙述 xff1a 这种直观性比较 xff0c 利用联合体和结构体的形式组成数据包 xff0c 通过结构体指针
  • netfilter 讲解 ,讲的很好

    Netfilter为多种网络协议 xff08 IPv4 IPv6 ARP等 xff09 各提供了一套钩子函数 在IPv4中定义了5个钩子函数 xff0c 这些钩子函数在数据包流经协议栈的5个关键点被调用 这就像有5个钓鱼台 xff0c 在每
  • python字典添加元素和删除元素

    1 添加字典元素 方法一 xff1a 直接添加 xff0c 给定键值对 pycharm aa 61 39 人才 39 60 39 英语 39 39 english 39 39 adress 39 39 here 39 print aa 39
  • Verilog中奇偶校验位的计算方法

    偶校验 xff1a 数据和校验位中1的总数为偶数 xff0c 则认为数据无误 xff0c 否则标识数据有误 xff1b 奇校验 xff1a 数据和校验位中1的总数为奇数 xff0c 则认为数据无误 xff0c 否则标识数据有误 xff1b
  • Ubuntu下进行Socket编程

    龙云尧个人博客 xff0c 转载请注明出处 CSDN地址 xff1a http blog csdn net Michael753951 article details 72553287 个人blog地址 xff1a http yaoyl c
  • add_library,target_link_libraries,set_target_properties,target_link_libraries使用联系

    折腾了半下午 xff0c 终于知道这个货是怎么个关系了 在此写下记录 xff0c 希望遇到同样问题的同学 xff0c 不要再次浪费时间了 首先我是在Linux环境下 先列出我的CmakeLists txt 注意 xff0c 在CmakeLi
  • strpbrk

    头文件 xff1a include lt include h gt strpbrk 函数检索两个字符串中首个相同字符的位置 xff0c 其原型为 xff1a char strpbrk char s1 char s2 参数说明 s1 s2要检
  • Ubuntu中在命令行如何打开图形界面的文件夹、文件、网页等

    方法一 xff08 nautilus open terminal 打开文件夹 xff09 xff1a 安装nautilus open terminal span class token function sudo span span cla
  • 3.4迭代器介绍

    文章目录 使用迭代器迭代器运算符将迭代器从一个元素移动到另外一个元素迭代器类型begin和end运算符结合解引用和成员访问操作某些对vector对象的操作会使迭代器失效 迭代器运算迭代器的算术运算使用迭代器运算 我们已经知道可以使用下标运算
  • CAN报文格式简析

    Date xff1a 2022 5 11 Author xff1a MJQ Meta xff1a CAN CAN基础篇 CAN报文格式简析 1 Motornala和Intel格式 建议直接看图 xff0c 小白也能秒懂 xff01 注 xf
  • 【C++】头文件声明变量总结

    类外变量 span class token comment 1 直接声明定义 span span class token comment 如果被多个 cpp 包含 xff0c 则链接报错 multiple definition span s
  • C语言 如何用http post方式 上传json数据

    What C语言 如何用post方式 上传json数据 Piont C语言Socket实现HTTP协议 xff0c json格式数据组包 1 xff0c C语言Socket实现HTTP POST 43 json格式数据 按照HTTP协议发送
  • UDP组播调试(使用TCP&UDP调试工具)

    如何使用调试工具进行UDP组播调试 一 下载UDP amp TCP调试工具 二 双击打开调试工具并建立端口 2 1 创建组播客户端1 类型 xff1a UDP xff08 组播模式 xff09 xff1b 目标IP xff1a 225 0