Skip to content

fastlearn-计网

因特网概述

网络、互联网和因特网

基础概念

  • 网络:将多个计算机或计算机网络通过通信线路连接起来,使得它们可以相互通信和交换信息的系统。由若干节点(Node)和连接这些节点的链路(Link)组成。节点可以是计算机、集线器、交换机、路由器等。
  • 互联网:多个网络通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网,因此互联网是网络的网络
  • 因特网:是世界上最大的互联网络。

internet & Internet

  • 以小写字母 i 开始的 internet(互连网)是通用名词,它泛指由多个计算机网络互连而成的网络。在这些网络之间的通信协议(即通信规则)可以是任意的。
  • 以大写字母 I 开始的 Internet(互联网)是专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,并采用 TCP/IP 协议族作为通信规则,推荐译名为“因特网”。

互联网的组成

边缘部分-ISP

互联网边缘部分的ISP(Internet Service Provider,互联网服务提供商)是指提供互联网接入服务的公司或组织。它们连接个人用户、家庭、企业和其他组织到互联网上,使其能够访问和使用互联网资源。

边缘部分的ISP通常提供多种类型的互联网接入服务,包括:

  1. 家庭宽带接入:这种服务通过电缆、数字用户线路(DSL)、光纤或无线技术将家庭连接到互联网。家庭宽带接入通常提供高速连接,使用户能够同时进行多种在线活动,如浏览网页、观看流媒体、下载文件等。
  2. 移动网络服务:移动网络运营商提供通过移动设备(如智能手机、平板电脑)访问互联网的服务。这些服务使用无线通信技术(如4G、5G)将用户连接到移动网络基站,然后通过互联网将数据传输到目标服务器。
  3. 企业级互联网接入:这些服务针对企业和组织,提供更高的带宽和更复杂的网络配置选项。企业级互联网接入通常包括虚拟专用网络(VPN)服务、安全性和可靠性增强的连接选项,以及其他专门为企业需求设计的功能。

边缘部分的ISP在互联网架构中扮演着重要的角色,它们通过与核心部分的ISP和其他边缘部分的ISP建立互联互通,构成了全球互联网的基础。用户通过边缘部分的ISP接入互联网后,可以与其他用户和互联网上的服务进行通信和交互。

核心部分-三种交换方式

计算机网络基础概念

一、数据交换方式

  1. 电路交换

    • 发送方和接收方之间建立了一条专用的物理通路,该通路在整个通信过程中一直保持连接
    • 发送方在通路上发送数据,而接收方则在通路上接收数据。
    • 在电路交换中,通信双方拥有独占的带宽,通信过程中的数据传输是连续的,并且不受其他用户的影响。传统的电话网络就是一种电路交换的方式。
  2. 报文交换

    • 在报文交换中,发送方将要传输的完整数据包装成报文,然后一次性发送给接收方。
    • 接收方在接收到报文后,提取出完整的数据,并进行相应的处理。
    • 在报文交换中,数据传输过程是离散的,每次传输都是一条完整的报文。
  3. 分组交换

    • 在分组交换中,发送方将数据划分为较小的数据包(分组),并加上目标地址等控制信息后发送给网络。
    • 网络根据目标地址进行路由,将数据包分散地传输到目标节点,最终由目标节点重新组装成完整的数据。
    • 在分组交换中,数据包独立传输,可以通过不同的路径进行传输,提高了网络的利用率和灵活性。互联网就是基于分组交换的网络。

计算机网络交换方式对比图

二、计算机网络的定义与分类

1. 计算机网络的定义

目前没有十分精确的定义,常见的理解有:

  • 最简单的定义: 一些互相连接的、自治的计算机的集合

    • 互联:计算机之间可以通过有线或者无线的方式进行数据通信。
    • 自治:指独立的计算机,它有自己的硬件和软件,可以单独运行使用。
    • 集合:至少需要两台计算机。
  • 精确一些的定义: 计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。 计算机网络可以是局域网(LAN)、广域网(WAN)、互联网等不同范围和拓扑结构的网络。

  • 核心目的实现计算机之间的数据传输和资源共享

2. 计算机网络的分类

(1)按照规模分类
  • 个人区域网络(PAN):用于个人设备之间的通信,如电脑、手机等。
  • 局域网(LAN):用于连接位于相对较小地理范围内的设备,如办公室、学校或家庭的网络。
  • 城域网(MAN):连接位于同一城市范围内的设备,通常由多个 LAN 组成。
  • 广域网(WAN):覆盖更大地理范围的网络,可以跨越城市、国家甚至国际边界。
(2)按照连接方式分类
  • 点对点网络:两台计算机之间建立直接连接。
  • 广播网络:通过共享媒介,向网络上的所有设备广播信息。
  • 网状网络:每个节点都直接与其他节点相连。
  • 总线网络:所有设备通过一个共享的总线连接。
(3)按照使用场景分类

(此处内容未提供,可根据实际需求补充)

java
 * 互联网:由多个互联的网络构成,涵盖全球范围,提供广域网级别的连接和通信。
 * 企业网络:用于企业组织内部的通信和共享资源,如局域网和私有广域网等。
 * 无线网络:使用无线技术实现设备之间的通信,如Wi-Fi、蓝牙等。
  1. 按照拓扑结构:
java
 * 星型网络:所有设备通过一个中央节点(通常是交换机或路由器)连接。
 * 环形网络:设备按照环状排列,每个设备通过两个相邻设备连接。
 * 网状网络:每个节点都直接与其他节点相连。
  1. 按照网络协议:
java
 * 有线网络:使用以太网等有线连接方式进行通信。
 * 无线网络:使用无线技术(如Wi-Fi、蓝牙、LTE等)进行通信。

计算机网络的性能指标

常见性能指标

  1. 速率(Rate)

    • 数据的传送速率。
    • 它也称为数据率 (data rate)或比特率 (bit rate)。
  2. 带宽(Bandwidth)

    • 带宽是指网络传输介质能够传输数据的能力,通常以每秒传输的数据量(比特率)来表示。
    • 单位时间内从网络中的某一点到另一点所能通过的最高数据率
  3. 时延(Latency)

    • 延迟是指数据从发送方到接收方之间的时间延迟,也称为延迟或迟延。
    • 包括:发送时延(数据发送前的准备和封装时间)、传播时延(数据传输所需的时间)、处理时延(数据在接收方重组和处理的时间)和排队时延(分组在进入路由器后在输入队列中排队等待处理的时间)。
  4. 吞吐量(Throughput)

    • 吞吐量是指网络在单位时间内传输的数据量
    • 反映了网络的数据处理能力和传输效率。
  5. 丢包率(Packet Loss Rate)

    • 丢包率是指在数据传输过程中丢失的数据包的比例。
    • 较低的丢包率表示网络的可靠性较高,数据传输较为稳定。
  6. 网络延展性(Scalability)

    • 网络延展性是指网络的规模和容量扩展能力
    • 一个具有较好网络延展性的网络可以支持更多的用户和设备,并保持良好的性能。
  7. 可靠性(Reliability)

    • 可靠性是指网络运行的稳定性和持续性。
    • 一个可靠的网络能够保证数据的安全传输和传输的正确性。

数据量及速率

bit & byte

The bit is the most basic unit of information in computing and digital communications. The name is a portmanteau of binary digit.[1] The bit represents a logical state with one of two possible values. These values are most commonly represented as either "1" or "0", but other representations such as true / false , yes / no , on / off , or + / are also widely used.

bit(比特)是计算机中表示数据量的最小单位,而 byte(字节)由 8 个 bit 组成,即 1 byte = 8 bit。

通常,b 表示 bit,B 表示 byte。

不同进制标准:在表示 bit 和 byte 的单位集合时,由于不同标准所采用的进制不一致,导致常见用法混淆,甚至部分教科书中的说明也存在不准确之处。

比特的次方单位

十进制前缀 (SI)名字缩写次方二进制前缀 (IEC 60027-2)名字缩写次方
kilobitkbit10³kibibitKibit2¹⁰
megabitMbit10⁶mebibitMibit2²⁰
gigabitGbit10⁹gibibitGibit2³⁰
terabitTbit10¹²tebibitTibit2⁴⁰
petabitPbit10¹⁵pebibitPibit2⁵⁰
exabitEbit10¹⁸exbibitEibit2⁶⁰
zettabitZbit10²¹zebibitZibit2⁷⁰
yottabitYbit10²⁴yobibitYibit2⁸⁰

字节的次方单位

十进制前缀 (SI)名字缩写次方二进制前缀 (IEC 60027-2)名字缩写次方
千字节KB10³kibibyteKiB2¹⁰
兆字节MB10⁶mebibyteMiB2²⁰
吉字节GB10⁹gibibyteGiB2³⁰
太字节TB10¹²tebibyteTiB2⁴⁰
拍字节PB10¹⁵pebibytePiB2⁵⁰
艾字节EB10¹⁸exbibyteEiB2⁶⁰
泽字节ZB10²¹zebibyteZiB2⁷⁰
尧字节YB10²⁴yobibyteYiB2⁸⁰
容字节RB10²⁷
昆字节QB10³⁰

比特率的换算关系

十进制前缀 (SI)名称符号次方二进制前缀 (IEC 60027-2)名称符号次方
千比特每秒(kbps)kbit/s10³二进制千比特每秒(Kibps)Kibit/s2¹⁰
兆比特每秒(Mbps)Mbit/s10⁶二进制兆比特每秒(Mibps)Mibit/s2²⁰
吉比特每秒(Gbps)Gbit/s10⁹二进制吉比特每秒(Gibps)Gibit/s2³⁰
太比特每秒(Tbps)Tbit/s10¹²二进制太比特每秒(Tibps)Tibit/s2⁴⁰

例如

对于一个 \(1.5MB\) 的数据包,其包含的数据量为 \(1.5 \times 2^{20} \times 8bit\)

若数据率为 \(2 Mb/s\),则传输所需时间为 \(1.5 \times 2^{20} \times 8 bit \div 2 \times 10^6 bit/s = 6.291456 s\)

计算机网络体系结构

常见的计算机网络体系结构

计算机网络的体系结构:

  • 指计算机网络的结构和组织方式,描述了网络中各个层次的协议和功能,以及它们之间的关系。

常见的计算机网络体系结构有两种:

  • OSI(Open System Interconnection)参考模型
    • 由国际标准化组织(ISO)在20世纪70年代提出。
    • 它分为七个层次(从下到上依次为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),每个层次都有相应的协议和功能,并且每个层次的协议只与相邻的上下两层进行通信。
  • TCP/IP(Transmission Control Protocol/Internet Protocol)体系结构
    • 最初用于互联网的体系结构。
    • 它分为四个层次(从下到上依次为网络接口层、网际层、传输层、应用层),每个层次都有相应的协议和功能,而且各层之间的交互性较强,上层可以直接调用下层的服务。

计算机网络体系结构分层思想举例

计算机网络传输的过程

总结思考,内容参考自:

应用层

  • 应用层(Application Layer):应用层处于最上层,也是我们能直接接触到的。
    • 当两个不同设备的应用需要通信的时候,应用层就把应用数据传给下一层(传输层)。
    • 应用层是工作在操作系统中的用户态,传输层及以下则工作在内核态。

传输层

  • 传输层Transport Layer ):也就是上文的运输层,应用层的数据包会传给传输层,为应用层提供网络支持
    • 常用协议:
      • TCP:全称传输控制协议( Transmission Control Protocol ),大部分应用使用的正是 TCP 传输层协议,比如 HTTP 应用层协议。具有流量控制、超时重传、拥塞控制等特性,以保证数据包能可靠地传输给对方。
      • UDP:全称用户数据报协议( User Datagram Protocol ),只负责发送数据包,不保证数据包是否能抵达对方,但它实时性相对更好,传输效率也高。
    • 在 TCP 协议中,我们把每个分块称为一个 TCP 段TCP Segment ),当设备作为接收方时,传输层则要负责把数据包传给应用,但是一台设备上可能会有很多应用在接收或者传输数据,因此需要用一个编号将应用区分开来,这个编号就是端口Port )。
    • 传输层的报文中会携带端口号,因此接收方可以识别出该报文是发送给哪个应用。

注意

  • 传输层关注数据的可靠传输和流量控制,并不负责实际的传输。

网络层

  • 网络层Internet Layer ):实际的传输功能层,网络层通过网络层协议(如IP协议)将数据包(也称为数据报)从源主机传输到目的主机。
    • 网络层传输数据的步骤:
      • 数据分段:如果数据报的大小超过了网络的最大传输单元(MTU),网络层会将数据报分割成适合传输的小块,每个小块称为数据段。
      • IP地址寻址:网络层在数据报的头部添加源IP地址和目的IP地址。源IP地址是发送方主机的唯一标识符,目的IP地址是接收方主机的标识符,用于确定数据报的源和目的地。
      • 路由选择:网络层根据目的IP地址和路由表中的路由信息,选择合适的路径将数据报从源主机传输到目的主机。路由选择涉及路由选择算法和路由器之间的通信。
      • 数据报转发:根据路由选择的结果,数据报会通过一系列的路由器进行转发,每个路由器都根据目的IP地址查找下一跳的路由。
      • 数据封装:每个路由器在转发数据报时,会将数据报封装在新的数据帧中,添加物理层的帧头和帧尾,以便在物理层上进行传输。
      • 数据传输:转发的数据帧通过物理层进行传输,经过网线、光纤、无线信道等传输媒介传送。
      • 数据解封装:目的主机接收到数据帧后,会将其解封装,并提取出数据报。
      • 数据重组:如果数据报被分段传输,目的主机需要将分段的数据报重组成完整的数据。
      • 数据交付:目的主机将数据交付给上层的应用程序,完成数据的传输过程。

链路层

  • 链路层Link Layer ):负责处理网络接口的硬件和软件操作,以便将数据在物理介质上传输。
    • 其主要功能包括:
      • 帧封装:将网络层传来的IP数据报封装成数据帧,在数据帧的头部添加控制信息(如源和目的MAC地址、帧类型)。
      • 媒体访问控制(MAC):通过MAC协议控制对共享的物理介质(如以太网、无线局域网)的访问,以避免冲突和碰撞。
      • 数据帧的传输和接收:网络接口层负责将数据帧发送到物理介质上进行传输,或者从物理介质上接收到数据帧。
      • 错误检测和纠正:网络接口层负责检测数据帧在传输过程中可能出现的错误,并进行纠正。常用的纠错机制包括循环冗余检测(CRC)。
      • 数据链路控制:网络接口层确保数据帧的可靠传输,通过帧的确认和重传机制,检测丢失或损坏的数据帧,并进行相应的重传。
      • 物理地址(MAC地址)解析:网络接口层使用物理地址(也称为MAC地址)来唯一标识网络接口,将数据帧从一个网络接口传输到另一个网络接口。
      • 路由器和交换机接口:网络接口层实现与路由器和交换机之间的接口,将数据帧从本地网络发送到其他网络。

物理层

基本概念

物理层Physical Layer ):使用物理传输媒体,为数据链路层提供透明、可靠的比特数据传输服务。

其特性包括:

  • 机械特性:指明接口所用接线器的标准。
  • 电气特性:指明在接口电缆的各条线上出现的电压范围。
  • 功能特性:指明某条线上出现的某一电平的电压的意义。
  • 过程特性:指明对于不同功能的各种可能事件的出现顺序。

数据传输方式

物理层的主要任务是将比特流从发送方传输到接收方 ,确保数据的可靠传输和正确解释。

物理层可以使用两种主要的传输方式:模拟传输和数字传输。

模拟传输:将比特流编码为连续的模拟信号 进行传输,例如电压或电流的变化。其主要特点包括:

  • 连续性:使用连续的信号表示数据。
  • 带宽:带宽受限于媒介的频率响应。
  • 噪声敏感性:对噪声和干扰较为敏感,可能导致数据损坏或失真。
  • 优点:信道利用率高。
  • 缺点:信号衰减大、受噪声影响大。

数字传输:将比特流编码为离散的数字信号 进行传输,例如高电平和低电平。其主要特点包括:

  • 离散性:使用离散的信号表示数据。
  • 可靠性:通过使用错误检测和纠正技术来提高数据的可靠性。
  • 抗干扰性:对于噪声和干扰具有较强的抗干扰能力。
  • 优点:失真小、误码率低。
  • 缺点:要求频带宽、信道利用率低。

在实际应用中

  • 常用的数字传输技术包括基带传输和调制解调器传输。
    • 基带传输:直接将比特流转换为数字信号进行传输。
    • 调制解调器传输:将比特流调制到一个载波信号上进行传输。

数据通信基本理论

波特率 & 比特率

波特率(Baud rate):信号传输中的符号传输速率,通常以波特(baud)为单位。

  • 一个波特代表每秒传输的符号数量。
  • 符号可以是模拟信号的不同幅度或数字信号的不同状态。
  • 波特率是指信号在传输介质上的变化速率。

比特率(Bit rate):数据传输中每秒传输的比特(bit)数量。

  • 比特率表示的是数据的传输速率,以比特每秒(bps)为单位。
  • 比特率是指实际携带信息的比特数量。
  • 换算标准参考:比特率的换算关系

注意

  • 通常情况下,波特率和比特率的值是相等的,每个符号传输一个比特。
  • 但在某些调制技术中,一个符号可以携带多个比特,因此波特率和比特率可以不相等。
奈奎斯特定理

奈奎斯特定理(Nyquist theorem):

  • 描述了在没有噪声干扰的理想条件下,最高可达的数据传输速率。
  • 根据奈奎斯特定理,对于带宽为 \(B\) 的信道,最大可达的比特率为 \(2B\) 比特每秒。
  • 在理想条件下,可以通过信道传输的最高比特率受限于信道的带宽

  • 带宽(Bandwidth):指信号所占据的频带宽度;在被用来描述信道时,带宽是指能够有效通过该信道的信号的最大频带宽度。
  • 基带系统既有负频率又有正频率,教材所指的带宽 \(W\) 是正的带宽,\(B\) 为总的带宽。
香农公式

香农公式(Shannon's formula):

  • 描述了在存在噪声干扰的情况下,可靠地传输信息的最大比特率。
  • 根据香农公式,可靠传输的最大比特率 \(C\) 等于信道带宽 \(B\) 乘以信噪比 \(S/N\)
  • 公式表示为 \(C = B \cdot \log_2(1 + S/N)\)
  • 其中,信噪比是信号的功率与噪声的功率之比。

香农公式说明:

  • 在给定的信道条件下,可以通过适当的编码和调制技术来实现接近最大比特率的可靠数据传输。
  • 记信号功率最大为 \(E_s\),则带宽无穷大时,信道容量的极限为
\[\lim_{B \to \infty} B \log_2\left(1 + \frac{E_s}{B N_0}\right) \approx 1.44 \frac{E_s}{N_0} \]

编码与调制技术

在通信系统中需要将数字信号转换为模拟信号以便在传输介质上传输。

编码涉及将数字数据转换为适合传输的信号形式,而调制涉及将这些信号调整为适合传输介质的频率范围。

数字数据到模拟信号的调制(解调技术):

  • 调幅(AM)调制:通过改变载波的振幅来传输信息信号。
  • 调频(FM)调制:通过改变载波的频率来传输信息信号。
  • 调相(PM)调制:通过改变载波的相位来传输信息信号。
  • 正交调幅(QAM)调制:将两个正交的调幅信号叠加以传输更多的信息。
  • 正交频分复用(OFDM)调制:将高速数据流分成多个低速子载波进行传输。

模拟数据到数字信号的编码技术:

  • 脉冲编码调制技术(PCM):它使用采样和量化来将连续的模拟信号转换为离散的数字码流。

数字数据到数字信号的编码技术:

  • 不归零编码(NRZ):

    • 其中每个二进制位(\(0\)\(1\))用一个固定的电平表示,通常是 \(0V\) 表示 \(0\),而一个正或负的电平表示 \(1\)
    • 实现简单,但难以分辨位的开始和结束,需要外部时钟实现位同步;连续的 \(0\)\(1\) 会导致直流分量累加。
  • 不归零反相编码(NRZ-I):

    • 每个二进制位的电平取决于前一个二进制位的电平:如果前一个二进制位是 \(0\),则当前二进制位保持原来的电平;如果前一个二进制位是 \(1\),则当前二进制位的电平与前一个二进制位的电平相反。
    • 解决了 NRZ 的一些问题,通过“1”的跳变来表示位的改变,但仍然存在直流分量累加的问题。
  • 曼彻斯特编码:

    • 每个时钟周期被分为两个相等的时间段。
    • 如果要传输的二进制位是 0,则在第一个时间段中信号电平发生变化;
    • 如果要传输的二进制位是 1,则在第二个时间段中信号电平发生变化。
    • 具有较好的抗干扰性能,位时钟与数据分离,但需要增加传输信道的频带宽度,容易受到噪声干扰。
  • 差分曼彻斯特编码:

    • 每个时钟周期被分为两个相等的时间段。
    • 如果要传输的二进制位是 0,则在第一个时间段中信号电平发生变化;
    • 如果要传输的二进制位是 1,则在第二个时间段中信号电平发生变化。
    • 进一步提高了抗干扰性能,但同样需要增加频带宽度,容易受到高频噪声的干扰。

信道复用技术

信道复用技术:将多个独立的信号或数据流同时传输在同一物理传输介质上的技术。

  • 频分多路复用(FDM):

    • 将不同的信号分配到不同的频率带宽上,这样它们可以同时传输而不会互相干扰。
    • 每个信号占据一定的频率范围,这些频率范围之间有一定的间隔,以确保信号之间的隔离。
  • 时分多路复用(TDM):

    • 将时间划分为若干个时隙,每个时隙用于传输不同的信号。
    • 每个信号在各自的时隙中按照固定的时间间隔传输,这样多个信号可以在同一传输介质上交替传输,实现同时传输的效果。
  • 波分多路复用(WDM):

    • 利用不同的光波长将多个信号同时传输在同一光纤上。
    • 在 WDM 中,每个信号被调制到不同的光波长上,这些光波长之间有一定的间隔,以确保信号之间的隔离。
    • 光波长的数量决定了 WDM 系统的容量,可以实现高带宽的传输。
  • 码分多路复用(CDM):

    • 将多个信号通过不同的码序列进行编码,每个信号被乘以一个唯一的码序列,这些码序列之间具有正交性质,使得它们可以在同一传输介质上同时传输而不会互相干扰。
    • 接收端通过相应的码序列解码来恢复原始信号。

计算机体系专业术语解释

域名

域名是用于标识和定位互联网上资源的名称。例如:lys2021.com

简单来说,域名是一个网站的地址 ,通过域名可以方便地访问特定的网站或资源。

域名可以按照其在域名系统中的位置进行分类,分为以下几个级别:

  • 顶级域名(Top-Level Domain,TLD):顶级域名是最高级别的域名分类,在域名的最右侧,通常由几个字母组成。顶级域名又可以分为两类:
    • 通用顶级域名(Generic Top-Level Domain,gTLD):包括常见的.com.net.org等,用于表示域名的分类或用途。
    • 国家顶级域名(Country Code Top-Level Domain,ccTLD):由国家或地区使用的域名后缀,例如.cn代表中国、.jp代表日本等,用于表示域名的国家或地区。
  • 二级域名(Second-Level Domain,SLD):位于顶级域名之下,是根据注册者的选择而自定义的域名部分。
    • 例如,在 lys2021.com 中,lys2021 就是二级域名。
  • 子域名(Subdomain):位于二级域名之下,可以进一步细分为多个层级。
    • 例如,在 lys2021.com 主域名下,可以创建如下子域名:game.lys2021.comblog.lys2021.com

什么是www

www 是一个常见的子域名前缀,常用于表示网络上的世界广域网(World Wide Web)服务。它通常用于标识网站的主要访问地址,作为网站的默认前缀。大多数网站在URL中都会以 www 作为子域名的一部分。


DNS

DNS(域名系统)是一种网络系统,其主要作用是将域名转换为对应的IP地址。

  • DNS充当了互联网上的一个电话簿,用户可以通过输入网址(域名)来访问特定的网站,而不需要记住网站的IP地址。
    • 当用户输入一个域名时,用户设备会发送一个DNS查询请求到DNS服务器,DNS服务器会返回与该域名对应的IP地址,然后用户设备根据该IP地址与服务器建立连接,并将用户指向正确的网站。

DNS 中的域名都是用句点来分隔的,比如 lys2021.com,这里的句点代表了不同层次之间的界限

  • 在域名中,越靠右的位置表示其层级越高
    • 实际上,域名最后还有一个点,例如 lys2021.com.,这个最后的点代表根域名。
    • 也就是,. 根域在最顶层,它的下一层是 .com 顶级域,再下一层是 lys2021.com

域名的层级关系类似一个树状结构:

  • 根 DNS 服务器 (.)
    • 顶级域 DNS 服务器 (.com)
      • 权威 DNS 服务器 (lys2021.com)

DNS的解析过程

什么是CDN

CDN(内容分发网络)是一种通过分布在全球范围的服务器来提供高速、可靠和安全内容传输的网络架构。CDN的目标是通过将内容存储在靠近用户的边缘服务器上,以降低网络延迟和提高内容传输速度,从而改善用户的访问体验。

  • CDN的工作原理是在全球各个地点设置多个边缘节点服务器,这些服务器存储了静态内容(例如网页、图像、视频等)。当用户向CDN请求内容时,CDN会根据用户的位置,将内容从最接近用户的边缘节点服务器上提供,而不是从原始服务器上提供。这样可以有效地减少用户请求的跳数,降低网络延迟,提高响应速度和带宽利用率。

CDN什么时候工作

  • 前提是该网站部署了CDN服务。
    • DNS解析并与服务器建立连接后,当用户发起对特定内容的请求时,CDN才会根据用户的位置和网络环境,将请求路由到最近的边缘节点服务器上。
    • 在用户请求的内容没有缓存或已过期时。当用户请求的内容(例如图像、视频、网页等)不在边缘节点服务器的缓存中,或者已经过了缓存的有效期,CDN会将请求转发到原始服务器上获取最新的内容,然后将内容缓存到边缘节点服务器上以便后续请求时使用。

HTTP

HTTP是超文本传输协议(Hypertext Transfer Protocol)的缩写。

  • 它是一种用于在计算机网络中传输超文本和多媒体文件的应用层协议
    • HTTP协议是Web应用中最常用的一种协议,它建立在TCP/IP协议之上,通过使用客户端-服务器模型来进行通信。

在HTTP中,客户端发送HTTP请求,服务器则返回HTTP响应,实现了客户端和服务器之间的通信和数据交换。

  • HTTP协议是一种无状态的协议,每个请求和响应之间都是独立的。

什么时候生成HTTP请求

  • 用户在浏览器输入域名后,浏览器对 URL 进行解析之后,确定了 Web 服务器和文件名,然后根据这些信息来生成 HTTP 请求消息。

HTTP请求如何发送

  • 通过浏览器解析 URL 并生成 HTTP 消息后,需要委托操作系统将消息发送给 Web 服务器。
    • 但在发送之前,需要查询服务器域名对应的 IP 地址,因为委托操作系统发送消息时,必须提供通信对象的 IP 地址。
    • 故需要先交给 DNS 进行解析。

传输数据需要什么条件

  • HTTP 是基于 TCP 协议传输的,在 HTTP 传输数据之前,首先需要 TCP 建立连接,TCP 连接的建立,通常称为三次握手
    • 三次握手目的是保证双方都有发送和接收的能力

什么是无状态

  • “无状态”指的是在网络通信过程中,服务器不会保存客户端的任何信息或状态。
    • 每个请求和响应都是相互独立的,服务器不会记住之前的请求或者与之前请求的关联。这意味着每个请求都需要提供足够的信息来使服务器理解和处理请求,而服务器返回的响应也只包含当前请求所需的数据和状态。
    • 由于无状态的特性,服务器的负载较轻,更容易实现可伸缩性和可靠性。
    • 为了实现会话和状态管理,例如保存用户登录状态,通常会使用会话管理技术(如使用Cookie或令牌)来存储和传递客户端的状态信息。

什么是Cookie

  • Cookie是一种在客户端存储数据的小型文本文件。
    • 它由Web服务器发送给客户端(通常是浏览器),然后由客户端保存在本地。当客户端发送后续请求时,会在请求中携带这些Cookie,以便服务器可以识别和跟踪客户端。
    • 使用Cookie的主要优势是它可以在不同的请求之间保持会话状态。通过将会话ID等信息存储在Cookie中,服务器可以跟踪用户的操作和状态,实现用户的认证和个性化体验。
    • 然而,Cookie也有一些安全和隐私方面的考虑,因此需要注意对敏感信息的处理和保护,并在必要时进行加密和安全措施。

HTTPS

HTTPS是超文本传输安全协议(Hypertext Transfer Protocol Secure)的缩写。

HTTPS是一种通过加密和认证来保护网络通信安全的协议。它是基于HTTP协议的加密版本,其目的是在用户和网站之间建立安全的通信渠道,防止数据被窃取、篡改或伪造。

HTTPS通过使用SSL(安全套接层)或TLS(传输层安全)协议对传输的数据进行加密:

  • 这意味着在数据传输过程中,第三方无法直接截取或读取数据的内容。

同时,HTTPS还使用证书来验证网站的身份:

  • 当用户访问一个使用HTTPS的网站时,浏览器会检查网站的证书,以确保用户连接到的是经过验证和信任的网站。

HTTPS工作原理是什么:

  • HTTPS的工作原理是在HTTP通信基础上添加了SSL/TLS握手过程和加密算法。
    • 当用户访问一个HTTPS网站时,浏览器会与网站的服务器进行握手,交换加密算法和密钥,然后使用密钥对数据进行加密和解密。
    • 这样,即使数据在传输过程中被截获,也无法被解密,从而保护了数据的机密性和完整性。

SSL

将 IP 划分为网络号和主机号。

  • 可以更有效地将 IP 地址分配给不同的网络和主机,并实现路由和转发的目的。
  • 这种划分也有助于进行网络分段、安全性控制和 IP 地址管理。
利用子网掩码划分
  • 地址类别划分方式:

    • 根据IP地址的类别(A、B、C类)来划分子网掩码。
    • 例如,A类地址默认的子网掩码是255.0.0.0,B类地址默认的子网掩码是255.255.0.0,C类地址默认的子网掩码是255.255.255.0。
  • 无类别域间路由(CIDR)划分方式:

    • 通过在IP地址后面加上斜线和一个数字(如192.168.0.0/24),数字表示子网掩码中连续的1的个数,即网络部分的长度。
    • 这种方式可以根据具体需求对IP地址进行更灵活的划分。
其他划分方式
  • VLAN划分:

    • VLAN(Virtual Local Area Network)是一种逻辑上的划分方式,可以将一个物理局域网划分成多个虚拟局域网。
    • VLAN可以根据不同的需求和安全策略划分,不受IP地址或子网掩码限制。
  • VRF(Virtual Routing and Forwarding)划分:

    • VRF是在路由器上虚拟出多个路由实例,每个实例都具有独立的路由表和转发表。
    • 通过VRF划分,可以将一个物理网络划分成多个逻辑网络,每个逻辑网络拥有独立的路由环境。
  • 虚拟化划分:

    • 虚拟化技术可以将一个物理服务器划分为多个虚拟机,每个虚拟机有独立的操作系统、网络和资源。
    • 通过虚拟化,可以将一个物理网络划分成多个逻辑网络,并且可以根据需求进行灵活的调整和管理。

公有IP&私有IP

为什么要将IP分为公有IP和私有IP

  • IP地址资源限制:

    • IPv4的地址空间有限,只有约42亿个地址可用。
    • 公有IP地址是有限的,必须被合理分配给互联网上的组织和机构。
    • 而私有IP地址是为内部使用而保留的,可以在组织内部自由分配而无需向互联网注册或付费。
  • 网络安全:

    • 使用私有IP地址可以提高网络的安全性。
    • 私有IP地址只能在特定的私有网络内部使用,无法直接从互联网访问。
    • 这为网络提供了一层保护,可以有效防止未经授权的外部访问和攻击。
  • 子网划分:

    • 私有IP地址可以允许在内部网络中进行更灵活的子网划分。
    • 组织可以根据自身的需求和拓扑结构,自由划分子网来满足实际的网络连接和管理要求,而无需向任何外部机构申请额外的IP地址。
区分公有IP和私有IP

平时我们办公室、家里、学校用的 IP 地址,一般都是私有 IP 地址。因为这些地址允许组织内部的 IT 人员自己管理、自己分配,而且可以重复。因此,你学校的某个私有 IP 地址和我学校的可以是一样的。


NAT

什么是NAT

网络地址转换(Network Address Translation,NAT)

  • 将在一个网络中使用的 IP 地址转换为另一个网络中使用的 IP 地址。
  • NAT 技术的主要目的是解决 IPv4 地址枯竭的问题,同时也可以提供网络安全和灵活性。

由什么负责转换

  • NAT 技术通常在路由器上被实现,它操作在网络层(OSI 模型的第三层),以转换 IPv4 地址。
    • 它将源 IP 地址和端口、目标 IP 地址和端口组合起来,创建一个映射表,将内部网络的私有 IP 地址和端口映射到外部网络中的公有 IP 地址和端口。

NAT 有什么用

  • IP 地址转换:

    • NAT 技术实现了将私有 IP 地址(例如 192.168.x.x)转换为公有 IP 地址。
    • 内部网络的设备可以通过共享一个公有 IP 地址与外部网络进行通信,而无需为每个设备都分配一个公有 IP 地址。
  • 端口转换:

    • NAT 技术还可以通过端口映射将内部网络的设备和服务映射到外部网络的不同端口上。
    • 可以在一个公有 IP 地址上提供多个服务(如 Web 服务器、FTP 服务器等),而无需为每个服务分配独立的公有 IP 地址。
  • 动态地址分配:

    • 使用 NAT 技术,路由器可以为内部网络上的设备自动分配临时的公有 IP 地址。
    • 这种方式称为动态 NAT,可以降低公有 IP 地址的消耗和管理的复杂性。

NAT 穿透

内网穿透(NAT 穿透)是一种网络技术,用于将位于私有网络(内网)中的服务器或应用程序通过公共网络(例如互联网)访问。

通常情况下,私有网络中的设备无法直接从外部网络访问,因为私有网络使用的是非公有 IP 地址,同时还可能存在防火墙和路由器等网络设备的限制。

内网穿透技术通过一些特殊的技术手段,实现了将私有网络中的服务映射到公共网络上,使得外部网络可以访问和使用这些服务。它涉及到两个主要组成部分:内部端点(位于私有网络中)和外部端点(位于公共网络中)。

内网穿透的工作原理

  • 通常是通过在内部网络中的设备上部署一个中间代理(如反向代理或 VPN 服务),该代理在公共网络上创建一个通道,将外部网络的请求转发到内部网络中的目标设备。
    • 这样,无论在哪里,用户都可以使用公共网络连接到内部网络的服务。

内网穿透的应用情景

  • 远程访问企业内部的服务器或应用程序。
    • 在开发和测试环境中,从外部网络访问内部的测试服务器。
    • 在家庭网络中,访问位于家庭网络设备上的文件或媒体。

一些常见的内网穿透工具和协议包括:ngrok、frp、SSH 反向隧道、VPN 等。这些工具和协议提供了不同的功能和配置选项,以满足不同的内网穿透需求。


VPN

VPN,全称为(Virtual Private Network),即虚拟私人网络,是一种通过公共网络(如互联网)建立私密和加密连接的技术:

  • VPN 通过在通信的两个节点(例如用户设备和企业网络)之间创建了一个加密隧道,使得通过公共网络传输的数据能够安全、私密地传输。

VPN 能做什么

(后续内容暂缺)

VPN的主要功能包括:

  • 绕过地理限制: VPN可以通过连接到位于其他国家或地区的服务器,使用户在浏览网站或使用在线服务时获得该地区的IP地址。这可以让用户绕过地理限制,访问被屏蔽或限制的内容、网站或服务。

  • 远程访问: 企业可以使用VPN技术为员工提供远程访问公司内部网络的权限。员工可以通过VPN连接到公司的网络,访问内部资源和应用程序,而无需身处办公室。

  • 匿名上网: 通过VPN连接到远程服务器,用户可以以服务器所在地区的IP地址进行上网,从而隐藏自己的真实IP地址,实现匿名上网。

VPN可以通过多种协议实现,如IPSec、OpenVPN、PPTP、L2TP等。用户可以通过在计算机、智能手机或其他设备上安装VPN客户端来连接到VPN服务器,建立安全的连接。同时,许多公司和服务提供商也提供VPN服务,供用户选择和使用。


ICMP

ICMP(Internet Control Message Protocol)是互联网控制消息协议的缩写。它是一种网络协议,用于在IP网络上传输控制信息和错误报告。ICMP通常在IP数据包的头部中承载了控制信息和错误报告,这些信息和报告可以帮助网络设备诊断和解决各种网络通信问题。

ICMP的主要作用:
  • 错误报告: 当数据包在传输过程中发生错误时,ICMP会生成一个错误报告,例如目标不可达、超时等。
  • 探测和诊断: ICMP也可以用于网络设备之间的通信探测和诊断,以确定网络连接的可用性和状态,例如通过Ping命令发送ICMP Echo请求以测试主机的可达性。
  • 路由信息: ICMP还可用于传输路由信息,例如路由器可以通过ICMP重定向消息通知发送方更好的路径选择。
常见的ICMP报文类型

ICMP报文类型是ICMP协议中定义的不同类型的消息,用于在网络中进行控制和错误报告:

  1. Echo Request / Echo Reply(类型 8 / 类型 0):用于进行网络连通性测试,常见的Ping命令就使用了ICMP的Echo报文类型。
  2. Destination Unreachable(类型 3):用于指示数据包无法到达目的地主机,可能的原因包括目的地端口不可达、网络不可达、主机不可达等。
  3. Source Quench(类型 4):用于告知发送方要降低发送速率,以避免网络拥塞。
  4. Redirect(类型 5):用于通知发送方使用更优的路由,以改进数据包的转发路径。
  5. Time Exceeded(类型 11):用于指示数据包的生存时间(TTL)已过期,通常在路由循环或传输延迟过高时出现。
  6. Parameter Problem(类型 12):用于指示数据包中的某些参数错误,例如IP头部长度不正确等。
  7. Timestamp Request / Timestamp Reply(类型 13 / 类型 14):用于提供时间戳信息,用于网络诊断和同步。
  8. Address Mask Request / Address Mask Reply(类型 17 / 类型 18):用于请求或回复子网掩码信息,用于子网地址的配置。

这只是一部分常见的ICMP报文类型,ICMP还有其他一些类型用于不同的控制和错误报告目的。每个报文类型都有其特定的用途和格式。

Ping

Ping是什么

  • 命令一般格式:ping <目标IP或域名>
    • Ping命令是一个常用的网络工具,可在命令行界面中使用,用于测试网络设备的可达性和网络连接的延迟。
    • 它使用了ICMP协议的Echo请求和Echo回复报文。

Ping是怎么工作的

  • 执行Ping命令后,系统会发送一个ICMP Echo请求数据包到目标主机,并等待目标主机回复一个ICMP Echo回复数据包。
    • Ping命令会显示每个数据包的往返时间(RTT)以及总体的丢包率。通过观察Ping的结果,可以判断目标主机的可达性和网络连接的质量。

例如:

127.0.0.1&localhost

什么是127.0.0.1

  • 127.0.0.1是本地回环地址(loopback address),也被称为本地主机地址。它是IP地址中的一个特殊地址,用于指示本地主机或本机自身。是IPv4地址范围中的一部分。
    • 当计算机上的应用程序尝试连接该地址时,数据包并不经过网络传输,而是直接被发送到本地网络接口上进行处理。因此,127.0.0.1被用于本地主机的自我测试和回环检测。
    • 通常情况下,当在本机上访问某个网络服务时,可以将目标地址设置为127.0.0.1,这样应用程序会将请求发送到本地主机进行处理,从而实现本地服务的测试和调试。

什么是localhost

  • localhost是一个特殊的主机名(hostname),用于表示本地主机或本机自身。它的含义与IP地址127.0.0.1相同,都指示本地回环地址。在网络协议中,localhost常被用于本地主机的测试和回环检测。
    • 与127.0.0.1相比,localhost更像是一个符号名称,是网络通信中的一个别名。一般情况下,localhost会解析为IP地址127.0.0.1。这意味着,当应用程序尝试连接到localhost时,实际上是连接到本地主机的回环地址,实现了本地主机的自我测试和回环检测。

两者的区别是什么

  • 格式
    • 127.0.0.1是一个具体的IP地址,是IPv4地址空间中的一部分;
    • 而localhost是一个主机名,是用来代表本地主机的符号名称。
  • 使用场景
    • 127.0.0.1在应用程序或操作系统中的网络设置中常用,特别在测试和调试本地网络服务时;
    • 而localhost在一些应用程序或配置文件中使用更普遍,在访问本地服务或指定服务器时使用。

先来ping一下127.0.0.1:

再来ping一下localhost:

总结

127.0.0.1回环地址localhost域名,默认等于 127.0.0.1

  • 大多数情况下,localhost 会解析为 IP 地址 127.0.0.1,但也可能有例外情况(例如在某些网络环境或配置中,localhost 可能会被设置为其他 IP 地址)。
  • 无论如何,localhost 的作用是表示本地主机或本机自身,用于在本地进行网络连接和回环测试。