怎么计算UDP的广播地址

hyz_cs 2012-09-19 09:46:30
如题............
...全文
758 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyz_cs 2012-09-19
  • 打赏
  • 举报
回复
找了一下好像最关键的问题就是怎么获取子网掩码
我不懂电脑 2012-09-19
  • 打赏
  • 举报
回复
Broadcast Address(广播地址)是专门用于同时向网络中所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP 地址为广播地址,广播的分组传送给host ID段所涉及的所有计算机。例如,对于10.1.1.0 (255.255.255.0 )网段,其广播地址为10.1.1.255 (255 即为2 进制的11111111 ),当发出一个目的地址为10.1.1.255 的分组(封包)时,它将被分发给该网段上的所有计算机。

广播地址主要有两类

  广播地址应用于网络内的所有主机
  1)受限广播
  它不被路由但会被送到相同物理网络段上的所有主机
  IP地址的网络字段和主机字段全为1就是地址255.255.255.255
  2)直接广播
  网络广播会被路由,并会发送到专门网络上的每台主机
  IP地址的网络字段定义这个网络,主机字段通常全为1,如 192.168.10.255
编辑本段
四种I P广播地址

  受限的广播地址
  受限的广播地址是255.255.255.255。该地址用于主机配置过程中IP数据报的目的地址,此时,主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也不知道。在任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样的数据报仅出现在本地网络中。
  指向网络的广播
  指向网络的广播地址是主机号为全1的地址。A类网络广播地址为netid.255.255.255,其中netid为A类网络的网络号。一个路由器必须转发指向网络的广播,但它也必须有一个不进行转发的选择。
  指向子网的广播
  指向子网的广播地址为主机号为全1且有特定子网号的地址。作为子网直接广播地址的IP地址需要了解子网的掩码。例如,如果路由器收到发往128.1.2.255的数据报,当B类网络128.1的子网掩码为255.255.255.0时,该地址就是指向子网的广播地址;但如果该子网的掩码为255.255.254.0,该地址就不是指向子网的广播地址。
  指向所有子网的广播  
指向所有子网的广播也需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开。指向所有子网的广播地址的子网号及主机号为全1。例如,如果目的子网掩码为255.255.255.0,那么IP地址128.1.255.255是一个指向所有子网的广播地址。然而,如果网络没有划分子网,这就是一个指向网络的广播。
编辑本段
广播和广播地址

  1. TCP/IP协议栈中, 传输层只有UDP可以广播.
  2. 只能对同一子网内部广播, 广播数据包不经过路由器.
  3. UDP的广播地址为255.255.255.255
  4. 在winsock实现中, 有一个选项对应是否允许广播.
  必须调用setsockopt打开该选项.
  5. 打开后, 用sendto向255.255.255.255发送的数据包全部广播.
  很多局域网都定义了一个特殊的保留地址, 称为广播地址. 当信息头中目的地址域的内容为广播地址时, 该帧被局域网上所有计算机接收. 这个过程称为广播.
  合法的广播地址就是主机的网络地址加上最大的主机号。网络地址通过机器的ip地址与子网掩码按位与得出,我们以ip地址为10.78.202.175 ,子网掩码为255.255.255.0。
  为例来分析一下上面的几个概念
  首先将这两个东西换算成二进制代码
  ip地址:00001010.01001110.11001010.10101111
  子网掩码:11111111.11111111.11111111.00000000
  按位与之后得出网络地址:00001010.01001110.11001010.00000000
  十进制表示就是10.78.202.0
  这个网络地址理论上可以有254台主机

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧