计算机网络 - 上

计算机网络 - 上

  1. 集线器
  2. 交换机
  3. IP地址
  4. 路由器

网络组成

  • 小型网络
  • 中型网络
  • 大型网络

假设在大型网络中的计算机A和计算机B通信

两台设备通信最简单的机制:

设备各开一个网口,用一台线连接起来 -> 这个方式虽然高效,但是随着设备数量变多,会导致网络拓扑变得复杂

集线器的诞生

为了解决设备与设备之间直接连接形成的复杂的网络拓扑问题

工作原理:

设备通过网线与集线器连接,数据先发送给集线器,再由集线器转发给接收方,实现相互连接和通信

工作方式:

将收到的数据广播到所有连接设备,不做任何处理.

为了确定数据接收方,每台计算机需要全局唯一标识:

Mac地址(硬件层面)

传输方式:

A发送数据包给B,会在数据包头部携带BMac地址,数据包经过集线器会被广播到所有端口上,各个端口上的设备在接收到数据以后根据数据包头部的Mac地址判断是否是发送给自己的消息

随着更多的设备加入,开始出现集线器桥接(其中一个端口的线连接到另一个集线器上)

集线器的缺点:

  • 工作在半双工模式 -> 网络中同时只能有一个设备发送数据包,多台设备同时发送数据会冲突
  • 通过广播的形式发送到端口,不安全

智能交换机

智能交换机是集线器的升级换代产品

工作方式:

与集线器类似,唯一的区别在于:智能交换机维护一张Mac地址和端口的映射表,具备自动寻址能力

传输方式:

第一次传输:

A发送数据包给B,数据包格式依旧是Mac地址(本机和目标机地址)+数据,交换机会记录发过来数据包的Mac地址对应的端口,然后依次转发到各个端口,这个时候如果有目标Mac回应了以后会记录目标Mac地址和端口号,这样就实现了Mac表的地址映射(不是持久化的,而是一段时间没有交换则清空Mac表)

往后的传输:

往后的传输在一段时间内交换机内部有Mac地址和端口的映射则会直接转发到对应的端口上

交换机特点:

支持全双工通信,同一时间可以多台设备发送消息

随着更多的设备加入,开始出现交换机桥接(其中一个端口的线连接到另一个交换机上)

注意:

在桥接模式中,交换机记录的是pcMac地址,所以如果设备在另一台交换机上,那么在交换机AMac端口映射表上记录的是PCBMac地址和连接另一台交换机的端口(不会是另一台交换机上该PC的端口)

交换机存在的问题:

  • 单台交换机可存储的Mac表大小有限
  • 存在Mac表溢出情况

交换机找不到Mac地址的映射端口,就会将数据广播到其他所有交换机,进一步广播到整个网络,导致丢包

IP地址

为了通过交换机使更多的网络设备互联,将大规模网络切分成小规模网络,交换机记录小规模网络设备的Mac地址,需要跨网络访问的时候在使用路由器进行转发到目标网络

带来的问题:

PCAPCB进行连接,如何知道AB处于不同的网络,需要路由器转发? -> 使用标识区分不同的网络和设备

新的标识:IP地址

  • IPV4
  • IPV6

IPV4:

32位二进制数字组成 -> 通常分为四个部分(每一部分都是十进制数),中间用·相连

IPV4当中每个IP地址的组成:

  • 网络地址(如:192.168.1) -> 表示该设备所在的网络
  • 主机地址(如:1) -> 表示该设备在该网络中的位置

那么整个部分就是:192.168.1.1

如果两台设备的IP地址网络地址相同,那么属于同一个网络

IP地址如何确定网络地址和主机地址?

通过子网掩码

子网掩码:

一个32位的二进制数字

子网掩码与IP地址进行逐位的运算可以得出IP地址的网络地址和主机地址

子网掩码的表达方式:

  • 十进制表示法:如255.255.255.0
  • CIDR表示法:如192.168.1.0/24 -> 这里面的24表示子网掩码中前24位是网络地址,后8位是主机地址

IP地址是软件层面的,Mac地址是硬件层面的

IP地址可以随时修改,路由器在不同的网络中有不同的IP地址,如192.168.0是一个子网络,192.168.1是另一个子网络.每个端口有独立的Mac地址

如何通过IP地址查询Mac地址?

通过ARP协议

过程:

通过ARP协议向同一子网中广播一个ARP请求,目标设备收到ARP请求后检查请求中的IP地址是否与自己的IP地址匹配,如果匹配,则将自己的Mac地址打包成一个ARP响应发送回请求设备

路由器

工作原理:

收到数据包以后根据目标IP来确定数据包的下一跳的目标网络(根据路由表实现)

路由表:

记录路由器所连接的不同网络之间路径和关系的一张表,包含目标网络地址,子网掩码,下一跳地址

值得注意的是:

如果下一跳地址是0.0.0.0的话那么就不需要转发到其他路由器,直接转发回请求网络地址即可

路由表数据来源:

  • 静态路由 -> 网络管理员手动配置
  • 动态路由 -> 路由算法自动计算的动态路由

一次完整的数据包发送过程:

AB在不同的网段,AB发送数据包(一个数据包包括:源IP,目标IP,源Mac,目标Mac):

  • A首先通过ARP协议在同一个子网内查询BMac地址,无法查询到

  • A查找默认网关(路由器)IP地址,使用ARP协议查询到默认网关的Mac地址,将数据包发送到网关,该数据的目标Mac为网关的Mac

  • 网关根据数据包当中的目标IP和子网掩码信息找到目标IP所处的网络,然后依次经过路由转发 -> 这个过程当中数据包的源Mac地址和目标Mac地址都会被修改(每跳转一次修改一次)

  • 数据包到达目标网络的网关时,该网关通过ARP协议查询可以得到对应设备的Mac地址,讲源Mac地址修改为网关地址,目标Mac地址修改为目标Mac地址

  • 数据包通过网关发送到设备B

每转发一次,Mac地址修改一次,IP地址全程无变化

posted @   俊king  阅读(70)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2021-05-10 5.10Java实操IO流,面向接口编程,面向父类编程
2021-05-10 5.10JavaIo流四大抽象类
2021-05-10 Java字符集乱码
点击右上角即可分享
微信分享提示