一、前言 & 课程介绍
1.课程介绍
-
通过一个示例建立对计算机网络的整体认识
-
建立对网络协议分层的认知
-
分析HTTP1、2、3的关系
-
介绍CDN运行的基本原理
-
了解网络安全的最基本原则
2.分析方法
-
自底向上:
从简单开始,逐渐变复杂
将模块逐步拼凑成一个系统
-
自顶向下:
从复杂开始,逐渐变简单
从复杂的系统问题入手,拆分为模块问题
二、计算机网络基础
1.定义
利用通信线路和通信设备,将地理位置不同的、功能独立的多台计算机互连起来实现资源共享和信息传递。
2.分类
网络的作用范围:广域网 WAN(核心)、局域网 LAN、城域网 MAN、个人区域网 PAN
网络的使用者:公用网、专用网
3.组成
1.主机:客户端和服务端
2.路由器:路由器是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。它能够理解不同的协议,例如某个局域网使用的以太网协议,因特网使用的TCP/IP协议。这样,路由器可以分析各种不同类型网络传来的数据包的目的地址,把非TCP/IP网络的地址转换成TCP/IP地址,或者反之;再根据选定的路由算法把各数据包按最佳路线传送到指定位置。所以路由器可以把非TCP/IP网络连接到因特网上。
3.网络协议:网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
4.电路交换和分组交换的区别
- 电路交换:是指按照需求建立连接并允许专用这些连接直至它们被释放这样一个过程。电路交换网络包含一条物理路径,并支持网络连接过程中两个终点间的单连接方式。缺点是在某些情况下,电路空闲时的信道容量被浪费。
- 分组交换:是在通信过程中,通信双方以分组为单位、使用存储-转发机制实现数据交互的通信方式。 缺点是延迟大,比如声音和视频。
总之,电路交换和分组交换各有优缺点,选择哪种方式取决于具体的应用场景和需求。
5.网络分层
计算机网络体系结构各层的主要功能:
(1)应用层(通过应用进程之间的交互来完成特定的网络应用)
(2)运输层(提供端到端之间的数据传输服务。有复用和分用的功能。)
(3)网络层(负责为分组交换网上的主机提供通信服务。提供点到点之间的通信,提供路由功能,实现拥塞控制,网络互联等功能。)
(4)数据链路层(将在网络层交下来的数据报组装成帧,在结点到结点之间的链路上实现帧传输。单位 帧)
(5)物理层(单位bit,利用传输介质为通信的网络节点之间的建立)
6.网络协议
网络协议是指在计算机网络中,不同的设备或计算机之间进行通信时所必须遵循的规则、规范和约定。网络协议包括但不限于以下几种:
- TCP/IP协议:是Internet的标准通信协议,它规定了计算机之间的通信方式和数据传输标准。TCP/IP协议包括四个层次,分别是链路层、网络层、传输层和应用层。
- 套接字协议:是一种用于在网络中进行通信的协议,它是网络通信的基础。在套接字协议中,数据流被封装在套接字中,使得数据可以在不同的设备之间进行传输。常见的套接字协议包括TCP和UDP协议。
- 滑动窗口协议:是一种用于分组交换网络中的流量控制机制,它可以帮助控制网络流量和提高吞吐量。滑动窗口协议包括TELNET、DCCP和IGMP等。
- 存储转发协议:是一种用于共享介质网络中的数据传输机制,它将数据存储在缓存中,并在需要时将其转发到目标设备。存储转发协议包括以太网、令牌环和FDDI等。
- 对等连接:是一种网络通信模式,其中每个设备都与其他设备直接相连,并且可以相互发送和接收数据。对等连接使得设备之间的通信更加高效,并且可以减少网络通信成本。
- 主从连接:是一种网络通信模式,其中一个设备作为主设备,其他设备作为从设备。主设备负责发送数据,而从设备负责接收数据和转发数据。主从连接可以实现高可靠性和高性能的通信。
- IP层:是Internet协议模型的第三层,它负责数据包的传输和路由选择。IP层提供了一些重要的功能,包括分片、重组和选路等。
- 传输层:是TCP/IP协议的第二层,它负责将数据包从源设备传输到目标设备。传输层提供了一些重要的功能,包括窗口调度、拥塞控制和流量控制等。
- 应用层:是TCP/IP协议的第四层,它为应用程序提供了一个接口,使得应用程序可以与网络进行交互。应用层提供了一些重要的功能,包括文件传输、电子邮件、远程访问和万维网等。
以上是常见的网络协议及其定义和功能,不同的协议在不同的场景下有不同的应用。在互联网通信中,各种协议相互配合,保证了不同设备之间的数据交换和通信正常进行。
7.TCP协议格式

三、Web中的网络
1.HTTP1
HTTP/1是一个在互联网工程中广泛使用的HTTP协议版本。HTTP/1主要是在性能、可靠性和扩展性方面进行了优化,使得HTTP更加高效和可靠。以下是关于HTTP/1的总结:
- 性能提升:HTTP/1通过减少流控制和缓存的使用,以及采用更快速的流传输等技术,显著提高了性能。这使得HTTP响应更快、更及时,并且能够处理更大量的数据。
- 可靠性增强:HTTP/1通过使用持久连接、零拷贝和零窗口等技术,提高了可靠性。这使得网络延迟更低、更稳定,并且能够处理更复杂的应用场景。
- 扩展性改进:HTTP/1支持多路复用和负载均衡等技术,使得服务器能够处理更多的请求,并且能够更好地响应不同类型的请求。这也使得HTTP/1更容易扩展和集成到其他系统中。
- 安全性增强:HTTP/1通过使用HTTPS和安全传输层(SSL/TLS)等技术,提高了安全性。这使得数据传输更加保密、更不易被篡改,并且能够处理更复杂的安全需求。
- 兼容性改进:HTTP/1保留了HTTP/0.9的很多特性,并且在一些方面进行了改进,使得它们在不同的环境中都能够工作得很好。这也使得HTTP/1更容易与现有系统集成。
总之,HTTP/1是一个性能优化、可靠性增强、扩展性改进和安全性增强的HTTP协议版本。它通过采用新技术和优化现有协议来提高性能和可靠性,从而更好地满足互联网应用的需求。
2.HTTP连接模型

HTTP连接模型是HTTP协议中用于描述客户端和服务器之间的通信方式的一种模型。HTTP连接模型包括四个部分:
- 请求(Request):请求是客户端向服务器发起的请求,包括请求的类型和方法、数据主体、路径、头部字段等。
- 响应(Response):响应是服务器对客户端的响应,包括状态码、响应头部字段、响应体等。状态码表示服务器对请求的处理结果,如200表示成功,404表示未找到等。响应头部字段包含了有关请求的信息,如请求的类型、请求的长度、请求的状态等。响应体是服务器返回的数据,可以是数据主体、HTML页面、JSON数据等。
- 会话(Session):会话是建立在请求和响应之间的一段连接,它包括一些状态信息,如会话ID、持续时间、会话保持时间等。在会话期间,客户端和服务器可以共享一些数据,如请求的数据主体、路径等。
- 套接字(Socket):每个客户端和服务器之间的通信都需要通过套接字进行。套接字是一种通信机制,它允许客户端和服务器之间建立连接,并在连接上传输数据。
在HTTP连接模型中,请求和响应之间通过会话套接字建立连接。会话套接字可以包含一些状态信息,如会话ID、持续时间、会话保持时间等。在会话期间,客户端和服务器可以共享一些数据,如请求的数据主体、路径等。通过使用套接字,客户端和服务器之间可以进行双向通信,实现文件传输、数据交换等功能。
3.HTTP2的帧
HTTP2的帧是HTTP/2的核心组成部分,用于在客户端和服务器之间传输数据。HTTP2的帧格式包括以下几个部分:
- 帧头(Frame Header):固定的9个字节,用于标识帧的类型、长度、版本号等信息。
- 负载(Frame Payload):根据帧类型(Type)的不同,负载的内容也会不同。例如,SETTINGS帧用于传递端点间通信的配置参数,通常负载为一个字节的数据。
- 长度(Frame Length):表示帧的长度,单位为字节。长度的字节数为9+4+10+2+24+10+8+6。
- 校验和(Frame Checksum):用于检查帧的完整性和正确性。算法包括CRC32、SHA-1等。
- 控制位(Frame Control):包括一些标志位,如优先级、窗口大小、延迟等。这些标志位用于控制帧的行为和流程。
- 帧尾(Frame Trailer):通常为一个字节的数据,用于填充帧的长度。
在HTTP2中,每个帧都必须包含帧头和负载,且帧头的长度必须为9+4+10+2+24+10+8+6。校验和是帧的关键部分,用于检查帧的完整性和正确性。控制位用于控制帧的行为和流程。帧尾是填充帧长度的部分,通常为一个字节。
在HTTP2中,客户端和服务器之间传输的数据必须是帧格式的,且每个帧都必须包含帧头和负载。服务器收到客户端发送的帧后,会对其进行解析,如果帧头的长度不符合要求或者校验和不正确,则服务器会认为这个帧是不正确的,并采取相应的措施。客户端接收到服务器返回的帧后,也会对其进行解析,如果帧头的长度不符合要求或者校验和不正确,则客户端会认为这个帧是不正确的,并采取相应的措施。
4.HTTP3:QUIC
QUIC(Quick UDP Internet Connection)是一种基于UDP的互联网传输层协议,主要用于提供低延迟、低带宽的应用程序通信。QUIC通过使用UDP的“不可靠”传输机制,可以实现更快的数据传输速度,通常只需1-3秒的延迟时间就可以完成一个数据包的传输。
相比传统的TCP协议,QUIC具有以下特点:
- 低延迟:QUIC通过使用UDP的“不可靠”传输机制,可以实现更快的数据传输速度,通常只需1-3秒的延迟时间就可以完成一个数据包的传输。
- 低带宽:QUIC协议可以减少网络带宽的使用,因为它不需要建立可靠的连接,只需要传输小量的数据包。
- 支持多种网络环境:QUIC协议可以在多种网络环境下工作,包括有线和无线网络,这使得它可以广泛应用于各种场景。
- 兼容性:QUIC协议是UDP协议的一种变体,因此它可以轻松地与现有的网络环境进行集成,不需要进行大量的修改。
QUIC协议在互联网应用中有广泛的应用,例如在实时通信、视频流传输、文件传输等场景中。QUIC协议也有一些限制,例如在高负载、高延迟的环境下,QUIC协议的性能可能会受到影响。
四、CDN
1.定义
cdn是内容分发网络。其功能是通过服务器的调节,使用户可以就近获取所需的内容,提高了访问响应的速率,减少了网络拥堵。
2.组成部分
CDN的组成部分包括以下几种:
- 内容缓存设备:内容缓存为CDN网络节点,位于用户接入点,是面向最终用户的内容提供设备,可缓存静态Web内容和流媒体内容,实现内容的边缘传播和存储,以便用户的就近访问。
- 内容交换机:内容交换机处于用户接入集中点,可以均衡单点多个内容缓存设备的负载,并对内容进行缓存负载平衡及访问控制。
- 内容路由器:内容路由通常通过负载均衡系统来实现,动态均衡各个内容缓存站点的载荷分配,为用户的请求选择最佳的访问站点,同时提高网站的可用性。
- CDN内容管理系统:内容管理系统负责整个CDN的管理,是可选部件,作用是进行内容管理,如内容的注入和发布、内容的分发、内容的审核、内容的服务等。
- 其他辅助设备:如CDN加速节点、CDN边缘节点、CDN数据分析节点等,为CDN提供更加全面的解决方案。
以上是CDN的一些主要组成部分,不同的CDN服务商可能会有不同的组成部分,但其核心功能和基本原理都是相同的。
3.优缺点
CDN的优点:
- 提高网站访问速度:CDN的主要功能是缓存,通过缓存,可以减少用户和服务器之间的数据传输,提高响应速度,从而提高用户体验。
- 节省带宽和服务器成本:CDN可以将内容缓存到离用户更近的服务器上,从而减少数据传输量,节省服务器和带宽的成本。
- 更好的安全性:由于CDN覆盖了全球各地的服务器,用户可以就近访问,避免了传输过程中的数据丢失和延迟等问题,提高了安全性。
- 更好的隐私保护:CDN可以将内容缓存在离用户更近的服务器上,从而减少了用户和服务器之间的数据传输,隐私数据不易被窃取和篡改。
- 更好的品牌宣传:CDN可以将内容缓存在离用户更近的服务器上,从而提高了品牌的曝光率和知名度,有利于企业的宣传和推广。
CDN的缺点:
- 延迟增加:CDN需要将内容缓存到离用户更近的服务器上,虽然可以提高响应速度,但也会带来一定的延迟。
- 费用较高:CDN的构建需要投入大量的资金和技术支持,因此相对于个人或小型企业来说,成本较高。
- 依赖于CDN提供商:CDN的运行需要依赖于CDN提供商,如果CDN提供商出现故障或无法提供服务,用户的访问速度将受到影响。
- 对个人隐私保护不利:CDN的内容缓存需要存储用户的隐私数据,如用户的登录信息、个人信息等,如果CDN出现故障或被黑客攻击,可能会导致这些隐私数据被窃取和篡改。
- 不适用于所有网站:CDN主要适用于大型网站和内容需要经常更新的网站,对于个人博客、小型网站等需要较少更新的网站,效果可能不佳。
总的来说,CDN技术具有许多优点,如提高网站访问速度、节省带宽和服务器成本、提高安全性、隐私保护、品牌宣传等,但同时也存在一些缺点,如延迟增加、费用较高、依赖于CDN提供商等。因此,在选择使用CDN技术时,需要综合考虑网站的需求和自身的情况,选择合适的CDN服务商和CDN方案。
五、网络安全
1.计算机网络通信面临的安全性威胁及安全措施:
计算机网络所面临的安全威胁主要来自两大类攻击,即被动攻击和主动攻击。这两类攻
击中四种最基本的形式是:
(1) 截获(interception) 攻击者从网络上窃听他人的通信内容。
(2) 中断(interruption) 攻击者有意中断他人在网络上的通信。
(3) 篡改(modification) 攻击者故意篡改网络上传送的报文。
(4) 伪造(fabrication) 攻击者伪造信息在网络上传送。
除此之外,在被动攻击中,还有通信量分析;在主动攻击中还有重放攻击、拒绝服务攻
击、恶意程序攻击等。
计算机网络需要的安全服务包括:机密性、报文完整性、不可否认性、实体鉴别、访问
控制、可用性。
2、两种数据加密体制:
参考内容:两种数据加密体制,即对称密钥密码体制与公钥密码体制。
对称密钥密码体制是一种加密密钥与解密密钥相同的密码体制。在对称钥密系统中,两个参与者要共享同一个秘密密钥,这给密钥的管理和更换都带来了极大的不便,通常需要使用复杂的密钥分发中心 KDC (Key Distribution Center)来解决该问题。然而采用公钥密码体制可以比较容易地解决这个问题。
公钥密码体制使用不同的加密密钥与解密密钥,加密密钥(即公钥)PK 是公开信息,而解密密钥(即私钥)SK 是需要保密的,因此私钥也叫做秘密密钥。由于加密密钥不能用来解密,并且从加密密钥不能推导出解密密钥,因此加密密钥可以公开。例如,参与者 A 可以在报纸上公布自己的加密密钥(即公钥),而解密密钥(即私钥)自己秘密保存。任何参与者都可以获得该公钥并用来加密发送给参与者 A 的信息,而该信息只能由 A 解密。可见采用公钥密码体制更易解决密钥分发的问题。
公钥密码体制有许多很好的特性,使得它不仅可以用于加密,还可以很方便地用于鉴别和数字签名。但是,公钥密码算法比对称密码算法要慢好几个数量级。因此,对称密码被用于绝大部分加密,而公钥密码则通常用于会话密钥的建立。
3.数字签名的原理:
参考内容:
(1)数字签名必须保证能够实现以下三点功能:
1)接收者能够核实发送者对报文的签名。即接收者能够确信该报文的确是发送者发送的,其他人无法伪造对报文的签名,这就叫做报文鉴别。
- 接收者确信所收到的数据和发送者发送的完全一样而没有被篡改过,这就叫报文的完整性。
- 发送者事后不能抵赖对报文的签名,这就叫做不可否认。
(2)数字签名的实现过程如下:
为了进行签名,发送者 A 用其秘密解密密钥 SKA 对报文 X 进行D运算,D运算本是解密运算,这里只是得到某个不可读的密文 DSKA(X) 并且把它传送给接收者 B。B 用已知的 A 的公开加密密钥PKA进行E运算(D运算的逆运算即加密运算),得出明文X, 表达式 EPKA(DSKA(X))=X。因为除 A 外没有别人能具有 A 的解密密钥 SKA,所以除 A 外没有别人能产生密文 DSKA(X)。这样,报文 X 就被签名了。
4.报文鉴别的方法:
参考内容:
(1)通信双方并不关心通信的内容是否会被人窃听,而只关心通信的内容是否被人篡改或伪造,这就是报文完整性问题。报文完整性验证又称为报文鉴别,即鉴别报文的真伪。
(2)图中所示,直接使用密码散列函数实现报文鉴别码进行报文鉴别。
1)通信双方共享一个称为鉴别密钥的秘密比特串s。发送方用s与报文m级连生成m+s,并算散列H(m+s);然后将H(m+s)作为MAC附加到报文m上,一起发送给接收方。
2)接收方利用s和收到的报文m重新计算MAC,与接收到的MAC进行比较,从而实现对报文的鉴别。由于攻击者不知道s,也不能从截获的MAC中计算出s,因此他不能为伪造报文m'产生H(m'+s)。
3)直接使用密码散列函数实现报文鉴别码的技术又称为散列报文鉴别码(Hashed MAC,HMAC)。
5.防火墙的基本工作原理和所提供的功能。
参考内容:
防火墙是把一个组织的内部网络与其他网络(通常就是因特网)隔离开的软件和硬件的组合。根据访问控制策略,它允许一些分组通过,而禁止另一些分组通过。访问控制策略由使用防火墙的组织根据自己的安全需要自行制订。防火墙作为一种访问控制技术,通
过严格控制进出网络边界的分组,禁止任何不必要的通信,从而减少潜在入侵的发生,尽可能降低内网遭受外网攻击的安全风险。