<TCP/IP网络编程> Chap14. 多播与广播

多播

多播是基于UDP的。多播数据包的格式与UDP数据包相同。
多播组是D类IP地址(224.0.0.0~239.255.255.255)。
多播需要借助路由器完成。源主机只发送一次,路由器复制数据包并转发。
修改了文件读取到尾的判断,否则总会重复发送最后一个段话。

# gcc news_receiver.c -o receiver
# ./receiver 224.1.1.2 9190
# gcc news_sender.c -o sender
# ./sender 224.1.1.2 9190

猜测因为路由器不支持组播,程序收不到报文,后面有机会再试试。

广播

广播是向同一网络中的所有主机传输数据的方法。广播也是基于UDP的。

# gcc news_receiver_brd.c -o receiverbrd
# ./receiverbrd 9190
This example shows how to configure liveness detection for DHCP relay agent subscribers using Bidirectional Forwarding Detection (BFD) as the liveness detection method.
# gcc news_sender_brd.c -o senderbrd
# ./senderbrd 255.255.255.255 9190


习题

  1. TTL的含义是什么?请从路由器的角度说明较大的TTL值与较小的TTL值之间的区别及问题。
    数据包能经过的路由器跳数。较大的TTL可以传播到更广的范围,较小的TTL可以较少不必要的数据传播。
  2. 多播与广播的异同点是什么?请从数据通信的角度进行说明。
    相同点:基于UDP;一端发送,多端接收。不同点:多播组需要预先加入,需要路由器的支持,不通网络的主机可以加入同一个多播组。
  3. 下列关于多播的描述错误的是?
    a. 多播是用来向加入多播组的所有主机传输数据的协议。
    b. 主机连接到同一网络才能加入多播组,也就是说,多播组无法跨越多个网络。
    c. 能够加入多播组的主机数并无限制,但只能有一个主机(Sender)向该组发送数据。
    d. 多播时使用的套接字是UDP套接字,因为多播是基于UDP进行数据通信的。
    bc。
  4. 多播也对网络流量有利,请比较TCP数据交换方式解释其原因。
    有多少个接收主机,TCP发送端就需要发送多少次。但多播只需要发送一次。
  5. 多播方式的数据通信需要MBone虚拟网络。换言之,MBone是用于多播的网络,但它是虚拟网络。请解释此处的虚拟网络。
    通过网络中的特殊协议工作的软件概念上的网络。

我的问题

  1. TCP有没有组播?
    没有。因为TCP是面向连接的(一对一的)。

附录

[1] Github

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容