S'S ALGORITHM

网络基础

OSI Model

封装(Encapsulation)和解封装(Decapsulation)

在网络通信中,封装(Encapsulation)和解封装(Decapsulation)是关键的过程,它们描述了数据在网络协议栈中从发送到接收的转换过程。

数据封装和解封装过程(宛如人生)

假设我们有一个 Web 客户端向服务器发送 HTTP 请求的过程,以下是每一层的封装示例:

  1. 应用层
    • 数据:"GET /index.html HTTP/1.1\r\nHost: www.example.com\r\n\r\n"
    • 无协议头。
  2. 表示层
    • 假设表示层没有对数据进行处理。
    • 数据保持不变。
  3. 会话层
    • 假设会话层也没有对数据进行处理。
    • 数据保持不变。
  4. 传输层
    • 数据:应用层数据 + 传输层头(例如 TCP 头)。
    • 封装后的段(segment):
      TCP Header + Application Data
      
  5. 网络层
    • 数据:传输层段 + 网络层头(例如 IP 头)。
    • 封装后的数据包(packet):
      IP Header + TCP Header + Application Data
      
  6. 数据链路层
    • 数据:网络层数据包 + 数据链路层头和尾(例如 Ethernet 头和尾)。
    • 封装后的帧(frame):
      Ethernet Header + IP Header + TCP Header + Application Data(payload)+ Ethernet Trailer
      
  7. 物理层
    • 数据:数据链路层的帧被转换成比特流。
    • 发送比特流通过物理介质传输。

当服务器收到这个 HTTP 请求时,解封装过程如下:

  1. 物理层
    • 接收到比特流。
    • 将比特流转换成帧,并传递给数据链路层。
  2. 数据链路层
    • 接收帧。
    • 去掉数据链路层头和尾,得到网络层的数据包,并传递给网络层。
      IP Header + TCP Header + Application Data
      
  3. 网络层
    • 接收数据包。
    • 去掉网络层头,得到传输层的段,并传递给传输层。
      TCP Header + Application Data
      
  4. 传输层
    • 接收段。
    • 去掉传输层头,得到应用层数据,并传递给会话层。
      Application Data
      
  5. 会话层
    • 假设会话层没有对数据进行处理。
    • 数据保持不变。
  6. 表示层
    • 假设表示层没有对数据进行处理。
    • 数据保持不变。
  7. 应用层
    • 接收应用数据。
    • 解析 HTTP 请求并进行响应。

这个过程太有意思了,宛如一个人的完整一生。从淳朴到厚重最后再回归淳朴。返璞归真。带了很多了头衔,帽子,内容,负载了TTL生命的长度,过程中会经过各种人生旅程,但是最后到达终点的时候,只是为了回归本我,中间一路的嵌套,只是为了自我保护罢了,都很不容易呐。

TCP的header中的Port指示了设备上的哪个应用。 MTU是payload最大传输单元。

网络拓扑,网络类型,网络设备

Client-Server 网络

在客户端-服务器(Client-Server)网络中,网络结构分为两个主要角色:客户端和服务器。服务器是一个强大的中央计算机,它提供资源和服务,如文件存储、数据库、应用程序和网络连接。客户端是用户设备(如电脑、智能手机等),它们通过网络向服务器请求资源和服务。这种模式常用于企业环境和互联网应用中,比如网页浏览和电子邮件服务。服务器集中管理资源,提供高效的控制和安全性,但也可能成为单点故障的瓶颈 。

Peer-to-Peer 网络

在对等(Peer-to-Peer, P2P)网络中,所有节点(设备)都是平等的,既可以作为客户端,也可以作为服务器。每个节点可以直接与其他节点交换资源和服务,而无需通过中央服务器。P2P 网络通常用于文件共享分布式计算区块链技术。它们的优点包括高扩展性和容错性,因为网络没有单点故障。然而,P2P 网络在管理和安全性方面相对较弱,因为没有中央控制点 。

LAN,PAN,CAN,WAN,MAN,WLAN,SAN

Demarcation Point & Smart Jack

Hypervisor & VMs

是一种虚拟化技术的软件或固件层,允许在单个物理计算机上运行多个虚拟机(VMs)。它的主要作用是管理和分配物理计算机的资源,如处理器、内存和存储,以便多个操作系统实例可以同时运行而互相隔离。Hypervisor通常分为两种类型:Type 1(裸机或本地)Hypervisor直接在硬件上运行,而Type 2(主机或嵌套)Hypervisor则运行在宿主操作系统上。

Virtual switch(虚拟交换机)

是一种软件定义网络(SDN)中的关键组件,用于在虚拟化环境中连接虚拟机(VMs)或虚拟网络功能(VNFs)。它类似于物理网络中的网络交换机,但在虚拟化环境中运行,并通过软件管理数据包的转发和网络流量的控制。

虚拟交换机允许虚拟机之间或虚拟机与物理网络之间的通信,同时提供网络隔离、流量控制、安全策略的实施等功能。它可以通过各种技术实现,如基于软件的交换机实现(如Linux Bridge)、硬件辅助虚拟交换机(如基于SR-IOV的交换机)或者专用的虚拟交换机软件(如VMware的vSwitch或Microsoft的Hyper-V虚拟交换机)。

vNIC

指的是虚拟网络接口卡(Virtual Network Interface Card),是在虚拟化环境中用于连接虚拟机(VM)到物理网络或虚拟网络的软件实体。每个虚拟机都可以有一个或多个vNIC,它们由虚拟化平台管理,并在虚拟机内部视为物理网络接口卡的仿真。vNIC通过虚拟交换机或虚拟网络设备与物理网络或其他虚拟机通信,允许虚拟机访问网络资源和与其他计算资源交互。

vNIC扮演了连接虚拟机与网络之间的桥梁角色,负责将虚拟机中产生的网络流量转发到正确的目的地,同时也负责接收来自网络的数据包并传输到虚拟机。

在AWS(亚马逊云计算服务)中,ENI(Elastic Network Interface,弹性网络接口)可以被视为一种vNIC(虚拟网络接口卡)。ENI允许将虚拟机(EC2实例)连接到一个或多个虚拟私有云(VPC)的子网中,并配置其网络属性,如IP地址、路由表和安全组等。每个EC2实例可以附加一个或多个ENI,每个ENI都可以有自己的MAC地址、IP地址和安全组规则,从而提供了灵活的网络配置选项。

因此,尽管ENI在AWS中具有更广泛的功能(如弹性IP绑定、多IP地址支持等),但从功能角度来看,它们可以被看作是AWS环境中虚拟机(EC2实例)的虚拟网络接口卡。

按照交换技术

现在大部分是分组交换,也就是包。

网络硬件的意义在于,对包的格式进行转换,转换的目的是让包在OSI层之间进行通行。设备包括:中继器,集线器,网桥,交换机,路由器,网关。

Networking设备是指用于构建和管理计算机网络的设备(比如上面的那些),而Networked设备是指已连接到网络并可以相互通信的各种计算设备和物联网设备。

光电信息传输

信号能够转化为光和电主要依赖于两种技术:光电转换和电光转换

  1. 光电转换(光信号转电信号)
    • 原理:光电转换是指将光信号转换为电信号的过程。它利用光电二极管(Photodiode)或光电探测器(Photodetector)等器件,这些器件能够将接收到的光信号转换为相应的电压信号。光照射到光电二极管或探测器上产生光生载流子,从而引起电流或电压的变化,这一变化可以被检测和放大,进而提取原始的光信号信息。

    • 应用:光电转换广泛应用于光通信、光电子传感器、医学成像和光电子设备等领域,其中光通信是最常见的应用,通过光纤传输数据时使用光电转换技术将光信号转换为电信号,然后再进行处理和解码。

  2. 电光转换(电信号转光信号)
    • 原理:电光转换是指将电信号转换为光信号的过程。它利用激光二极管(Laser Diode)或LED(Light Emitting Diode)等发光器件,这些器件通过电流驱动,在内部产生电子和空穴的复合,从而激发出光子(光量子)。这些光子形成的光信号在光纤或空气中传输,携带着电信号的信息。

    • 应用:电光转换在光通信、光电显示器、激光打印机和激光雷达等领域中得到广泛应用。在光通信中,电子设备产生的电信号经过电光转换器件转换为光信号,通过光纤传输至目标地点,再通过光电转换器件将光信号转换回电信号,完成数据的传输和接收。

不同类型的Cables和Connectors

Copper

光纤连接器

Patch panel(补丁面板)是一种网络设备,用于在计算机网络和通信系统中管理和组织网络电缆的连接。它通常安装在机架或机柜中,并提供了一个集中的位置,用于连接局域网(LAN)中的各种设备,如计算机、打印机、路由器、交换机等,以及外部电缆,如光纤或铜缆。

Fiber distribution panel(光纤配线面板)是用于管理和组织光纤连接的设备,通常安装在数据中心、企业网络或其他需要大量光纤连接的地方。它与常见的铜缆补丁面板类似,但专门设计用于光纤系统。

Punchdown block(压线块)是一种用于电信和网络布线的设备,主要用于连接和管理铜缆(如电话线和网络电缆)。它通常用于安装在电话机房或网络设备附近,提供了一个结构化的方式来组织和连接大量的电缆。

Ethernet标准

常见的Ethernet标准包括:

  1. IEEE 802.3
    • 描述:IEEE 802.3是Ethernet的基础标准,定义了各种速率(如10 Mbps、100 Mbps、1 Gbps、10 Gbps等)以及不同的物理介质和数据链路层的协议。
    • 应用:常见的应用包括Ethernet局域网和广域网(WAN)的数据传输。
  2. Fast Ethernet(IEEE 802.3u)
    • 描述:Fast Ethernet是一种以100 Mbps速率运行的Ethernet标准,通过使用双绞线和光纤来提供更高的传输速度。
    • 应用:适用于需要更快速数据传输的局域网环境。
  3. Gigabit Ethernet(IEEE 802.3ab)
    • 描述:Gigabit Ethernet支持以1 Gbps速率运行的Ethernet标准,广泛应用于提供更高带宽需求的网络环境,如数据中心和企业网络。
    • 应用:用于连接服务器、存储设备和网络交换机等高性能网络设备。
  4. 10 Gigabit Ethernet(IEEE 802.3ae)
    • 描述:10 Gigabit Ethernet支持以10 Gbps速率运行的Ethernet标准,用于满足超高带宽和大数据传输需求的环境。
    • 应用:主要用于数据中心的内部网络和广域网连接。
  5. Ethernet over Copper
    • 描述:通过铜缆传输Ethernet信号的技术,如Ethernet over twisted pair(双绞线Ethernet)和Ethernet over coaxial cable(同轴电缆Ethernet)等,适用于不同类型的物理介质传输。
  6. 其他相关标准
    • 包括适用于特定用途的扩展标准,如Power over Ethernet(PoE,IEEE 802.3af)、Ethernet over Powerline(通过电力线传输Ethernet,IEEE 1901)等。

TCP/IP模型

特性:逻辑编址,路由选择,域名解析,错误检测,流量控制,以及对应用程序的支持

物理层 - 网络接口 - 网际协议 - 传输层协议 - 应用层协议

网络物理层比如以太网协议,网际层比如IP/ICMP/ARP/RARP协议,传输层比如TCP/UDP,应用层协议比如FTP/Telnet/SMTP/NFS/SNMP协议

网络协议

以下是一些常用的 SSH 命令示例:

  1. 远程登录
    ssh user@remote_host
    
    • 使用指定的用户名 user 登录到远程主机 remote_host
  2. 使用密钥登录
    ssh -i /path/to/private_key user@remote_host
    
    • 使用指定的私钥文件 /path/to/private_key 来登录到远程主机。
  3. 远程执行命令
    ssh user@remote_host 'ls -l /path/to/directory'
    
    • 在远程主机上执行 ls -l /path/to/directory 命令。
  4. 文件传输(SCP)
    scp /local/file user@remote_host:/remote/directory/
    
    • 将本地文件 /local/file 复制到远程主机的 /remote/directory/ 目录。
  5. 创建端口转发
    ssh -L 8080:localhost:80 user@remote_host
    
    • 将本地主机的8080端口转发到远程主机上的80端口。

DNS

数据中心和企业网络架构

路由

路由在计算机网络中是指选择数据包传输路径的过程。它是网络通信的核心,通过不同的方式将数据从源地址发送到目标地址。以下是关于路由的各个重要方面的详细解释。

路由表(Routing Table) 是路由器用来决定数据包转发路径的数据库。每个网络设备都会维护一个路由表,包含网络路径的信息。路由表的基本组成部分包括:

以下是一个简单的路由表示例:

| Destination     | Subnet Mask   | Next Hop       | Interface | Metric |
|-----------------|---------------|----------------|-----------|--------|
| 192.168.1.0     | 255.255.255.0 | 192.168.1.1    | eth0      | 1      |
| 10.0.0.0        | 255.0.0.0     | 10.0.0.1       | eth1      | 2      |
| 0.0.0.0         | 0.0.0.0       | 192.168.1.254  | eth0      | 0      |

路由类型

路由类型可以根据其配置和学习方式分为以下几种:

路由协议(Routing Protocols) 用于在网络设备之间传递路由信息,帮助设备动态学习和更新路由表。主要的路由协议分为内部网关协议(IGP)和外部网关协议(EGP)。

内部网关协议(IGP)

外部网关协议(EGP)

路由器的基本工作原理

路由器的高级功能

路由器的硬件和软件

路由的安全性

VLAN

VLAN(Virtual Local Area Network,虚拟局域网) 是一种通过逻辑划分网络的方法,使得一个物理网络分割成多个虚拟网络。每个VLAN像一个独立的局域网,能提升网络性能、增强安全性,并简化网络管理。

  1. VLAN ID
    • VLAN的唯一标识符,范围从1到4094。
    • 通过VLAN ID,可以在同一物理网络上创建多个逻辑隔离的网络。
  2. VLAN Tagging
    • 在数据帧中插入VLAN标记,识别数据帧属于哪个VLAN。
    • 使用IEEE 802.1Q标准在帧头插入4字节的VLAN标签。
  3. Trunk Port和Access Port
    • Access Port:连接到终端设备,只能传输单一VLAN的数据流量。
    • Trunk Port:连接到其他交换机或路由器,能够传输多个VLAN的数据流量,使用VLAN标签区分。
  4. Native VLAN
    • 在Trunk链路上,未标记VLAN标签的数据帧被默认分配到Native VLAN。
    • 通常用于传输管理流量或默认流量。

VLAN的类型

  1. 静态VLAN(Port-based VLAN)
    • 基于端口分配VLAN,即通过交换机端口进行划分。
    • 配置简单,适用于固定的设备和用户。
    // 配置交换机端口为Access Port并分配到VLAN 10
    Switch(config)# interface FastEthernet 0/1
    Switch(config-if)# switchport mode access
    Switch(config-if)# switchport access vlan 10
    
  2. 动态VLAN(Dynamic VLAN)
    • 基于设备属性(如MAC地址、用户身份)动态分配VLAN。
    • 需要使用VLAN管理工具(如VMPS - VLAN Membership Policy Server)。
    // 配置动态VLAN(假设使用VMPS)
    Switch(config)# vlan database
    Switch(vlan)# vmps server 192.168.1.100
    
  3. 协议VLAN(Protocol-based VLAN)
    • 根据数据帧的协议类型划分VLAN(如IP、IPX)。
    • 常用于多协议环境,允许不同协议的数据流量分开处理。
  4. 基于MAC地址的VLAN(MAC-based VLAN)
    • 根据设备的MAC地址划分VLAN。
    • 提供更细粒度的控制,适用于需要对特定设备进行管理的网络环境。

Port

Port tagging 是一种网络技术,用于在同一条物理网络链路上,通过在数据帧中添加标签(通常是VLAN标签),来区分和管理不同的虚拟局域网(VLAN),从而使得多种网络流量可以共存而不会相互干扰。

Port aggregation 是一种将多个网络端口组合成一个逻辑链路,以增加带宽、提高冗余性和实现负载均衡的网络技术

Duplex 是一种通信模式,定义了数据传输的方向性,可以是单向(半双工)或双向同时(全双工),影响网络设备之间的数据交换效率。

Port mirroring 是一种网络技术,用于将一个或多个端口上的数据流量复制到另一个端口,以便进行实时监控或分析,而不会影响原始流量的传输。

Jumbo Frames 是指大于标准MTU(通常为1500字节)的以太网帧,通常用于优化网络性能,特别是在高带宽和低延迟的网络环境中,可以减少处理开销和提高传输效率。

Wifi

想象一个音乐会(频段),音乐会的整个场地内有多个舞台(信道)。每个舞台在同一时间段内演奏不同的音乐。音乐会场地是频段,所有的演奏舞台都是这个频段的一部分,但每个舞台是独立的演奏空间,即信道。多个信道可以在同一频段内同时工作,但它们必须在不同的频率范围内,以避免干扰。

SSID是无线网络的唯一标识符,用于帮助设备识别和连接到特定的 Wi-Fi 网络。当你打开设备的 Wi-Fi 功能时,设备会扫描周围的无线网络,并显示这些网络的 SSID,用户可以根据 SSID 选择要连接的网络。

无线加密技术比较:

加密协议 简介 安全性 适用场景
WEP 早期的加密标准,易被破解 不推荐
WPA WEP的改进版,动态密钥 过渡期设备
WPA2 目前主流标准,采用AES加密 现代无线网络
WPA3 最新标准,更强加密和安全性 最强 未来网络

自顶向下

协议(protocol)定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送和/或接收一条报文或其他事件所采取的动作

网络中的报文大家都叫分组。是靠路由器链路层的交换机进行传输的。

分组是一段一段的。所以交换机都是先存储传输。存储是因为分组还没收完呢要先存起来。

网络传输中的信息传播的本质是数字信号通过有线或无线介质进行传输,使用二进制系统(0和1),数据被编码成电信号或光信号,以便在网络中传输。并通过各种协议和标准来管理和控制数据包的发送、接收和重组。整个过程依赖于一系列技术和机制来确保信息能够准确、高效地从源到达目标。

分组交换优于电路交换,分组交换按需分配链路使用,电路交换不考虑需求,而是预先分配了传输链路的使用。

ISP(Internet Service Provider)是指互联网服务提供商:全球这么大的网络的构建是很难的,所以使用者,也就是接入者为客户customer,ISP则为提供商,也就是帮你入网的人。

传输时延是路由器推出分组所需要的时间,它是分组长度和链路传输速率的函数,而与两台路由器之间的距离无关。另一方面,传播时延是一个比特从一台路由器传播到另一台路由器所需要的时间,它是两台路由器之间距离的函数,而与分组长度或链路传输速率无关。