计算机网络笔记
由于我已经学习过计算机网络了,所以这里是复习我所学过的知识的一部分笔记。参考书籍 《计算机网络(第八版)》--谢仁希 。
这里只包含部分内容,因为时间有限,不能把所有内容都一一列举出来。而且部分内容是视频里没有提及的,这里也不加入过多的内容。
1.前言
计算机网络在互联网技术中发挥着不可估量的作用,所以对计算机网络进行学习是一个在计算机行业工作的人所必须了解的知识。计算机网络所包含的知识非常的多,根据工作性质的不同,所需了解计算机网络的程度也不同。个人认为基础的内容需要熟知,对于一些详细的知识(比如TCP数据报的格式等)在需要的时候查阅即可。所以这里也不会记下每个内容的详细信息。
1.1 概述
一个计算机网络是由若干 节点(node) 和 链路(link) 组成,节点可以分为两种,主机和网络设备。主机指一般的与网络相连的计算机(也包括物联网设备),网络设备指提供网络服务的设备(路由器、交换机、集线器等)。路由器是一类提供网络设备的主机,这里把路由器划分为网络设备,因为其提供网络服务。
一个网络把多个计算机连接在一起,互联网则通过路由器将各个网络连接起来。
1.2 计算机网络体系结构
计算机网络体系结构主要是为了区分各个结构所负责的功能。这里以讲述原理的五层结构为说明,因为这样比较方便理解。
在讲述五层协议之前,先对网络 协议(Protocol) 做一个解释:
网络协议是为网络中的数据交换而建立的规则、标准或约定。 网络协议由三要素组成:
- 语法:数据与控制信息的结构或格式,如数据报的格式
- 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应,如TCP协议中的数据分组、传输控制以及错误检测。
- 同步:即事件实现顺序的详细说明,如TCP连接中使用三握手来建立连接。
学习一个协议需要对一个协议的三要素进行一定的了解。
1.2.1 五层结构
计算机网络原理的五层结构分别如下:
接下来的内容主要围绕这五层来进行复习。
2. 物理层
物理层主要是数据进行传输时的设备和处理方法。这里不过多解释。
3. 数据链路层
4. 网络层
5. 运输层
运输层向它上面的应用层提供通信服务,它是面向通信部分的最高层。
首先先对主机间的通信做一个解释。通信简单来说是两台主机之间进行通信,但更详细来说是主机中的两个进程之间的通信,也就是说通信的两端是两个应用进程(可以是两台主机之间的应用进程,也可以是一台主机之间的两个进程,有关详见进程通信的套接字通信)。
5.1 运输层的两个重要协议
这里只简单介绍运输层的两个重要协议,UDP和TCP。简单来说,UDP只负责发送,而TCP需要两台主机之间建立连接才能进行数据发送。所以UDP是一种不提供可靠交付的协议,但是由于UDP简单,所有还是一种有效的工作方式。与UDP相比,TCP是一种提供可靠交付的协议,因为TCP需要先与目标主机建立连接才能进行通信,所以TCP也是一种提供面向连接的服务。由于TCP提供可靠交付的服务,所以也会占用较多的处理资源。
5.1.1 UDP(用户数据报协议,User Datagram Protocol)
UDP只在IP的数据报服务之上添加了很少的功能,这就是复用和奋勇的功能以及差错检测的功能。
UDP的特点:
- UDP是无连接的,即数据发送时不需要建立连接只需要将源地址、源端口、目的端口、目的地址等信息填入UDP数据报的首部
- UDP使用尽最大努力交付,即不保证可靠交付,不保证数据报能送到目的地址或端口,如果端口或者目的地址不存在,则无法发送到目的主机。路由器繁忙时也无法将UDP数据报顺利交付
- UDP是面向报文的
- UDP没有拥塞控制,相比于TCP
- UDP支持一对一、一对多、多对多通信
- UDP首部开销少
5.1.2 TCP(传输控制协议,Transmission Control Protocol)
TCP是面向连接的运输协议,也就是说进程在使用TCP之前,必须建立TCP连接,否则无法建立数据传输它通道。在结束会话后,还需要释放建立的TCP连接。下面是一些TCP的特点
- TCP面向连接
- 每条TCP连接只能有两个端点
- TCP提供可靠交付的服务
- TCP提供全双工通信
- TCP面向字节流
TCP连接的端点叫套接字(socket)或接口。套接字 socket=(IP地址:端口)
TCP保证可靠传输的协议:
- 停止等待协议
- 连续ARQ协议
5.1.2.1 流量控制和拥塞控制
TCP是一种面向连接的协议,用于在计算机之间进行可靠的数据传输。TCP使用流量控制和拥塞控制来确保数据的可靠传输,以避免网络拥塞和数据丢失。
- 流量控制是指发送方和接收方之间的控制,以确保发送方不会向接收方发送过多的数据。在TCP中,接收方向发送方发送一个窗口大小的值来指示接收方可以接收多少数据。发送方发送数据的速度不能超过接收方确认其可以接收的速度。如果发送方试图发送过多的数据,则接收方可以发送一个零窗口通知,通知发送方暂停发送数据。
- 拥塞控制是指在网络中控制数据流量的过程,以避免网络拥塞。拥塞控制使用拥塞窗口来控制发送方可以发送多少数据。拥塞窗口的大小取决于网络的拥塞情况。如果网络拥塞,则拥塞窗口会减小,以减少发送方发送数据的速度。如果网络不拥塞,则拥塞窗口会增大,以提高发送方发送数据的速度。拥塞控制还可以使用拥塞信号来通知发送方网络的拥塞情况,并要求发送方减慢发送速度。
6. 应用层
应用层的协议有很多,这里只讨论HTTP协议。
6.1 HTTP协议
HTTP(Hypertext Transfer Protocol)协议是一种用于在客户端和服务器之间传输数据的协议。它是一种基于TCP协议的应用层协议,常用于Web浏览器和Web服务器之间的通信。HTTP协议的基本特点包括:
- 客户端-服务器模型:HTTP协议基于客户端-服务器模型,客户端向服务器发送请求,服务器处理请求并返回响应。
- 无状态协议:HTTP是一种无状态协议,每个请求和响应都是独立的,服务器不会保留之前的任何状态信息,每次请求都是一个新的请求。
- 基于文本的协议:HTTP协议的消息内容是基于文本的,消息主体可以是HTML、XML、JSON等格式。
- 请求-响应模型:HTTP协议使用请求-响应模型,客户端发送请求,服务器返回响应,响应中包含状态码和消息内容。