计算机网络概论

196 阅读21分钟

计算机网络

一.计算机网络基础

1.网络组成部分:

1.主机(Host):指计算机或其他网络设备,它们是网络中的网络节点,可以是服务器、工作站或其他客户端设备。

2.网络接口卡(NIC):是一张安装在主机中的网络适配器,负责在计算机和物理网络之间进行数据包的转发和接收。

3.网络媒介(Media):是计算机或其他设备在传输数据时所必需的物理载体,包括光纤、双绞线、无线信号等。

4.网络设备(Network Device):主要包括路由器、交换机、集线器等,用于在网络中调度和管理数据流。

5.网络协议(Network Protocol):网络协议是计算机网络中用于控制和管理数据传输过程的约定和规则,如TCP/IP协议、HTTP协议等。

6.应用程序(Application):网络应用程序是指在网络上运行的各种软件程序,如电子邮件、网页浏览器、文件传输等等。

7.服务器(Server):是指在网络中提供服务并响应客户端请求的计算机设备,如Web服务器、文件服务器等。

2.网络结构

(1)局域网(LAN)是指在相对较小的范围内,如家庭、办公室或校园内建立的用于局部通信或共享资源的私有网络。通常局域网的面积不超过几个公里,可以使用以太网、Wi-Fi等协议建立。

(2)城域网(MAN)是一种介于局域网和广域网之间的网络。城域网覆盖的城市范围比局域网大,但又没有广域网那么大,通常覆盖某个城市的主要区域。城域网一般使用光纤网络进行连接,能够提供更高的传输速度和更大的带宽。

(3)广域网(WAN)是一种跨越多个城市、国家甚至跨越大陆的网络。与局域网和城域网不同,广域网覆盖的地域范围很大,可以通过Internet等广域通信线路进行连接。广域网可以实现地理位置分散的网络设备之间的信息交换,包括邮件、文件传输、远程登陆等。

局域网、城域网和广域网并不是互斥的关系,而是在不同范围和规模内建立的网络。

3.信息交换方式

(1)电路交换指在通信前需要建立端到端的专属电路连接以进行通信。在等待建立连接期间,通信方必须保持一条持续不断的连接。当建立连接后,数据可以快速传输,但在传输期间该连接将一直保持占用状态,直到通信结束后才会释放连接。

(2)报文交换指在通信过程中数据被分成若干个小的数据包,每个数据包包含一些元数据和有效数据,并通过网络独立到达目标,通过网络层协议进行路由选择,实现点对点的数据交换。在发送时,数据包是独立发送,不需要建立连接。因此,报文交换技术提供了很好的带宽利用率,并且在网络传播中的可靠性得到了很好的保障。

(3)电路交换和报文交换各有优缺点。在传输稳定且周期性交流比较多的情况下,电路交换优于报文交换。而在数据量大、传输不固定或者时间不可预测的情况下,报文交换具有更好的性能和效率。目前,现代计算机通信通常采用报文交换,而电路交换由于其效率较低,已经很少使用。

4.网络分层
一.OSI参考模型(Open Systems Interconnection Model):

1.物理层(Physical Layer):负责处理物理连接相关的事务,如通过计算机网络传输数据所需的电气、光学和机械实现。

2.数据链路层(Data Link Layer):负责处理相邻节点之间的数据链路传输,进行帧的组装和解析,实现了数据可靠传输,如以太网。

3.网络层(Network Layer):负责寻址和路由选择,实现了逐跳传输和跨子网的通讯,如IP协议。

4.传输层(Transport Layer):建立应用程序之间的端到端连接,提供数据传输服务和流量控制,如TCP和UDP。

5.会话层(Session Layer):管理和协调应用程序之间的直接通信,解决了进程之间的通信和同步问题。

6.表示层(Presentation Layer):将数据格式在应用层与计算机内部进行转换,以确保应用程序之间的互操作性,如JPEG和ASCII编码等。

7.应用层(Application Layer):提供应用程序间的服务,包括电子邮件、文件传输、远程登录和万维网等。

二.TCP/IP网络模型,这种模型将计算机网络的功能分成五层,分别是:

1.应用层(Application Layer):负责提供应用程序之间的通信支持,例如HTTP、SMTP、FTP等应用层协议。

2.传输层(Transport Layer):负责为不同的应用程序提供可靠的数据传输服务,主要协议有TCP和UDP。

3.网络层(Network Layer):负责将数据包从源主机发送到目的主机,实现了逻辑地址的寻址和路由选择,主要协议有IP和ICMP。

4.数据链路层(Data Link Layer):负责在相邻网络节点之间传输数据帧,主要协议有ARP、RARP和PPP等。

5.物理层(Physical Layer):负责管理物理介质和传输的比特流,例如传输媒介、接口标准和电子信号的传输方式等。

相对于OSI参考模型,TCP/IP网络模型精简了一些层次,但是涵盖了计算机网络中最基本和最常用的协议,因此被广泛应用。需要注意的是,这两种模型都只是网络设计的参考模型,实际的网络设计和实现过程中需根据具体应用及网络环境进行具体的调整和优化。

5.网络协议

1.网络协议是计算机网络中进行通信的规范和标准。网络协议通常由标头和载荷组成。

标头是网络协议中的元数据,包含有关通信内容的信息。标头通常被放置在数据包的开头,并提供有关数据包路由、传输控制、源和目的地址等信息。标头的结构和内容取决于特定的协议和应用。

例如,在互联网协议(IP)中,标头包括源和目的IP地址、IP协议版本号、生存时间和服务类型字段。在传输控制协议(TCP)中,标头包含源端口和目的端口、TCP序列号、确认号、控制位和窗口大小字段等。

载荷是网络协议中实际传输的数据部分。在数据包中,载荷跟在标头后面。载荷可以是任何类型的数据,包括文本、图像、音频、视频或其他二进制数据。载荷的内容和大小取决于特定的协议和应用。

例如,在超文本传输协议(HTTP)中,载荷是网页的HTML、CSS和JavaScript代码。在文件传输协议(FTP)中,载荷是文件的内容。在电子邮件协议(SMTP)中,载荷是电子邮件的文本和附件。

总之,在计算机网络中,通信需要遵循一定的规则和标准,这些标准通常由网络协议来规定。网络协议包括标头和载荷两个部分,其中标头包含有关通信内容的信息,载荷则包含实际传输的数据。

2.网络协议是计算机网络中用于控制和管理数据传输过程的约定和规则。它定义了在发送、接收和传输数据时,计算机网络中各个设备和进程之间所需遵守的准则和规范,实现了计算机和设备之间的互联互通。

网络协议通常由三个部分组成:语法、语义和时序。它们定义了数据的格式和传输过程中如何进行错误检测、纠错、流控制和路由选择等。具体的网络协议包括:

1.物理层协议(Physical Layer Protocol):负责传输比特流,它定义了物理介质、接口标准和电子信号的传输方式等,如以太网协议、RS-232电缆协议等。

2.数据链路层协议(Data Link Layer Protocol):负责相邻节点间数据的传输,它定义了数据帧的格式、错误检测和校正等,如PPP协议、HDLC协议等。

3.网络层协议(Network Layer Protocol):负责数据包的寻址和路由,它定义了逻辑地址和数据包的格式等,如IP协议、ARP协议等。

4.传输层协议(Transport Layer Protocol):负责应用程序之间的数据传输和流量控制,如TCP协议、UDP协议等。

5.应用层协议(Application Layer Protocol):负责提供应用程序之间数据交换的接口和协议,如HTTP协议、FTP协议、SMTP协议等。

网络协议的设计不仅需要考虑功能的实现,还需要考虑安全、可靠性、扩展性和效率等因素,以满足各种计算机网络应用的需求。目前,最常用的网络协议是TCP/IP协议套件,它已经成为互联网、局域网和广域网等各种网络中应用最为广泛的网络协议之一。

二.WEB中的网络

1.HTTP
(1)HTTP连接模型:

image-20230417225000833

HTTP连接模型是指Web应用程序与Web服务器之间建立和维护连接的方式和流程。HTTP连接模型通常由客户端和服务器之间的请求和响应构成,可以用下面的步骤来描述:

1.客户端发起请求:通过URL地址在浏览器中发起HTTP请求,请求可以包括请求方法、URL地址、头部信息、请求主体等。

2.服务器响应请求:Web服务器收到客户端的请求后,返回一个HTTP响应,响应通常包括响应状态码、头部信息、响应主体等。

3.建立TCP连接:在客户端和服务器之间建立TCP连接,TCP连接是一种可靠的基于字节流的传输协议,它为HTTP提供了可靠的传输服务。

4.发送HTTP请求:使用TCP连接将请求数据发送给服务器端,请求数据包括请求行、请求头和请求体等部分。

5.服务器处理请求:服务器端针对请求的URL、请求参数和请求头等进行相应的处理,并返回对应的HTTP响应数据。

6.接收HTTP响应:客户端接收到来自服务器端的HTTP响应,并对响应进行相应的处理,例如解析响应头和响应主体等。

7.关闭TCP连接:HTTP请求和响应传输完毕后,客户端和服务器之间的TCP连接被关闭,释放资源。

在HTTP连接模型中,客户端和服务器之间的请求和响应采用HTTP协议进行通信,而TCP连接则提供了可靠的传输支持。HTTP连接模型中包括了一些重要的特性,例如请求和响应的头部信息、请求和响应的主体内容、状态码等。这些特性是构成HTTP协议的基础,也为Web应用程序提供了丰富的功能和服务。

2.HTTP1

HTTP1(或HTTP / 1.0)是超文本传输协议的第一个版本,该协议用于在Web浏览器和Web服务器之间传输数据。它于 1996 年发布,取代了早期的 Gopher 协议和 FTP(文件传输协议),用于通过互联网传输文件。

HTTP1 使用客户端-服务器模型,其中客户端通常在 Web 浏览器上运行,服务器是 Web 服务器。客户端向服务器发送资源(如网页、图像和其他文件)的请求,服务器将响应发送回客户端。

HTTP1使用明文协议,这意味着正在传输的数据未加密。这可能会带来安全风险,因为攻击者可以拦截和读取正在传输的数据。HTTP1 的另一个限制是它一次只能发出一个请求,这可能会导致页面加载时间变慢。

尽管存在这些限制,但HTTP1为万维网的发展铺平了道路,并彻底改变了人们访问信息和在线通信的方式。它还为HTTP的未来版本提供了基础,包括HTTP / 1.1和HTTP / 2。

3.HTTP2

HTTP2 是 HTTP(超文本传输协议)协议的第二个主要版本,用于在 Web 服务器和客户端(如 Web 浏览器)之间进行通信。它旨在解决其前身HTTP / 1.1的性能问题和限制。

HTTP2 的主要功能之一是在客户端和服务器之间使用单个连接,这样可以更有效地使用网络资源和更快的页面加载时间。HTTP2还使用二进制协议而不是HTTP / 1.1的基于文本的协议,这允许更有效的解析并减少通过网络传输的数据量。

HTTP2 的另一个主要增强功能是使用服务器推送,它允许服务器向客户端发送多个资源,而无需等待客户端请求它们。这可以缩短页面加载时间并提高整体性能。

HTTP2 还包括其他改进,例如更好的标头压缩、流控制和请求优先级。但是,请务必注意,并非所有 Web 服务器和客户端都支持 HTTP2,并且兼容性可能因实现而异。

4.HTTP3

HTTP3是目前正在开发的超文本传输协议(HTTP)的第三个主要版本。这是对协议的重大更新,旨在通过使Web通信更快,更安全来改善用户体验。

HTTP3的主要功能之一是它基于QUIC(快速UDP互联网连接)协议,而不是以前版本的HTTP中使用的TCP。此更改旨在通过减少通信所需的往返次数、最大限度地减少延迟和数据包丢失的影响来加快 Web 通信速度。

HTTP3的另一个关键改进是默认使用加密,这提高了Web通信的安全性。HTTP3 还包括拥塞控制、流量控制和其他功能,以优化网络性能。

HTTP3仍在开发中,尚未被广泛采用。然而,主要的Web浏览器和Web服务器已经在努力实现HTTP3支持,并且预计在不久的将来它将变得更加广泛。

2.CDN(Content Delivery Network)

CDN 代表内容分发务器网络,战略性地放置在世界各地,以更快、更可靠地向用户交付 Web 内容。CDN 提供商通常在不同的地理位置拥有多台服务器,他们使用缓存和内容优化等技术来提高网站性能。

当用户请求网站时,CDN 会自动将请求路由到离用户位置最近的服务器,这可以显着减少加载网站所需的时间。此外,由于 CDN 可以从离用户更近的服务器交付内容,因此它可以减少加载网站的延迟或延迟。

CDN 还可以帮助减少源服务器上的负载,源服务器是托管原始 Web 内容的服务器。通过在 CDN 的服务器上缓存内容,源服务器可以减少需要处理的流量,并将一些交付责任卸载到 CDN。

总体而言,CDN 可以帮助提高网站性能、减少延迟并增强从世界不同地区访问网站的访问者的用户体验。它们通常用于高流量网站,例如电子商务网站、社交媒体平台和媒体网站。

3.WebSocket

WebSocket 是一种协议,它允许通过单个长期存在的 TCP 连接在 Web 浏览器和 Web 服务器之间进行双向实时通信。它旨在解决传统HTTP(超文本传输协议)通信的局限性,例如每次交互都需要新的HTTP请求和响应。

使用 WebSocket,客户端和服务器可以通过无限期保持打开状态的单个连接来回发送消息,从而相互通信。这允许实时更新和推送通知,以及客户端和服务器之间更有效的通信。

WebSocket 使用允许低延迟、高带宽通信的二进制协议。它可用于各种类型的应用程序,例如实时游戏、聊天应用程序、金融交易平台以及需要实时、低延迟通信的其他类型的 Web 应用程序。

大多数现代 Web 浏览器和 Web 服务器都支持 WebSocket,并且通常与其他 Web 技术(如 HTML5、CSS 和 JavaScript)结合使用。

三.网络安全

1.网络安全三要素

网络安全的三要素是机密性、完整性和可用性(CIA三原则)。

  1. 机密性:指保护计算机系统和数据不被未经授权的访问和使用。该原则确保数据只能被授权用户访问,并防止未经授权的人窃取数据或利用数据进行欺诈和其他犯罪行为。
  2. 完整性:指保护数据不被未经授权的修改或破坏。该原则确保数据在传输和存储期间不会被篡改、损坏或删除,从而保证数据的真实性和可信度。
  3. 可用性:指确保计算机系统和数据在需要时能够正常使用,而不受未经授权的干扰。该原则确保计算机系统和网络的运行不会受到恶意软件、攻击和其他干扰因素的影响,从而保证上线时间和性能的可用性。

这三个要素是网络安全的关键基础,任何一项都不能被忽略。只有通过综合应用各种安全技术和措施,如加密、入侵检测和预防、备份和恢复等,才能确保计算机系统和网络的安全。

2.PKI

PKI 是公钥基础结构的缩写,它是一组用于管理数字证书和公钥加密的技术、策略和过程。PKI 是一种通过使用公钥和私钥来加密和解密信息来实现互联网上安全通信的系统。

PKI 由三个主要组件组成:

  1. 证书颁发机构 (CA):向个人、组织和设备颁发数字证书的受信任的第三方组织。
  2. 注册机构 (RA):验证用户或设备的身份并代表 CA 颁发数字证书的中介实体。
  3. 存储库:存储数字证书和其他安全相关信息的安全数据库。

PKI 用于许多安全应用程序,例如安全电子邮件、虚拟专用网络 (VPN)、安全套接字层 (SSL) 和互联网协议安全 (IPsec)。当用户发送加密数据时,使用接收方的公钥对数据进行加密,使用接收方的私钥对数据进行解密。

PKI 对于安全性非常重要,因为它提供了一种安全的方法,用于验证通信中涉及的各方的身份,并确保传输的数据保持安全和私密。

3.证书链

证书链是一组数字证书,其中每个证书均被另一个证书签署,最终寻找到一个被根证书签署的证书。根证书通常由受信任的第三方证书颁发机构(CA)签署。证书链是建立信任的一种方式,用于验证数字证书的有效性和真实性。

数字证书是将公钥与标识信息绑定在一起的文件,用于身份验证、身份识别和数据加密等安全应用中。数字证书由CA签发,表示该证书所代表的实体是被认可和可信赖的。

当用户尝试访问安全网站时,他们的计算机会自动请求服务器的数字证书。服务器会将其数字证书发送给用户,用户的浏览器会比对证书中的信息与已经安装在其计算机中的根证书来确定服务器是否安全。如果证书在证书链中验证成功,那么可以安全地与服务器通信;如果某个证书无效或未被证书链内的任何证书所信任,则表示可能存在安全风险,用户的浏览器会发出警告信息。

因此,证书链是保持在数字领域建立信任的重要手段之一。证书链保证了数字证书易于验证和使用,并确保与系统和通信方进行安全、保密的交互。

4.非对称加密与对称加密

非对称加密和对称加密是加密算法的两种不同类型:

对称加密:使用同一个密钥,即密钥相同。加密和解密均使用同一个密钥,这种加密算法被称为对称加密。对称加密算法适用于需要快速加密大量数据的场合,但缺点是密钥管理较为困难。 非对称加密:也称为公钥加密,它使用一对密钥,即公钥和私钥。公钥可以在网络上公开发布,私钥则只有接收方知道。发送方使用接收方的公钥进行加密,并发送加密数据,接收方使用自己的私钥进行解密。这种方式安全性较高,但加密和解密较慢。

简单来说,对称加密将数据加密时使用同一个密钥,加密和解密速度较快,但当需要保护密钥时,其他人很容易找到它。非对称加密是使用公钥加密数据,通过私钥才能解密,安全性更高,但加密和解密的速度较慢。因此,对称加密通常用于已经建立信任的双方之间的数据交换,而非对称加密通常用于需要更高安全性的数据交换,如安全存储或与未知方进行通信的情况。一般在实际应用中,非对称加密与对称加密结合使用,达到更好的安全性和效率。

5.密码散列函数

非对称加密和对称加密是加密算法的两种不同类型:

对称加密:使用同一个密钥,即密钥相同。加密和解密均使用同一个密钥,这种加密算法被称为对称加密。对称加密算法适用于需要快速加密大量数据的场合,但缺点是密钥管理较为困难。 非对称加密:也称为公钥加密,它使用一对密钥,即公钥和私钥。公钥可以在网络上公开发布,私钥则只有接收方知道。发送方使用接收方的公钥进行加密,并发送加密数据,接收方使用自己的私钥进行解密。这种方式安全性较高,但加密和解密较慢。

简单来说,对称加密将数据加密时使用同一个密钥,加密和解密速度较快,但当需要保护密钥时,其他人很容易找到它。非对称加密是使用公钥加密数据,通过私钥才能解密,安全性更高,但加密和解密的速度较慢。因此,对称加密通常用于已经建立信任的双方之间的数据交换,而非对称加密通常用于需要更高安全性的数据交换,如安全存储或与未知方进行通信的情况。一般在实际应用中,非对称加密与对称加密结合使用,达到更好的安全性和效率。