网络基础

网络的概念

网络是指将多个计算机、设备或系统通过通信链路互相连接,以便彼此之间进行数据交换和资源共享的互联结构。

image-20240122175346769

简单的网络

image-20240122175413953

两个终端,用一条能承载数据传输的物理介质(也称为传输介质)连接起来,就组成了一个最简单的网络。

网络常见的物理组件

image-20240122175446682
  • 路由器(Router)
  • 交换机(Switch)
  • 计算机(PC)
  • 网线
  • 网卡

网络拓扑结构

星型拓扑

  • 优点:
    • 易于安装和维护。
    • 故障检测和隔离相对简单。
    • 单个设备故障不会影响其他设备。
  • 缺点:
    • 中心节点(集线器、交换机)故障可能导致整个网络中断。
    • 高度依赖中心节点,中心节点性能成为瓶颈。
image-20240122180159191

总线拓扑

  • 优点:
    • 简单,易于实施和理解。
    • 成本相对较低。
  • 缺点:
    • 故障或断电可能影响整个网络。
    • 网络流量过大可能导致性能下降。
    • 添加或移除设备可能会干扰整个网络。
image-20240122180222372

环形拓扑

  • 优点:

    • 数据传输效率较高。
    • 管理相对容易。
  • 缺点:

    • 故障某个节点可能导致整个环路中断。
    • 添加或移除设备可能需要重新调整整个环路。
    image-20240122180259162

    网状拓扑

    • 优点:
      • 提供了冗余路径,增加了网络的可靠性。
      • 故障时有备用路径可用。
    • 缺点:
      • 铺设成本高,需要更多的物理连接。
      • 管理和配置相对复杂。
    image-20240122180317774

    树型拓扑

    • 优点:
      • 结合了星型和总线或环型拓扑的优点。
      • 具有一定的冗余和扩展性。
    • 缺点:
      • 整个拓扑的稳定性依赖于根节点。
      • 节点的添加或移除可能需要重新调整树结构。
    image-20240122180341077

企业的网络架构

image-20240122180452712

企业网络架构采用了冗余型的方法,当接入层交换机和汇聚交换机的一端网络线路故障,则不影响其他接入层接口和汇聚层的网络通信,有了双重保障。

双工模式

image-20240122180808995

两种双工模式都支持双向数据传输。

在现实生活中,对讲机则采用的就是半双工的方式,当一端在讲话的时候,另一端则不能讲话。

OSI 七层模型

前言

网络中传输数据时需要定义并遵循一些标准,以太网是根据IEEE 802.3标准来管理和控制数据帧的。了解IEEE 802.3标准是充分理解以太网中链路层通信的基础。

网络通信协议

image-20240122181118722

在早期的网络通信中,各大厂商都制作了属于自己设备的通信协议,但是有一个缺点,就是互不兼容,也就是说,厂商A的设备不兼容厂商B的设备,为解决这一问题,就有了标准化组织制作标准协议,各大厂商都是遵守这一标准协议,实现不同厂商设备的兼容。

七层模型

应用层

应用层:OSI参考模型中最靠近用户的一层,为应用程序提供网络服务。

表示层

表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。

会话层

会话层:负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。

传输层

传输层:提供面向连接或非面向连接的数据传递以及进行重传前的差错检测,同时在传输层也有了端口号的概念。

网络层

网络层:提供逻辑(IP)地址,供路由器确定路径。

数据链路层

数据链路层:将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。

物理层

物理层:在设备之间传输比特流,规定了电平、速度和电缆针脚。

数据的解封装

image-20240122181812790

网络通信相关层分析

传输层

在传输层中有了 source portdestination port,即来源端口和目的端口的概念,它使用端口来区分不同应用程序的数据。

image-20240123113319754

常见端口号如下:

image-20240123113344749

以下是使用 wireshark 查看其传输层的数据,发现的确存在来源端口和目的端口。因此可见,通过传输层的端口号来区分不同的应用程序(网络服务)之间的数据。

image-20240123113612876

网络层

image-20240123113746515

在网络层主要增加了 source ip addressdestination ip address ,即来源IP和目的IP的概念。它我们知道数据包从哪里来,并发送到哪里去。类似于我们生活中邮寄快递的收件地址和寄件地址。

wireshark 抓包如下:

image-20240123114041762

数据链路层

image-20240123114142003

image-20240123114923664

在数据链路层有了 MAC 地址的概念, sourceDestination ,即来源MAC地址和目的MAC地址。当数据从一个设备发送到另一个设备时,数据包的IP头部包含源和目标IP地址。这些地址帮助路由器确定数据包的目标位置。总之,路由器使用网络层的IP地址来决定将数据包发送到何处,以便最终到达目标设备。

而交换机收到数据之后,通过数据链路层的目的MAC地址,参照MAC地址对照表发往具体的接口。

由于路由器是通过IP地址进行转发,故而也称为三层设备,而路由器通过MAC地址进行转发,故而也称为二层设备。

wireshark 抓包如下:

image-20240123114821501

以太网的MAC地址

MAC地址的概念

image-20240123115117448

MAC地址,也称为物理地址,网卡在出厂的时候就已经将该地址烧录在芯片当中,因此它是不可修改且全球唯一的。它是由48位二进制组成,通常使用十六进制表示。

OUI(Organizationally Unique Identifier): 前24位是厂商识别码,也叫OUI,用来表示制造商或组织。这一部分唯一标识了网络适配器的制造商。

NIC-specific part: 后24位是由制造商分配给具体设备的部分,用于唯一标识该设备。

MAC地址的十六进制表示通常由六个冒号分隔的双字节(每个字节8位)组成,例如:00:1A:2B:3C:4D:5E

例子:

  • 00:1A:2B: 这是OUI部分,表示制造商。
  • 3C:4D:5E: 这是NIC-specific部分,表示设备的唯一标识。

单播地址

image-20240123115436815

单播地址的二进制数第8位为0,也就是正常设备的MAC地址,如果查看一个MAC地址是否是单播地址的话,就需要将其转为二进制数之后,查看其第8位,即可验证。

image-20240123115614164

广播地址

image-20240123115631026

广播地址则是二进制数全为1,十六进制数全为F的MAC地址,我们称之为广播地址。

广播通常用于一些特殊情况,如ARP(地址解析协议)请求,以获取目标设备的MAC地址。

image-20240123115719523

组播地址

image-20240123115734665

组播地址的二进制数第8位为1的MAC地址,我们称之为组播地址。

组播地址用于在网络中向一个特定组的设备传输数据。组播是一种通信方式,组播并不会将数据包发送到所有设备,而是将数据包发送到一部分设备,比如在学校教室的教师机,通过组播发送给局域网内的客户机,则可以同时控制其电脑或者共享屏幕。

image-20240123115838035

广播和泛洪的区别

广播

  • 在网络中,广播是一种将数据包发送到网络中的所有设备的通信方式。
  • 广播地址是一个特殊的目标地址,用于将数据包传送到网络的所有设备。在IPv4网络中,广播地址通常是目标IP地址为255.255.255.255。
  • 广播通常用于一些特殊情况,如ARP(地址解析协议)请求,以获取目标设备的MAC地址。

泛洪

  • 泛洪是一种网络中的传输策略,其中数据包被发送到网络上的所有端口,而不考虑目标地址。
  • 在网络中,当交换机无法通过MAC地址表(或转发表)确定数据包的目标端口时,它会采用泛洪策略,将数据包发送到所有端口,以确保到达目标设备。
  • 虽然泛洪是一种简单的方式,但它可能导致网络拥塞和浪费带宽,因为数据包被广播到整个网络。

总的来说,广播是一种特殊的通信方式,而泛洪是一种网络中的传输策略。广播通常是有选择性地发送消息到所有设备,而泛洪是在某些情况下,为了确保数据包能够到达目标设备而采取的一种简单而不精确的策略。