计算机网络概论 | 青训营笔记

124 阅读26分钟

image.png

计算机网络基础

网络组成部分

  • 主机:客户端和服务端

  • 路由器

  • 网络协议

网络结构

  • 本地网络

本地网络(Local Area Network,简称 LAN)是指一个相对较小的地理范围内(例如家庭、学校、公司或办公楼)的计算机和其他设备通过网络媒介相互连接的系统。本地网络的主要目的是实现这些设备间的资源共享、数据传输和通信。

  • 本地网络节点

本地网络节点(Local Network Node)是指在本地网络(LAN)中的一个设备,每个节点在网络中都有一个唯一的地址,通常称为IP地址。这个地址用于在网络中识别和定位特定的设备。在数据传输过程中,这些地址会帮助网络设备将信息发送到正确的目的地。本地网络节点之间的通信通常通过交换机(Switch)或路由器(Router)实现。交换机主要负责在同一局域网内设备之间转发数据包,而路由器主要负责在不同网络之间转发数据包,如在本地网络和互联网之间。

  • 本地网络之间的网络

在一个大型组织或企业环境中,通常会使用子网划分(subnetting)对本地网络进行划分。子网划分是通过对IP地址进行按位与操作来实现的。使用子网掩码(subnet mask)可以确定一个IP地址属于哪个子网。在子网划分后,同一子网内的设备可以直接通信,而跨子网通信需要通过路由器(router)实现。

  • 区域网络

Metropolitan Area Network,简称 MAN,区域网络覆盖一个城市或城市群,比本地网络(LAN)的范围更大,但比广域网(WAN)小。

  • 城域网

Campus Area Network,简称 CAN,城域网是指覆盖一个学校、大学或企业园区范围内的计算机网络,规模介于本地网络(LAN)和区域网络(MAN)之间。城域网通常由多个相互连接的局域网组成。

  • 广域网

Wide Area Network,简称 WAN,广域网覆盖一个很大的地理区域,如国家、地区甚至全球。广域网通过远程通信链路和中继设备连接多个本地网络、区域网络和城域网。

信息交换方式

  • 电路交换

主要用于语音通信。在电路交换中,通信双方之间建立一条固定的、专用的物理通信路径。在通话过程中,这条路径会一直被保留,直到通话结束。数据沿着这条路径顺序传输。

特点:

1.连续性:由于通信双方之间有一条专用的通信路径,因此数据传输具有连续性和实时性,适用于实时通信,如电话通话。

2.低效:在通信过程中,即使没有数据传输,通信路径也会一直被占用。这可能导致资源浪费,尤其在数据传输量不大的情况下。

3.通话建立时间较长:在建立通话之前,需要为通信双方分配一条物理路径,这个过程可能需要较长的时间。

  • 分组交换

是现代计算机网络(如互联网)中主要使用的通信技术。在分组交换中,数据被切分成多个数据包(或称分组),每个数据包独立传输。数据包在网络中根据最佳路由选择相应的路径,最终在目的地重新组装成原始数据。

特点

1.高效:数据包在网络中独立传输,可以根据网络拥塞情况动态选择最佳路径。这样可以实现更高效的资源利用和更快的数据传输速率。

2.弹性:由于数据包可以通过不同的路径传输,因此分组交换网络具有较强的抗干扰能力和容错性。

3.适用于多种应用:分组交换可以处理多种类型的数据(如文本、图像、音频和视频),非常适合复杂的计算机网络应用。

网络分层(7层模型)

1.物理层(Physical Layer): 物理层负责处理与物理介质(如电缆、光纤等)相关的通信任务,包括数据的比特流传输、信号编码、硬件接口等。在这一层,数据以比特(bit)为单位进行传输。

2.数据链路层(Data Link Layer): 数据链路层负责建立、维护和断开数据链路,以确保从源到目的地的可靠数据传输。此外,数据链路层还负责进行错误检测和流量控制。在这一层,数据以帧(frame)为单位进行传输。

3.网络层(Network Layer): 网络层负责处理网络寻址和路由选择,以确定数据包从源节点到目的节点的最佳路径。网络层使用 IP 地址进行寻址。此外,网络层还负责处理分组和重组数据包。在这一层,数据以数据包(packet)为单位进行传输。

4.传输层(Transport Layer): 传输层负责提供端到端的通信服务,包括数据的分段、传输、重组和确认。传输层还负责处理流量控制和差错控制。常见的传输层协议有 TCP(传输控制协议)和 UDP(用户数据报协议)。

5.会话层(Session Layer): 会话层负责建立、管理和断开网络中的通信会话。会话层通过会话标识符来区分不同的通信会话,以确保数据流向正确的目的地。

6.表示层(Presentation Layer): 表示层负责处理数据的表示和编码问题,以确保发送方和接收方的数据格式兼容。此外,表示层还负责进行数据加密和解密、数据压缩和解压缩等操作。

7.应用层(Application Layer): 应用层是网络协议栈的最顶层,负责处理与特定应用程序相关的通信任务。应用层协议通常与用户直接交互,例如 HTTP(超文本传输协议)、FTP(文件传输协议)和 SMTP(简单邮件传输协议)等。

每一层都无需知道上一层内传输的具体内容是什么。

协议

网络基础协议是指在计算机网络中实现各种功能的一组规定,这些规定描述了数据在网络中的传输方式、格式和处理过程。

  • 协议的存在依赖于连接。

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

HTTP协议

image.png

TCP协议

image.png

Web中的网络

HTTP

HTTP协议示例

image.png

  • 请求

请求行(Request Line)GET /index.html HTTP/1.1。请求行包含了请求方法(GET)、请求资源的路径(/index.html)和 HTTP 协议版本(HTTP/1.1)。

Hostwww.example.com。Host 头部指定了请求的目标服务器域名。

User-AgentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36。User-Agent 头部描述了发起请求的客户端(浏览器)的信息,包括操作系统、浏览器类型和版本等。

Accepttext/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8。Accept 头部表示客户端支持接收的 MIME 类型。在这个示例中,客户端支持接收 HTML、XHTML、XML 和 WebP 等格式的内容。

Accept-Languageen-US,en;q=0.5。Accept-Language 头部表示客户端支持的语言和优先级。在这个示例中,客户端优先支持美国英语,其次是其他英语。

Connectionkeep-alive。Connection 头部表示连接的控制选项。在这个示例中,keep-alive 表示客户端希望保持连接,以便在多个请求之间复用 TCP 连接。

  • 响应

状态行(Status Line)HTTP/1.1 200 OK。状态行包含 HTTP 协议版本(HTTP/1.1)、状态码(200)和状态描述(OK)。状态码 200 表示请求已成功处理。

DateMon, 23 May 2022 22:38:34 GMT。Date 头部表示响应生成的日期和时间。

ServerApache/2.4.1 (Unix)。Server 头部描述了生成响应的服务器软件和版本信息。

Content-Typetext/html; charset=UTF-8。Content-Type 头部指定了响应体的媒体类型(MIME 类型)和字符编码。在这个示例中,响应体的内容是 HTML 格式,字符编码为 UTF-8。

Content-Length138。Content-Length 头部表示响应体的字节长度。

Last-ModifiedSun, 22 May 2022 15:28:12 GMT。Last-Modified 头部表示请求资源的最后修改时间。

Connectionclose。Connection 头部表示连接的控制选项。在这个示例中,close 表示服务器在发送完响应后将关闭 TCP 连接。

响应体(Response Body) :响应体包含实际返回的数据,通常是 HTML、JSON、XML 等格式的内容。在这个示例中,响应体是一个简单的 HTML 页面。

HTTP连接模型

HTTP/1.0/1.1

HTTP/1.0使用了典型的“请求-响应”模型,客户端发起请求后,需要收到服务端的完成响应后才能发起第二个请求。导致两个问题:1)网络利用率不高;2)无法在一条连接上多路复用,在请求未完成时插入另一个请求,会导致http无法分辨是来自哪个请求的。

HTTP/1.1无法多路复用的主要原因是其基于文本的请求和响应格式以及协议设计。在 HTTP/1.1 中,每个请求和响应都是一个完整的文本消息,必须按照顺序发送和接收。这导致了一种称为“队头阻塞”(Head-of-Line Blocking)的问题,即一个请求或响应的处理延迟会影响后续的请求和响应,无法并行处理。1.1时代,解决队头堵塞的方案是建立多条TCP连接,但使得经济成本上升。

image.png

HTTP1.0和1.1的连接模型

Short-lived connections:1.0时代,每一个请求都会创建一个新的连接,连接完销毁

Persistent connection:1.1时代,只要未声明短连接模型,就会自动保持连接一段时间,客户端和服务器可以在一个 TCP 连接上发送多个 HTTP 请求和响应,但效率依旧不高。

HTTP pipelining:1.1时代,允许客户端在收到上一个请求的响应之前,连续发送多个请求。服务器会按照请求的顺序依次处理,并按顺序返回响应。基本没有浏览器使用,依旧没法解决队头堵塞问题,而且容易出现安全问题

HTTP2

HTTP/2 能实现多路复用的原因如下:

二进制分帧:HTTP/2 把请求和响应分解为多个二进制帧,每个帧都有一个唯一的标识符。这使得客户端和服务器能够在一个 TCP 连接上同时发送和接收多个请求和响应的帧,而不会产生队头阻塞问题。

流(Stream) :HTTP/2 引入了的概念,每个请求和响应都有一个独立的流。流可以并行处理,每个流的帧可以独立发送和接收,而不受其他流的影响。这使得多个请求和响应可以在一个 TCP 连接上并行传输,实现多路复用。

优先级和依赖:HTTP/2 还支持为每个流设置优先级和依赖关系。客户端可以通过优先级和依赖信息告诉服务器哪些请求更重要,哪些请求需要先完成。这样,服务器可以更有效地利用资源,优先处理重要的请求,进一步提高性能。

流量控制:HTTP/2 引入了更为精细的流量控制机制,客户端和服务器可以独立地为每个流设置发送窗口大小,以控制每个流的传输速率。这有助于避免一个流占用过多带宽,影响其他流的传输。

帧(Frame)是协议的基本传输单位。HTTP/2 将请求和响应消息分解为多个小的二进制帧,这些帧在客户端和服务器之间传输。每种类型的帧都有特定的目的和格式。将多个http请求拆分到帧里发送,在浏览器或服务器中重组为完整信息

前3个字节:载荷长度

第4个字节:类型

第5个字节:类型对应的Flags

第6到第9字节:第0位:保留位;第2-31位:流ID

随后8192字节:载荷

好处有:

多路复用:由于每个帧都有一个关联的流,客户端和服务器可以在单个 TCP 连接上同时发送和接收多个请求和响应。这避免了 HTTP/1.1 中的队头阻塞问题,提高了传输性能和资源利用率。

优先级和依赖:HTTP/2 允许为每个流设置优先级和依赖关系。客户端可以通过 PRIORITY 帧告诉服务器哪些请求更重要,哪些请求需要先完成。这使服务器能够更有效地分配资源,提高传输性能。

流量控制:HTTP/2 引入了更为精细的流量控制机制。客户端和服务器可以通过 WINDOW_UPDATE 帧独立地为每个流设置发送窗口大小,以控制每个流的传输速率。这有助于避免一个流占用过多带宽,影响其他流的传输。

服务器推送:HTTP/2 支持服务器推送功能,允许服务器在客户端请求之前主动发送资源。服务器可以通过发送 PUSH_PROMISE 帧,提前发送关联资源的头部信息,以提高页面加载性能。

头部压缩:HTTP/2 采用 HPACK 压缩算法对请求和响应头部进行压缩,以减少头部数据的大小。这有助于降低传输延迟,提高性能。在HTTP2中,如果其中一个TCP丢包了,整个信息需要等待这个TCP报重新发送,所以依旧会堵塞

HTTP2中为3RTT启动:TCP启动1RTT,TLS启动2RTT(TLS1.3以下)

image.png

  • HTTP/2 定义了以下几种类型的帧:

  • DATA:用于传输请求或响应的主体数据。

-HEADERS:用于传输请求或响应的头部信息。HEADERS 帧可以与 CONTINUATION 帧一起传输较大的头部信息。

  • PRIORITY:用于为流设置优先级和依赖关系。

  • RST_STREAM:用于终止一个流,表示发生了错误或者不再需要传输该流的数据。

  • SETTINGS:用于在客户端和服务器之间交换配置参数。

  • PUSH_PROMISE:用于服务器向客户端推送资源,提前发送关联资源的头部信息,提高性能。

  • PING:用于测量最小往返时间以及检测连接是否活跃。

  • GOAWAY:用于通知对端关闭连接,可以包含诊断信息。

  • WINDOW_UPDATE:用于实现流量控制,调整发送窗口大小。

  • CONTINUATION:用于在 HEADERS 帧之后继续传输头部信息。

HTTP3

QUIC:Quick UDP Internet Connection,基于UDP(User Datagram Protocol),而非TCP

  • 现存网络设备对 TCP 和 UDP 支持已经僵化

  • UDP不靠谱但是QUIC靠谱

  • QUIC可以为除HTTP协议以外的应用层协议提供支持

具有以下优势:

更快的连接建立:由于 QUIC 基于 UDP,它将传输层和加密层的握手过程合并,从而减少了握手次数。这可以减少连接建立的延迟,尤其在网络环境不佳的情况下,对用户体验有很大帮助。

连接迁移:QUIC 支持连接迁移,当用户设备的网络环境发生变化时,可以实现平滑地从一个网络切换到另一个网络,而不会影响到已有的连接。这有助于减少延迟和资源浪费,提高用户体验。

错误恢复:QUIC 在丢包恢复方面比 TCP 更加高效,因为它可以更快地识别丢失的数据包并进行重传。这有助于减少延迟和提高传输性能。

QUIC:1RTT启动(第一次访问)0RTT启动(第二次访问)

CDN

CDN(Content Delivery Network,内容分发网络)是一种用于优化网络资源访问速度和提高用户体验的技术。CDN 的核心思想是将网站或应用程序的内容(如图片、视频、脚本等)缓存到位于不同地理位置的服务器上,使用户可以从最近的服务器获取所需的内容,从而降低延迟、提高访问速度和可用性。

CDN 的主要组成部分包括:

  • 边缘服务器(Edge Server):位于各地的服务器,用于缓存和分发内容。当用户请求内容时,CDN 会将请求重定向到最近的边缘服务器,从而加快访问速度。边缘服务器之间会根据一定的策略进行内容同步,确保缓存的内容是最新的。

  • 负载均衡器(Load Balancer):用于在多个边缘服务器之间分发用户请求。负载均衡器根据各边缘服务器的负载情况和用户的地理位置,智能地将请求分配到合适的边缘服务器。

  • 域名解析系统(DNS):CDN 通常会有自己的 DNS 服务,用于将用户的请求重定向到最近的边缘服务器。当用户访问一个使用 CDN 的网站时,DNS 会根据用户的 IP 地址和边缘服务器的位置信息,返回最近的边缘服务器 IP 地址,从而实现请求的重定向。

  • 内容管理系统(CMS):用于管理和维护 CDN 中的内容。内容提供者可以通过 CMS 将内容发布到 CDN,并对内容进行更新、删除等操作。

CDN 的主要优点包括:

  • 降低延迟:通过将内容缓存到离用户更近的边缘服务器上,CDN 可以显著降低访问延迟,提高用户体验。

  • 提高可用性:CDN 能够在多个边缘服务器之间分发流量,从而提高系统的冗余性。当某个边缘服务器出现故障时,用户的请求可以被重新定向到其他可用的服务器,确保服务的正常运行。

  • 减轻源站压力:由于大部分用户请求都被 CDN 的边缘服务器处理,源站服务器的压力得到了缓解,从而降低了源站的成本和维护复杂性。

  • 节省带宽:CDN 可以通过缓存和压缩技术,有效地减少网络带宽的消耗,降低数据传输成本。

  • 安全性:CDN 可以提供诸如DDoS(分布式拒绝服务)攻击保护、Web 应用程序防火墙等安全措施,保护网站免受攻击和恶意访问。

  • 支持动态内容:除了静态内容外,CDN 还可以缓存和分发动态内容,如动态生成的 HTML 页面、Web API 的响应等。

  • 需要注意的是,CDN 的应用场景和效果并不是完全适用于所有类型的网站和应用程序。特别是对于内容更新频繁的网站或应用程序,使用 CDN 可能会导致更新不及时或者缓存不一致等问题。因此,在使用 CDN 时需要根据具体情况进行评估和权衡。

服务器分布

一般是CDN服务商按地理位置进行分布

image.png

服务器选择

为保证延迟和传输稳定,一般会选择最合适的CDN服务器,尽量少中转。(最多跳两次)

选择CDN服务器的建议:

  • 流量量:选择 CDN 服务器时,需要考虑网站或应用程序的流量量,尤其是在高流量时段的稳定性。根据实际情况,选择能够满足网站流量需求的服务器。

  • 用户分布:选择距离用户最近的服务器,可以降低访问延迟,提高用户体验。根据网站或应用程序的用户分布情况,选择离用户最近的 CDN 服务器。

  • CDN 服务商的覆盖范围:选择覆盖范围广泛的 CDN 服务商,可以确保服务的可用性和稳定性。选择具有全球分布的 CDN 服务商,能够满足全球用户的访问需求。

  • 成本:选择合适的 CDN 服务器需要考虑成本问题。通常情况下,不同 CDN 服务商的价格和服务质量差异较大。选择适合自己需求的 CDN 服务商,可以确保在满足业务需求的前提下降低成本。

  • CDN 服务商的技术支持和服务质量:选择具有良好技术支持和服务质量的 CDN 服务商,可以保障服务的稳定性和安全性。需要注意的是,选择 CDN 服务商时需要进行充分的调研和比较,了解服务商的技术实力和服务质量。

image.png

DNS劫持

域名解析一般由网站自己处理,要加速的域名则重定向到CDN广商的域名解析服务处理,CDN广商根据来源确定最近的CDN服务器的IP,让用户直接访问最近的 CDN 服务器。DNS劫持一般就发生在这个过程中。

CDN服务器内容管理策略

  • 拉策略

默认情况下什么也不做,有用户访问时则向有所需内容的服务器请求,传输给用户并将这个内容保存在本地服务器上。因为服务器容量有限,所以每隔一段时间会将之前保存的内容清理。

优点:

1.可以实时获取最新数据,不需要手动推送数据。

2.可以有效地缓解源站的访问压力,节省带宽和资源。

3.部署简单,不需要与源站建立链接。

缺点:

1.访问速度可能较慢,特别是在访问量较大时。

2.需要源站保持开放状态,以便 CDN 节点随时请求数据。

  • 推策略

根据内容管理,事先保存可能被访问的内容在本地服务器上,有用户访问时直接传输,没有则向有所需内容的服务器请求但传输后并不保存。根据内容管理每一段时间更新本地服务器保存的内容。

优点:

1.访问速度较快,因为数据已经预先推送到了 CDN 节点。

2.可以减轻源站的访问压力,提高网站的稳定性和可靠性。

缺点:

1.需要手动推送数据到 CDN 节点。

2.可能会出现数据不一致问题,需要定期同步数据。

3.部署和维护较为复杂,需要建立预先配置好的链接。

WebSocket

WebSocket 是一种网络通信协议,可以在客户端和服务器之间实现双向通信。与传统的 HTTP 协议不同,WebSocket 协议在客户端和服务器之间建立持久连接,可以在任何时间点双向通信,而不需要通过 HTTP 请求和响应来进行。WebSocket 协议可以在 Web 应用程序和服务器之间实现实时通信和数据传输,常用于在线游戏、聊天室、实时数据监测等场景。

WebSocket 协议的优点如下:

  • 实时性:WebSocket 协议可以在客户端和服务器之间实现双向实时通信,可以在任何时间点发送和接收数据,避免了 HTTP 请求和响应的延迟和重复。

  • 效率:WebSocket 协议可以在客户端和服务器之间建立持久连接,避免了每次请求和响应的开销,提高了数据传输效率。

  • 跨域支持:WebSocket 协议可以支持跨域通信,可以在不同的域名和端口之间进行数据传输。

  • 可扩展性:WebSocket 协议可以通过自定义消息格式和协议扩展实现更复杂的应用场景和功能。

WebSocket 协议的实现基于 TCP 协议,使用类似 HTTP 的握手协议建立连接。客户端和服务器之间建立连接后,可以通过 send() 方法发送数据,通过 onmessage() 方法接收数据。客户端和服务器之间的通信是双向的,可以在任何时间点发送和接收数据。当客户端或服务器需要关闭连接时,可以调用 close() 方法关闭连接。

  • 有状态的持久连接

  • 服务端可以主动推送消息

  • 用WebSocket 发送消息延迟比HTTP低

image.png

网络安全

三要素

  • 机密性:攻击者无法获知通信内容

  • 完整性:攻击者对内容进行篡改时能被发现

  • 身份验证:攻击者无法伪装成通信双方的任意一方与另一方通信

对称加密和非对称加密

  • 对称加密:加密、解密用同样的密钥

  • 非对称加密:加密、解密使用不同的密钥 (公钥和私钥),而且公钥加密只能用私钥解密、私钥加密只能用公钥解密

密码散列函数(哈希函数)

输入:任意长度的内容

输出:固定长度的哈希值

性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值在计算上是不可能的

如何实现机密性

已知:网络是明文的

如果双方可以通过明文通信商量出秘密信息,那么攻击者也可以

所以想要通过明文通信交换秘密信息,通信双方需要先有秘密信息

如何实现完整性

密码散列函数性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的

  • 有明文m,密码散列函数H

  • 计算H(m)获得哈希值h

  • 将m和h组合成新信息m+h

  • 接收方拆分m+h,重新计算H(m)得h,对比h’和h

  • 有明文m,密码散列函数H,以及一人密钥s

  • 计算H(m+s)获得哈希值h

  • 将m和h组合成新信息m+h

  • 接收方拆分m+h,重新计算H(m+s)得h,对比h'和h

所以想要实现完整性,通信双方需要先有秘密信息

如何实现身份验证

  • 签名:用于鉴别身份和防止伪造

在数字签名中,发送方首先对原始数据进行哈希运算,得到一个唯一的、固定长度的哈希值。然后,发送方使用自己的私钥对这个哈希值进行加密,形成数字签名,并将数字签名和原始数据一起发送给接收方。接收方可以使用发送方的公钥来验证数字签名的真实性和完整性。

验证数字签名的过程如下:

  • 接收方对原始数据进行哈希运算,得到一个哈希值。

  • 接收方使用发送方的公钥对数字签名进行解密,得到一个哈希值。

  • 接收方比较这两个哈希值是否相同,如果相同,则说明数字签名是有效的,原始数据没有被篡改。

  • 非对称加密性质:加密、解密使用不同的密钥 (公钥和私钥),而且公钥加密只能用私钥解密、私钥加密只能用公钥解密

    用发送者的私钥对信件进行加密,并发送给接收者

    接收者使用发送者的公钥进行解密,获得原文保证了机密性、完整性和身份验证

  • 数字签名:对明文内容的哈希值使用私钥加密验证者使用公钥验证

    数字签名(指纹)=私钥加密(密码散列函数(原文))

    消息=原文+数字签名

    一般用于对公开内容(如包含公钥的证书)进行数字签名,防止篡改

证书链

根证书是证书链的尽头

验证的一连串证书称为证书链

分发证书、验证证书的基础设施称为 PKI,Public Key Infrastructure

PKI(Public Key Infrastructure,公钥基础设施)是一种安全技术体系,用于管理和分发数字证书、公钥和私钥等密钥材料,以保证数字通信和电子商务中的安全性、可信性和可靠性。

PKI 体系由以下几个组成部分构成:

  1. 数字证书:数字证书是一种用于证明某个实体身份和公钥信息的电子凭证,由认证机构(CA)进行签发和管理。数字证书包括证书拥有者的身份信息、公钥、数字签名等信息,可以用于身份验证、数据加密和数字签名等场景。
  2. 证书颁发机构(CA):CA 是 PKI 体系的核心组成部分,负责签发、验证和管理数字证书。CA 通常是由信任机构或政府部门颁发,具有可信的身份和信誉,是数字证书可靠性的保证。
  3. 注册机构(RA):RA 是 CA 的辅助机构,负责验证证书申请者的身份信息和授权申请数字证书。
  4. 数字签名:数字签名是一种用于验证数字证书有效性和真实性的技术,可以确保数据的完整性、不可否认性和真实性。
  5. 证书撤销列表(CRL):CRL 是由 CA 管理的一份撤销数字证书的列表,如果数字证书已经被撤销,则该数字证书将无法继续使用。
  6. 证书存储库(CS):CS 是用于存储数字证书和其他密钥材料的安全存储设施。

想要实现身份验证,通信双方需要先有秘密信息,即根证书中的公钥

image.png

根证书为DigCert Global Root CA

HTTPS

把HTTP的明文换成密文,再验证身份,即HTTPS

HTTPS=HTTP+TLS

TLS=身份验证+加解密身份验证靠PKI

服务端身份验证靠PKl,客户端身份验证靠HTTP协议

总结

计算机网络是信息传递的基础,也是前端所展现的所有信息背后的支撑。计算机信息传输的根本是传输协议,而服务器和线路是传输的载体。网络安全则是当今互联网最重要的话题之一。