当前位置: 首页 > news >正文

网络通信流程

目录

♫IP地址

♫子网掩码

♫MAC地址

 

 ♫相关设备

 ♫ARP寻址

 ♫网络通信流程


♫IP地址

我们已经知道 IP 地址由网络号+主机号组成,根据 IP 地址的不同可以有5钟划分网络号和主机号的方案:

其中,各类地址的表示范围是:

分类范围适用网络网络数量主机最大连接数
A类0.0.0.0 ~ 127.255.255.255大型网络12616777214    【(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 地址的情况:

交换机情况:

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

http://www.lryc.cn/news/438788.html

相关文章:

  • 数据结构一:绪论
  • 使用OpenFeign在不同微服务之间传递用户信息时失败
  • js中【Worker】相关知识点详细解读
  • 使用Apify加载Twitter消息以进行微调的完整指南
  • 【C++算法】滑动窗口
  • (c++)猜数字(含根据当前时间生成伪随机数代码)
  • 优化批处理流程:自定义BatchProcessorUtils的设计与应用
  • Framebuffer应用编程
  • MongoDB根据字段内容长度查询语句
  • Android中的单例模式
  • python做游戏好用吗
  • 常用游戏运行库下载
  • (1)CLIP
  • MongoDB高可用和分片集群知识
  • 【Python日志功能】一.日志基础与基本配置
  • 深圳铨顺宏科技展邀您体验前沿人工智能技术
  • Lombok:Java开发者的代码简化神器【后端 17】
  • [linux]GCC G++官方源码国内下载地址汇总
  • 部署opengauss5.0.3,细节满满
  • 面试题总结(四) -- STL与算法篇
  • HashSet及其实现原理
  • 反序列化漏洞练习1
  • 树莓派Pico2(RP2350)开发环境搭建
  • vue 路由中使用keepAlive在这个组件中使用onActivated
  • 医学数据分析实训 项目一 医学数据采集
  • 《Oracle(一)- 基础》
  • Unity Resource System 优化笔记
  • Flutter之SystemChrome全局设置
  • Windows11 WSL2的ubuntu 22.04中拉取镜像报错
  • 【Linux】多线程:线程同步、条件变量