网络通信流程
目录
♫IP地址
♫子网掩码
♫MAC地址
♫相关设备
♫ARP寻址
♫网络通信流程
♫IP地址
我们已经知道 IP 地址由网络号+主机号组成,根据 IP 地址的不同可以有5钟划分网络号和主机号的方案:
其中,各类地址的表示范围是:
分类 范围 适用网络 网络数量 主机最大连接数 A类 0.0.0.0 ~ 127.255.255.255 大型网络 126 16777214 【(2^24)-2】 B类 128.0.0.0 ~ 191.255.255.255 中等规模网络 约16000 个 65534 【(2^16)-2】 C类 192.0.0.0 ~ 223.255.255.255 小型网络 - 254 【2^8-2】 D类 224.0.0.0 ~ 239.255.255.255 E类 240.0.0.0 ~ 247.255.255.255 上面 A 类、B 类、C 类的 IP 地址由网络号标识不同的广域网网段,而若想在广域网里再划分子网,就要通过子网掩码对 IP 地址进行子网划分。
♫子网掩码
子网掩码是一个32位地址,由连续的1和0组成,连续的1表示网络号,连续的0表示主机号,通过0的个数可以计算出子网中主机的IP地址范围。
如:用子网掩码255.255.255.252划分一个 C 类 IP 192.1.1.0:
①.将255.255.255.252转换为二进制为11111111.11111111.11111111.11111100,表示每个子网中只有4个IP地址(2^2)
②.192.1.1.0~192.1.1.255的地址段共可划分64(256/4)个子网,其中第一个子网的地址范围是192.1.1.0-192.1.1.3,第二个子网的地址范围是192.1.1.4-192.1.1.7,以次类推。
将 IP 地址和子网掩码进行“按位与”操作(二进制相同位,与操作,两个都是1结果为1,否则为0),得到的结果就是网络标识(划分子网后的网络号/ 网段(划分前的网络号+子网号))。 将子网掩码二进制按位取反,再与 IP 地址位与计算,得到的就是主机号。
注:
①.每个子网的第一个IP地址为网段地址(如:192.1.1.0、192.1.1.4),最后一个IP地址(如:192.1.1.3、192.1.1.7)为广播地址,都不可用。
②.IP 地址描述的是路途总体的起点和终点,是给人使用的网络逻辑地址。
♫MAC地址
MAC地址,即 Media Access Control Address,用于标识网络设备的硬件物理地址(每个网卡都有唯一的一个MAC地址),用于识别数据链路层中相连的节点,在网卡出厂时就确定了,不能修改。MAC地址长度为48位,一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19) 。
注:
①.广播数据报(对象为同网段所有主机)的MAC地址为: FF:FF:FF:FF:FF:FF。
②.MAC地址描述的是路途上的每一个区间的起点和终点,是给网络硬件设备使用的网络物理地址。
♫相关设备
♩.集线器:集线器工作在物理层,发送到集线器的任何数据,都只是简单的将数据复制并转发到其他所有端口(集线器后边的物理端口)。
♩.交换机:交换机工作在数据链路层,交换机内部会记录并维护一张 MAC 地址转换表:
①. MAC 地址转换表主要记录 MAC 地址与端口(交换机后边的物理端口)之间的映射。
②. 主机连接到交换机,及主机发送数据的时候,交换机都可以学习并记录该主机 MAC 地址与端口信息。
③. 交换机接收到数据报以后,在 MAC 地址转换表中,通过目的 MAC 查找到对应的端口,则目的主机为与该端口相连接的主机,只需要将数据报转发到对应端口上即可。
④.如果通过目的 MAC 找不到对应端口,交换机则设置数据报目的 MAC 为广播地址 FF:FF:FF:FF:FF:FF,发送到其他所有端口,目的主机返回响应后,交换机再记录该主机MAC与端口的映射信息。
♩.路由器:配有 IP 地址,可以进行路由选择(在复杂的网络结构中,找出一条通往终点的路线);是一种网关设备,可以划分公网和局域网(内网),同时还可以把局域网划分为多个子网(不同网段):
①. 划分局域网多个子网时,可以直接通过ARP寻址找到局域网任意主机。(这里的局域网就是路由器下的多个子网组成的局域网)。
②. 划分公网和局域网时,局域网内主机发送数据报到公网主机时,需要基于NAPT协议,将局域网主机的IP地址和端口号,转换为路由器公网IP和端口号(指路由器中运行的程序的端口)。
注:局域网IP+端口需要转换为公网IP+端口,原因是接收端返回的响应数据报,目的IP和目的端 口无法使用局域网IP和端口。
♫ARP寻址
ARP是一个介于数据链路层和网络层之间的协议,ARP 协议建立了IP地址与 MAC 地址的映射关系。 在数据链路层,寻找下一跳设备 MAC 地址的过程,称为 ARP 寻址:
①.主机和路由器中都保存了一张 ARP 缓存表,通过 IP 地址可以找到对应的 MAC 地址。
②.根据下一跳设备的 IP 地址,在 ARP 缓存表中能找到对应的 MAC 地址,则可以设置目的 MAC 并发送数据报。
③.如果找不到,则发送 ARP 广播数据报:目的 MAC 为广播地址,询问下一跳设备的 MAC 地址。
♫网络通信流程
发送数据报时,发送端主机都需要先根据网络分层从上到下封装:
封装过程中需要根据根据目的 IP 通过 ARP 寻址获取到目的设备的 MAC 地址,在数据链路层以太网帧头中,设置目的MAC并发送数据包。封装好数据后,就需要根据发送端主机(源主机)与接收端主机(目的主机)是否在同一网段,来设置下一跳设备:
①. 源主机和目的主机在同一个网段时,下一跳设备就是目的主机:
集线器找到目的 MAC 地址的情况:
集线器没找到目的 MAC 地址的情况:
交换机情况:
②.源主机和目的主机在不同网段时,发送端主机是无法知道目的主机在哪,此时会设置下一跳设备为网关设备: