TCP/IP协议 卷一 -----------广播和多播

小小搬运工又来了,五一假期结束了

1、引言

广播和多播仅应用于UDP,因为TCP是面向连接的协议(IP地址确定)

单播:以太网帧仅发往单个目的主机,目的地址指明单个接收接口。该模式下,任意两主机通信不会影响网内其他主机(争夺共享信道情况除外)

广播:主机向网上的所有其他主机发送帧。但是只有ARP和RARP可以看到该过程。

组播:帧传送给属于多播组的多个主机。

主机对帧过滤过程:

  1. 网卡查看由信道传送过来的帧,确定是否接收该帧。若接收则将它传往设备驱动程序。通常网卡接收目的地址为网卡物理地址或广播地址的帧。多数接口均被设置为混合模式,这种模式能接收每个帧的一个复制。      大多数网卡经过配置,都能接收目的地址为多播地址或某些子网多播地址的帧。对于以太网,当地址中最高字节的最低位设置为1时表示该地址是一个多播地址。用十六进制可表示为01:00:00:00:00:00。(广播地址ff:ff:ff:ff:ff)
  2. 网卡收到帧后传递给设备驱动程序(如果帧检验和错,网卡将丢弃该帧)。设备驱动程序会进行另外的帧过滤。首先,帧类型中必须指定要使用的协议(IP、ARP等)。其次,进行组播过滤来检测该主机是否属于多播地址说明的多播组
  3. 设备驱动程序将数据帧传送给下一层,比如,当帧类型指定为IP数据报时,就传给IP层。IP根据IP地址中的源地址和目的地址进行更多的过滤监测。若正常,则将数据报传送给下一层(TCP或UDP)
  4. UDP或这IP收到传送来的数据报,就根据目的端口号,有时还有源端口号进行数据报过滤。若当前没有进程使用该目的端口号,就丢弃数据报,并产生ICMP不可达报文。若UDP数据报存在检验和错,则会被丢弃。

多播的作用:减少对广播内容不感兴趣主机的处理负荷。

使用多播,主机可加入一个或多个多播组。

2、广播

2.1 受限广播 -------------------系统初始启动时使用

受限广播地址为255.255.255.255。该地址用于主机配置过程中IP数据报的目的地址。原因:此时主机还不知道自己所在网络的网络掩码,和自己的IP地址。

任何情况下,路由器都不转发目的地址为受限广播地址的数据报,这样的数据报仅出现在本地网络中。

2.2 指向网络的广播

指向网络的广播地址是主机号全为1的地址。例如A类网络广播地址为netid.255.255.255,其中netid为A类网络的网络号。

一个路由器必须转发指向网络的广播,但它也必须有一个不进行转发的选择。

2.3 指向子网的广播  ------------------最常用

指向子网的广播地址为主机号为全1且有特定子网号的地址。作为子网直接广播地址的IP地址需要了解子网的掩码。

2.4 指向所有子网的广播

指向所有子网的广播也需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开。

指向所有子网的广播地址的子网号以及主机号全为1。例如,若目的子网掩码为255.255.255.0,则IP地址128.1.255.255是一个指向所有子网的广播地址。然而,如果网络没有划分子网,则这就是一个指向网络的广播。

3、多播

3.1 多播提供两类服务

  1. 向多个目的地址传送数据,例如交互式会议系统和想多个接收者分发邮件或新闻。然而,即使使用多播,某些应用可能继续采用TCP来保证它的可靠性(?)
  2. 客户对服务器的请求。例如无盘工作组需要确定启动引导服务器

3.2 多播组地址

D类IP地址的格式如下:

图 1  D类IP地址格式

分配的28bit均作为多播组号

多播组地址范围是224.0.0.0 到239.255.255.255

能够接收发往一个特定多播组地址数据的主机集合称为主机组。一个主机组可跨越多个网络。主机组中成员可随时加入或离开主机组。主机组中对主机的数量没有限制,同时不属于某一主机组的主机可以向该组发送信息。

注:一些多播组地址被IANA确定为知名地址。他们被当作永久主机组,这些多播地址所代表的组是永久组,他们的组成员却不是永久的。例如:224.0.0.1表示该子网内的所有系统组

3.3 多播组地址到以太网地址的转换

IANA拥有高位24bit为00:00:5e的以太网地址块,即该地址块所拥有的地址范围是从00:00:5e:00:00:00到00:00:5e:ff:ff:ff。IANA将其中一半分为i多播地址。任何以太网地址首字节为01的,为一个多播地址。因此,IP多播相对应的以太网地址范围从01:00:5e:00:00:00到01:00:5e:7f:ff:ff(为什么是7f)。

这种地址分配将使以太网多播地址中的23bit与IP多播组号对应起来。通过将多播组号中的低23bit映射到以太网中的低位23bit实现。过程如图2所示:

图2   D类IP地址到以太网多播地址的映射

由于多播组号中的最高5bit在映射过程中被忽略,因此每个以太网多播地址对应的多播组是不唯一的。32(2^5)个不同的多播组号被映射为一个以太网地址。

由于地址映射是不唯一的,因此设备驱动程序或IP层需要对数据报进行过滤。因为网卡可能接收到主机不想接收的多播数据帧。若网卡不提供足够的多播数据帧过滤功能,设备驱动就必须接收所有多播数据帧,并对它们进行过滤。

局域网网卡趋向两种处理类型:一种是网卡根据对多播地址的散列值实行多播过滤,可能会接收到不想接收的多播数据;另一种是网卡只接收一些固定数目的多播地址,当主机想接收超过网卡预先支持多播地址外的多播地址时,必须将网卡设置为“多播混杂”模式。这两种类型的网卡人需要设备驱动程序检查收到的帧是否为主机所需要的。

多播传送接收过程

多播进程将目的IP地址指明为多播地址,设备驱动程序将它转化为相应的以太网地址,然后把数据发出去。而这些接收进程需要通知他们的IP层,他们想接收的发往给定多播地址的数据报,并且设备驱动程序必须能够接收这些多播帧。这个过程就是“加入一个多播组”(在同一个主机或多个主机上存在多个接收者)。当一个主机收到多播数据报时,他必须向属于那个多播组的每个进程均传送一个复制,这和单个进程收到单播UDP数据报的UDP不同。使用多播,一个主机上可能存在多个属于同一多播组的进程。

当把多播扩展到单个物理网络以外需要通过路由器转发多播数据时,需要一个协议让多播路由器了解确定网络中属于确定多播组的任何一个主机,此协议为IGMP协议(Internet组管理协议)

3.4 FDDI和令牌环网络中的多播

FDDI网络使用相同的D类IP地址到48bit FDDI地址的映射过程。令牌环网络通常使用不同的地址映射方法。

时间: 2024-11-05 15:58:32

TCP/IP协议 卷一 -----------广播和多播的相关文章

基于tcpdump实例讲解TCP/IP协议

前言 虽然网络编程的socket大家很多都会操作,但是很多还是不熟悉socket编程中,底层TCP/IP协议的交互过程,本文会一个简单的客户端程序和服务端程序的交互过程,使用tcpdump抓包,实例讲解客户端和服务端的TCP/IP交互细节. TCP/IP协议 IP头和TCP头格式如下: Internet Header Format 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+

TCP/IP知识总结(TCP/IP协议族读书笔记二)

接下来,总结一下网络层的协议,IP,ARP,RARP,ICMP,IGMP.当我们在网络传输的过程中,把分组交付到主机或路由器需要两级地址:物理地址和逻辑地址.而且我们需要能够把物理地址映射成为相应的逻辑地址,反过来的映射也是必要的. 这时候就涉及两个概念:静态映射与动态映射. 静态映射就是创建一个表,将逻辑地址与物理地址关联起来,这个表存储在网络的每一个机器上.可是存在于网络中的机器的物理地址是经常会发生改变的(更换网卡),这样静态映射表就得时常更新,影响网络的性能. 动态映射就是每当机器知道其

2.tcp/ip协议分析-IP协议、ARP协议和RARP协议

IP协议是TCP/IP协议族中最核心的协议,它提供不可靠.无连接的数据报传输服务.所以理解IP协议对于我们学习网络至关重要. IP首部 重要字段介绍: 4bit首部长度:以4字节为单位,决定了IP首部长度最大为15*4=60,一般的IP数据报首部长度为20,此时该字段为5. 8bit的服务类型:包括一个3bit的优先权子字段(可以忽略),4bit的tos子字段和1bit的未用位但必须置0.4bit的TOS分别代表:最小延时.最大吞吐量.最高可靠性和最小费用. 比如在telnet交互应用中就要求有

TCP/IP协议简介(三) 之 网络层

IP 网际协议 IP 协议位于网络层,它是 TCP/IP 协议族中最为核心的协议,所有的 TCP.UDP.ICMP 及 IGMP 数据都以 IP 数据报格式传输.IP 协议提供的是 不可靠 . 无连接 的数据报传送服务. 不可靠(unreliable):IP 协议不能保证数据报能成功地到达目的地,它仅提供传输服务.当发生某种错误时,IP 协议会丢弃该数据报.传输的可靠性全由上层协议来提供. 无连接(connectionless):IP 协议对每个数据报的处理是相互独立的.这也说明, IP 数据报

Android网络编程系列 一 TCP/IP协议族之链路层

这篇借鉴的文章主要是用于后续文章知识点的扩散,在此特作备份和扩散学习交流. 数据链路层有三个目的: 为IP模块发送和 接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RARP请 求和接收RARP应答 ip大家都听说过.至于ARP和RARP,ARP叫做地址解析协议,是用IP地址换MAC地址的一种协议,而RARP则叫做逆地址解析协议,在tcp/ip协议的后面章节会介绍它们(在局域网里面用ARP协议可以很容易的搞瘫痪网络哦) 数据链路层的协议还是很多的,有我们最常用的以太

Android网络编程系列 一 TCP/IP协议族之网际层

这篇借鉴的文章主要是用于后续文章知识点的扩散,在此特作备份和扩散学习交流. 网际层包括:IP.ICMP.IGMP 以及处在网际层实际工作在链路层的 ARP 和 RARP等等协议. 1.IP协议 互联网上的每个接口必须有一个唯一的Internet地址(也称作IP地址).IP地址长32 bit.IP协议是TCP/IP协议的核心,所有的TCP,UDP,ICMP,IGMP的数据都以IP数据格式传输.要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制--这被认为是上层协议

对TCP/IP协议的一些看法(5):IP地址

其中255.255.255.255表示广播地址,127开头的表示本机地址,例如ping 127.0.0.1专门用于检测本机的TCP/IP协议是否安装正确.上一篇讲到网络层的一个重要的协议--IP协议,今天就讲一下最最重要的IP地址.大家都知道没有IP地址你就无法连上互联网,IP地址采用一种叫点分十进制法的方法来表示.IP地址为32位,以每8位一个点号将其断开,若这8位用0和1来表示,则记忆过于困难,因此将每8位二进制数变为10进制数便于记忆,这就是点分十进制法. IP地址可以分为主机部分和网络部

Linux程序设计学习笔记----Socket网络编程基础之TCP/IP协议簇

转载请注明出处: ,谢谢! 内容提要 本节主要学习网络通信基础,主要涉及的内容是: TCP/IP协议簇基础:两个模型 IPv4协议基础:IP地址分类与表示,子网掩码等 IP地址转换:点分十进制\二进制 TCP/IP协议簇基础 OSI模型 我们知道计算机网络之中,有各种各样的设备,那么如何实现这些设备的通信呢? 显然是通过标准的通讯协议,但是,整个网络连接的过程相当复杂,包括硬件.软件数据封包与应用程序的互相链接等等,如果想要写一支将联网全部功能都串连在一块的程序,那么当某个小环节出现问题时,整只

TCP/IP协议组学习笔记

TCP/IP协议族学习笔记: 一.基础概念: (1)TCP(Transmission Control Protocol) 传输控制协议. (2)IP(Internet Protocol)网际协议.IP是一种不可靠的无连接数据协议,一种尽最大努力交付的服务. (3)ISP(Internet Service Provider)因特网服务提供者. (4)ISO 国际标准化组织. (5)IEEE 电气和电子工程学会. (6)W3C 万维网联盟. (7) OMA 开放移动联盟. (8)RFC(Reques