计算机网络 复习
2021/2/8
1. OSI七层模型,TCP/IP四层模型,五层模型
OSI:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
TCP/IP:网络接口层,网际层,传输层,应用层
五层:物理层,数据链路层,网络层,传输层,应用层
2. 三次握手(TCP建立连接)
第一次握手:
客户端发送SYN=1,seq=x(随机)的报文到服务端,并进入SYN-SENT(同步已发送状态)。(这里SYN是同步位,SYN=1表示连接请求或连接接受报文,这种报文不能携带数据);
第二次握手:
服务端向客户端发送报文SYN=1,ACK=1,seq=y(随机),ack=x+1(虽然x是瞎说的,但是我要x+1表示确认),并进入SYN-RCVD(同步已确认接收)。(ACK是确认位,建立连接后的所有ACK都应为1);
第三次握手:
客户端收到服务端的报文后,再发送报文ACK=1,seq=x+1(其实这个报文段可以携带数据了,但如果不携带,则不消耗序列号,所以下一个号仍是x+1),ack=y+1(对服务端y的确认),并进入连接已建立状态。随后服务器收到该报文后也会进入连接已建立状态。
为什么是三次:防止已过期的请求报文突然传到服务器,产生错误的连接,服务器资源浪费。
3. 四次挥手(TCP连接释放)
四次:客,服,服,客
第一次挥手:FIN为终止位,表示释放连接请求,FIN=1的报文段无数据但也消耗一个序列号,seq=u是上一次传输的序列号+1,ack=v是上一次服务器发来的+1;
第二次挥手:由服务器发,所以v就是服务器之前发的+1,ack=u+1就是确认上一报文;
第三次挥手:第二次到第三次之间,客户端不给服务器发了,但是服务器仍可以给客户端发,seq=w就是表面这段时间可能又发了一些,w是最新上一个序列号+1;
第四次挥手:发送确认,服务器收到后彻底关闭,客户端等2个MSL(最长报文段寿命)后关闭。
为什么是四次:因为客户端停止给服务器发了,服务器可能还有给客户端没发完的。
4. 以太网MAC帧结构
1500字节就是在传输过程中的最大传输单元,也称为MTU,是指在传输数据过程中允许报文的最大长度。
5. 点对点协议PPP帧
注:ppp(点对点)属于广域网范畴,MAC是局域网范畴;点对点链路属于广域网了,不再是以太网(局域网)所以不用ARP协议。
6. MAC地址,IP地址,ARP协议
(1)MAC地址:也称物理地址,硬件地址,只在局域网内标识一个网络接口
(2)IP地址:网络号+主机号,在互联网中标识一个网络节点
(3)ARP协议:知道IP地址寻找MAC地址,先ARP高速缓存表,再广播,收到的响应是单播;类似的有RARP,是MAC找IP。
7. IPv4地址
(1)分类编址
注意:A类网络号中0和127也不能用,所以再-2;B,C不用-2
(2)子网划分
直接分配一个B类网络有65534个主机,如果用不完会浪费,所以可以取出一部分主机号位,用于子网划分;
子网掩码 & IP地址 = 网络号;
默认子网掩码:A类网8个1,B类网16个1,C类网24个1
(3)无分类编址的IPv4
(4)划分ABC类是为了适应不同的网络规模,A类适用于大型网络,C类适用于小型网络
8. IP数据报首部格式
9. 网际控制报文协议ICMP(IP层)
为了提高交付成功的机会,网际层使用ICMP协议;主机或路由器使用ICMP来发送差错报告报文和询问报文。
差错报告报文有:终点不可达,源点抑制,时间超过,参数问题,改变路由
询问报文有:回送请求和回答,时间戳请求和回答
10. 如何理解IP的不可靠和无连接
不可靠:指的是不能保证数据报能成功地到达目的地。发生错误时候,丢弃该数据包,发送 ICMP 消息给信源端。
无连接:IP 不维护关于后续数据报的状态信息。可能发过去到达顺序不一样。
11. TCP拥塞控制
第一组:慢开始+拥塞避免
第二组:快重传(要求接收方不是等到发送数据时捎带确认,而是收到后立即发送确认报文;发送方一旦收到三个累计确认报文段,就对该报文立即重传,而不是等超时)
+快恢复(门限值设置为当前窗口的一半,而不是降到1)
12. TCP可靠传输
滑动窗口+累计确认
13. TCP首部格式
TCP在发送数据时,是从缓存中取出一部分或全部字节并给其添加一个首部来使其成为TCP报文段后进行发送。
TCP首部如下:
序号与确认号即seq,ack
14. 应用层协议
(1)HTTP超文本传输协议:用于客户端与服务器之间通信的万维网协议
(2)DNS域名系统:将具有特定含义的主机名(域名)转为便于机器处理的IP地址
DNS报文主要使用运输层的UDP协议封装,端口号53;
域名查询方式有递归查询,迭代查询
(3)FTP文件传输协议
FTP客户与服务器之间建立两个并行的TCP连接;
21端口用于控制连接,传输FTP相关命令;
20端口用于数据连接,文件传输时才建立,传输结束就关闭,如果非主动模式则不一定是20端口。
(4)SMTP简单邮件传送协议
基于TCP连接,端口号25;只能传送ASCll码文本。
15. NAT网络地址转换协议
所有使用本地地址(私网IP地址)的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
16. 输入网址到网页显示的整个流程
(1)输入www.baidu.com之后,通过DNS域名系统将域名解析成IP地址
先递归查询本地域名服务器,在迭代查询根、顶级、权限域名服务器
(2)基于http协议发送http请求报文
HTTP请求最开始处于应用层,然后逐层向下传输。具体来说,HTTP请求的传输过程如下:
-
应用层:HTTP请求最开始处于应用层,由客户端发起,请求客户端与服务器之间进行通信。
-
传输层:HTTP请求通过传输层的协议(如TCP或UDP)进行传输。如果使用TCP协议,需要在客户端和服务器之间建立TCP连接。TCP协议提供可靠的数据传输,并确保数据的顺序和完整性。
-
网络层:HTTP请求通过网络层的IP协议进行传输。IP协议负责将数据包从一个网络节点传输到另一个网络节点,同时提供寻址和路由功能。如果客户端和服务器不在同一个网络中,则需要通过路由器进行传输。
-
数据链路层:HTTP请求通过数据链路层的协议(如以太网协议)进行传输。数据链路层负责将数据包从一个物理节点传输到另一个物理节点,同时提供错误检测和纠正功能。
-
物理层:HTTP请求最终通过物理层的传输介质(如网线、光纤等)进行传输。
(3)浏览器接收响应报文,在浏览器渲染成页面
17. TCP一方断开
如果TCP连接中,一方异常断开,则发送方发送数据后收不到确认包,会尝试重传几次,几次失败后会发送一个RST包,会收到对方状态为CLOSED或LISTEN。
2023/1/6
18. 计算机网络设备
(1)网卡:即网络适配器,具有独一无二的mac地址,将数据封装成以太网帧交给上层,是主机和网络数据传输的桥梁。是数据链路层的设备。
(MAC地址又叫物理地址,理论上是没法修改的,因为其是固化在网卡的ROM中,是全世界唯一的;但是在电脑上的MAC地址由于是使用了软MAC技术,即系统读取MAC地址后放在一个表中)
(2)交换机:是一个扩大网络的器材,通过建立MAC地址和端口的映射关系,能为子网络中提供更多的连接端口,这样一个网络就可以连接更多的计算机。是数据链路层的设备。
(3)DHCP服务器:即动态主机配置协议服务器,当电脑连网时,DHCP服务器从ip池中临时分配一个ip给我,每次上网时的ip可能不一样,下线后ip可能分配给之后上线的其他电脑
(4)NAT(网络地址转换,在路由器上):即公有IP(世界公开的)和私有IP(DHCP分配的)相互转换,NAT解决了IP不足的问题也有效避免外部网络入侵。属于网络层。
(5)路由器:计算机通过网卡(网络接口)连接到路由器以访问物联网,路由器给计算机分配局域网上的一个私有ip,并通过NAT协议转化一个公有ip给计算机,还通过路由算法将数据包转发到网络的下一地址。路由器下游是调制解调器,将数字信号转成模拟信号在物理介质上进行传输。是网络层的设备。
19. 计算机网络性能指标
(1)速率
数字信道上传输比特的速率,也称比特率或数据率(b/s)
速率中的k是1000,存储容量中的k是1024
(2)带宽
表示一段通信线路传输数据的能力,即最高数据率(b/s)
(3)吞吐量
表示在单位时间内通过某个网络的数据量(b/s)
吞吐量受网络的带宽或网络的额定速率的限制,1Gb/s的带宽实际吞吐量可能只有700Mb/s
吞吐量和速率是一个概念,即实际值,带宽相当于最大值
(4)时延
发送时延(取决于网卡发送速率,信道带宽,和接口速率)
传播时延=信道长度/电磁波传播速率
处理时延
(5)时延带宽积
传播时延 * 带宽
(6)往返时间
(7)利用率
信道利用率:用来表示某条信道有百分之几有数据通过;不是越高越好,利用率高于50%时时延会急剧增加
网络利用率:全网络信道的加权平均
(8)丢包率
丢失的分组和总分组的比率(普通用户意识不到丢包)
2023/3/23
20. 公网ip和内网ip
(1)公网ip:公网IP地址是指计算机在公共互联网中的唯一标识,可以被任何一个网络访问到。
或使用命令curl ipconfig.me
(2)内网ip:内网IP是由本地网络管理员分配的IP地址,用于在局域网或内部网络中标识设备。
ipconfig
21. VPN的原理
(1)网卡:网卡(即网络适配器)是决定计算机请求发向哪里的设备。
在计算机中,每个网卡都有一个唯一的MAC地址(Media Access Control Address),它用于标识该网卡在网络中的唯一性。当计算机向网络中发送数据包时,它会将数据包发送到目标MAC地址。如果目标MAC地址与接收方计算机中任何一个网卡的MAC地址匹配,则该数据包将被该网卡接收并进行处理;否则,该数据包将被丢弃。
(2)网关:网关是一个网络的“出口”,当一个设备需要将数据包发送到另一个网络时,它会将数据包发送到网关的IP地址,然后,网关将数据包转发到目标网络。网关通常对应一个IP地址,该IP地址用于在不同网络之间进行数据包转发。
(3)VPN软件就是在计算机中创建了一个虚拟网络接口(VPN虚拟网卡),这个接口的默认网关设置为VPN服务器的ip地址,因此所有的请求都会先通过VPN加密隧道发送给VPN服务器,再由VPN服务器转发到目标服务器,VPN服务器接收了目标服务器的返回后转发回VPN客户端。
注:真实传输时,操作系统还是会先把虚拟网络接口路由到物理接口,然后通过本地路由器传输到网络,然后传输到VPN服务器。在本地到VPN服务器过程中,数据包IP是真实IP;但到了VPN服务器后,数据包IP被替换为VPN服务器分配的虚拟IP,然后传输到目标服务器。
默认网关:当计算机或网络设备发送数据包时,如果目标IP地址不在本地网络中,则该数据包将被发送到默认网关,并由默认网关负责将数据包路由到正确的目标网络或主机。默认网关通常是本地网络。
(4)使用VPN后公网ip和内网ip都会变化
公网ip变成VPN服务器的地址;
内网ip变成VPN为计算机分配的一个虚拟内网ip,这个ip通常位于VPN服务器所在网络中
22. 一个 HTTP 网络请求,从浏览器输入地址开始,到最终接收返回的页面,经历的完整流程
-
用户在浏览器中输入网址,浏览器会首先查找本地缓存来获取网址对应的 IP 地址。如果缓存中没有对应的 IP 地址,则浏览器会向 DNS 服务器发送一个 DNS 查询请求,以获取对应网址的 IP 地址。
-
浏览器根据 IP 地址与服务器建立 TCP 连接。TCP 是一种可靠的协议,它可以保证数据传输的可靠性。在建立连接之前,浏览器会通过三次握手的方式与服务器进行通信,确认连接的可靠性。
-
通过建立的 TCP 连接,浏览器向服务器发送 HTTP 请求报文。HTTP 请求报文包含了请求行、请求头、请求体等信息,用来描述客户端需要的资源和服务。例如,请求行包括了请求方法(GET、POST等)、请求的资源路径、HTTP 协议版本等。
-
服务器接收到 HTTP 请求报文后,根据请求报文中的资源路径等信息,从服务器中获取相应的资源,生成 HTTP 响应报文,并通过建立的 TCP 连接发送回客户端。HTTP 响应报文包括了状态行、响应头、响应体等信息,用来描述服务器提供的资源和服务。例如,状态行包括了响应状态码(200、404等)、HTTP 协议版本等。
-
浏览器接收到 HTTP 响应报文后,解析报文中的内容,根据响应状态码等信息进行处理。如果状态码为 200,表示请求成功,浏览器会将响应体中的内容显示在页面上;否则,表示请求失败,浏览器会显示相应的错误信息。
-
在浏览器接收到 HTTP 响应报文之后,如果响应头中包含了缓存信息,浏览器会将响应内容缓存起来,以便下次访问相同资源时可以直接从本地缓存中获取,提高访问速度。
23.