计算机网络结构式“网络的网络”,即一个大的网络由许多小的网络彼此连接在一起,小的网络构成一个大的网络。比如很多城市的城域网是一个小的网络,然后通过ISP把很多的城域网连在一起,组成一个大的网络。
- 最初交换信息使用电路交换,但是电路交换的效率较低,容易发生占线。后来出现分组交换,把一个数据分成很多小的部分通过网络发出去。
- 网络分层是计算机网络中很重要的发明。通过分层,每一层网络只需要处理自己本层次的数据,不用关心其他层次的数据怎么处理,大大降低程序编写的复杂度。网络可以分为5层,分别是:物理层、数据链路层、网络层、运输层、应用层。不过业界通常用的是四层结构,分别是:链路层、网络层、运输层、应用层。至于学院派提出的OSI参考模型,它是七层结构,分别是:物理层、链路层、网络层、运输层、会话层、表示层、应用层。
- 计算机网络的协议定义了多个实体之间交换报文的格式和顺序,以及接受、发送报文或其他时间所采取的动作。
- HTTP使用的是请求响应模型,当第一个请求得到响应,客户端才可以发起第二个请求。HTTP1.1支持连接复用和管线技术。HTTP2使用多路复用来解决队头阻塞问题。HTTP3是基于QUIC的HTTP协议,QUIC是对UDP协议的改进,但是QUIC支持可靠连接。HTTP2将多个HTTP请求拆分到帧里面,这里的帧不是链路层的帧。
- WebSocket协议给那些基于浏览器的应用提供一种和服务器双向通信的方法,这种方法不依赖于打开多个HTTP连接。在建立WebSocket协议之前,通信双方会使用HTTP协议协商一些内容,如图:
和HTTP相比,WebSocket发送消息更快速。WebSocket有如下特点:
| HTTP | WebSocket |
|---|---|
| 半双工 | 全双工 |
| 请求-响应 | 双向的 |
| 不支持原生的服务推送,使用客户端轮询或者流下载实现服务推送 | 服务推送是WebSocket的核心特性 |
| 中等开销 | 建立和维护连接时是中等开销,然后发送每个消息是极小的开销 |
| 中间人/边缘缓存是核心特性 | 没有中间人和边缘缓存 |
| 广泛支持各种客户端 | 支持现代语言和客户端 |
-
CDN是内容分发网络,它保证用户在世界各地访问某一站点都有比较快的速度。
-
网络上通常使用一些加密算法保证数据的安全。比如对称加密和非对称加密。为保证数据完整,需要使用hash算法。在网络上验证对方身份是否可信,使用非对称加密的公钥和私钥,其中离不开公钥基础设施。