这是我参加【青训营 x 字节前端训练营】✍🏻 笔记创作活动的第 1 天。
计算机网络基础
计算机网络基础是指计算机网络的基本原理、基本概念、基本技术和基本方法等方面的知识。
网络组成部分
网络组成部分包括主机、路由器和网络协议等。其中,主机是指计算机、服务器等,可划分为客户端和服务端,路由器是指用于连接不同网络的设备,网络协议是指计算机网络中的通信规则和标准。
网络结构
计算机网络是把许多计算机连接在一起,而互联网是把许多网络连接在一起,是网络的网络。按照作用范围的不同,计算机网络分为广域网 WAN,城域网 MAN,局域网 LAN,个人区域网 PAN。
信息交换方式
信息交换方式是指在通信网络中,数据传输的方式。按照信息交换方式的不同,通信网络可以分为电路交换网、分组交换网和综合交换网。
电路交换
分组交换
分组交换采用存储转发技术,表示把一个报文(要发送的整块数据)分为几个分组后再进行传送。在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段。在每个数据端的前面加上一些由必要的控制信息组成的首部后,就构成了一个分组。分组又称为包。分组是在互联网中传送的数据单元,正是由于分组的头部包含了诸如目的地址和源地址等重要控制信息,每一个分组才能在互联网中独立的选择传输路径,并正确地交付到分组传输的终点。
路由器是实现分组交换的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
网络分层
五层体系结构由应用层,运输层,网络层(网际层),数据链路层,物理层组成。下图是 OSI 七层模型,但其较为复杂而且不实用,因此目前被广泛采用的是 TCP/IP 四层模型,我们可以将 TCP / IP 模型看作是 OSI 七层模型的精简版本,由以下 4 层组成:
应用层、传输层、网络层、网络接口层
应用层(Application layer)
应用层位于传输层之上,主要提供两个终端设备上的应用程序之间信息交换的服务,它定义了信息交换的格式,消息会交给下一层传输层来传输。我们把应用层交互的数据单元称为报文。
传输层(Transport layer)
传输层的主要任务就是负责向两台终端设备进程之间的通信提供通用的数据传输服务。 应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。
运输层主要使用以下两种协议:
- 传输控制协议 TCP(Transmisson Control Protocol)--提供 面向连接 的,可靠的 数据传输服务。
- 用户数据协议 UDP(User Datagram Protocol)--提供 无连接 的,尽最大努力的数据传输服务(不保证数据传输的可靠性)。
经典面试题:TCP 与 UDP 的区别
网络层(Network layer)
网络层负责为分组交换网上的不同主机提供通信服务。网络层的还有一个任务就是选择合适的路由,使源主机运输层所传下来的分组,能通过网络层中的路由器找到目的主机。
网络层常见协议:
- IP:网际协议 :网际协议 IP 是TCP/IP协议中最重要的协议之一,也是网络层最重要的协议之一,IP协议的作用包括寻址规约、定义数据包的格式等等,是网络层信息传输的主力协议。目前IP协议主要分为两种,一种是过去的IPv4,另一种是较新的IPv6,目前这两种协议都在使用,但后者已经被提议来取代前者。
网络接口层(Network interface layer)
网络接口层可以看作是数据链路层和物理层的合体。
- 数据链路层的作用是将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。
- 物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。
网络协议
网络协议是指在计算机网络中,为了完成网络中的数据传输而建立的一种规则或标准,它规定了通信时信息必须采用的格式和这些格式的意义。常见的网络协议有 IP、TCP、HTTP、POP3、SMTP 等。
HTTP 协议
HTTP 协议,全称超文本传输协议(Hypertext Transfer Protocol),是一种应用层协议,它是用于传输超文本的协议。HTTP 协议是建立在 TCP/IP 协议基础上的,它规定了客户端和服务器之间的通信规则,使得万维网上的客户端可以与服务器进行通信 。
HTTPS 协议
HTTPS 协议(Hyper Text Transfer Protocol Secure),是 HTTP 的加强安全版本。HTTPS 是基于 HTTP 的,也是用 TCP 作为底层协议,并额外使用 SSL/TLS 协议用作加密和安全认证。
经典面试题:HTTP 和 HTTPS 的区别
- 端口号:HTTP 默认是 80,HTTPS 默认是 443。
- URL 前缀:HTTP 的 URL 前缀是
http://,HTTPS 的 URL 前缀是https://。- 安全性和资源消耗:HTTP 协议运行在 TCP 之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。HTTPS 是运行在 SSL/TLS 之上的 HTTP 协议,SSL/TLS 运行在 TCP 之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。所以说,HTTP 安全性没有 HTTPS 高,但是 HTTPS 比 HTTP 耗费更多服务器资源。