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

网络通信流程

目录

♫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.kler.cn/a/305749.html

相关文章:

  • 后端:Aop 面向切面编程
  • go reflect 反射
  • Rust:GUI 开源框架
  • 前端代码分析题(选择题、分析题)——this指向、原型链分析
  • middleware中间件概述
  • JavaScript 正则表达式详解
  • 树和二叉树基本术语、性质
  • 劳特巴赫ICD调试器CMM调用烧录框架固件研究之C语言版本
  • GitHub每日最火火火项目(9.15)
  • 影刀RPA实战:网页爬虫之CSDN博文作品数据
  • 基于C#+SQL Server2008 开发三层架构(CS界面)图书管理系统
  • SQLmap使用请求包进行sql爆破
  • 鹏哥C语言自定义笔记重点(67-)
  • MySQL练手题--公司和部门平均工资比较(困难)
  • 【前端UI框架】VUE ElementUI 离线文档 可不联网打开
  • 后端面试经典问题汇总
  • MATLAB中的函数编写有哪些最佳实践
  • Python(PyTorch)和MATLAB及Rust和C++结构相似度指数测量导图
  • JS的事件以及常见事件的绑定
  • Win电脑使用Ollama与Open Web UI搭建本地大语言模型运行工具
  • Go 中 Gin 框架的使用指南
  • GIS 中的 3D 分析
  • 数据结构基础详解:哈希表【C语言代码实践篇】开放地址法__拉链法_哈希表的创建_增删查操作详解
  • 详解c++多态---上
  • 移动应用开发与测试赛题2
  • 将 YOLOv10 模型从 PyTorch 转换为 ONNX