网络通信流程

目录

♫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 地址的情况:

交换机情况:

②.源主机和目的主机在不同网段时,发送端主机是无法知道目的主机在哪,此时会设置下一跳设备为网关设备:

相关推荐
川石课堂软件测试5 分钟前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
龙哥说跨境14 分钟前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
懒大王就是我29 分钟前
C语言网络编程 -- TCP/iP协议
c语言·网络·tcp/ip
Elaine20239142 分钟前
06 网络编程基础
java·网络
pk_xz1234562 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强2 小时前
Linux之sed命令详解
linux·运维·服务器
海绵波波1072 小时前
Webserver(4.3)TCP通信实现
服务器·网络·tcp/ip
九河云4 小时前
AWS账号注册费用详解:新用户是否需要付费?
服务器·云计算·aws
Lary_Rock4 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
幺零九零零5 小时前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络