计算机网络临时

TCP和UDP的区别

TCP:传输控制协议,面向连接,可靠的字节流服务,必须先建立连接(三次握手)才能传输数据

UDP:用户数据报协议,简单的面向数据包的传输层协议。不提供可靠性,只是把应用程序传给IP层的数据发布,并不能保证能够到达

区别:

  • TCP面向连接,UDP无连接
  • UDP结构简单
  • TCP字节流,UDP基于数据包
  • TCP保证数据准确性,UDP可能丢包

优缺点

TCP:

优点:可靠稳定

缺点:慢,效率低,占用系统资源高,易被攻击

UDP:

优点:快、安全

缺点:不可靠,不稳定

使用场景

TCP:对信号完整性,信号质量有要求的信息

UDP:对通信速度要快的场景

Telnet提供终端仿真、远程登录服务,运行于TCP。选项A错误

FTP(文件传输协议):提供应用级文件传输服务,运行在TCP上

SMTP(简单邮件传输协议):用来发送电子邮件的协议,运行于TCP上。选项B错误

DNS(域名服务)提供域名和IP地址之间的转换,用于完成地址查找、邮件转发,运行于TCP和UDP之上。选项C正确

NTP(网络时间协议)用于网络同步,运行于UDP。D错误

字节流和数据包的区别

TCP是一种流模式的协议,UDP是一种数据报模式的协议

流的概念

1、基于连接与无连接

TCP—传输控制协议提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据流量控制等功能,保证数据能从一端传到另一端。

每个数据包的传输过程是:先建立链路、数据传输、然后清除链路。数据包不包含目的地址。受端和发端不但顺序一致,而且内容相同。它的可靠性高。

UDP—用户数据报协议是面向无连接的,每个数据包都有完整的源、目的地址及分组编号,各自在网络中独立传输,传输中不管其顺序,数据到达收端后再进行排序组装,遇有丢失、差错和失序等情况,通过请求重发来解决。它的效率比较高。

是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

2、对系统资源的要求(TCP较多,UDP少)

3、UDP程序结构较简单

4、流模式与数据报模式

5、TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证

6、TCP是面可靠的字节流服务 ,UDP 并不提供对 IP协议的可靠机制、流量控制以及错误恢复功能等。

流量控制是一种可以让发送端根据接收端的实际接受能力控制发送的数据量的手段,对于某些数据链路层上的连接来说,流量控制能够保证在链路层连接上收到的帧能够以发送时的顺序交给网络层,并且能够协调发送方和接收方的节奏,因此它是一种确保数据完整性的方法

OSI网络模型

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)

ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

此外 IP 中还包括 ICMP 协议和 ARP 协议。

  • ICMP 用于告知网络包传送过程中产生的错误以及各种控制信息。
  • ARP 用于根据 IP 地址查询相应的以太网 MAC 地址。

socket

Socket,中文常称为“套接字”,是计算机网络通信的基本组件。它代表了计算机网络中的一个端点(endpoint),使得不同计算机上的应用程序可以进行通信

Socket可以看作不同主机间的进程进行通信的端点,它提供了进程通信的端点,端点被称为套接字地址(分为IP地址和端口号两部分)。

服务端

  • socket创建套接字
  • bind绑定ip、port
  • listen使套接字变被动链接
  • accept等待客户端链接
  • write、read接收发送数据
  • close关闭链接

客户端

  • 创建socket,用函数socket()
  • bind绑定ip和port
  • 连接服务器,用connect()
  • 收发数据,用函数send()和recv(),或read()和write()
  • close关闭连接

TCP如何保证可靠性

校验和、序列号、超时重传、拥塞控制、窗口控制

校验和

通过检验和的方式,接收端可以检测出来数据是否有差错和异常,假如有差错就会直接丢弃TCP段,重新发送。TCP在计算检验和时,会在TCP首部加上一个12字节的伪首部。检验和总共计算3部分:TCP首部、TCP数据、TCP伪首部.

CRC校验只能检查比特差错,比如0变1,1变0这种差错。对于帧丢失、帧重复和帧失序需要再增加帧编号、重传、确认机制才可以检验出来。

序列号、确认应答、超时重传

数据到达接收方之后,接收方会发送一个确认应答,表示已经收到数据段,并且确认序号会说明了它下一次需要接收的数据序列号,如果发送方没收到确认应答,那么发送方方会进行重发,这个等待时间一般是2*RTT(往返时间)+一个偏差值。

如果一个包多次重发没有收到接收端的确认包,就会强制关闭连接

窗口控制与重发控制、快速重传(重复确认应答)

TCP会利用窗口控制来提高传输速度,意思是在一个窗口大小内,不用一定等到应答才能发送下一段数据,窗口大小就是无需等待确认而可以继续发送数据的最大值如果不使用窗口控制,每一个没收到应答的数据都要重发。

拥塞控制

TCP的拥塞控制由4个核心算法组成,“慢启动”,“拥塞避免”,“快速重传”,“快速恢复”

如果把窗口定的很大,发送端连续发送大量的数据,可能会造成网络的拥堵(大家都在用网,你在这狂 发,吞吐量就那么大,当然会堵),甚至造成网络的瘫痪。所以TCP在为了防止这种情况而进行了拥塞控制。

慢启动:定义拥塞窗口,一开始将该窗口大小设为1,之后每次收到确认应答(经过一个rtt),将拥塞 窗口大小*2

拥塞避免:设置慢启动阈值,一般开始都设为65536。拥塞避免是指当拥塞窗口大小达到这个阈值,拥塞窗口的值不再指数上升,而是加法增加(每次确认应答/每个rtt,拥塞窗口大小+1),以此来避免拥 塞

将报文段的超时重传看做拥塞,则一旦发生超时重传,我们需要先将阈值设为当前窗口大小的一半,并 且将窗口大小设为初值1,然后重新进入慢启动过程。

快速重传:在遇到3次重复确认应答(高速重发控制)时,代表收到了3个报文段,但是这之前的1个段 丢失了,便对它进行立即重传。

然后,先将阈值设为当前窗口大小的一半,然后将拥塞窗口大小设为慢启动阈值+3的大小。

这样可以达到:在TCP通信时,网络吞吐量呈现逐渐的上升,并且随着拥堵来降低吞吐量,再进入慢慢 上升的过程,网络不会轻易的发生瘫痪。

采用慢开始和拥塞避免算法的时候

  1. 一旦cwnd>慢开始门限,就采用拥塞避免算法,减慢增长速度
  2. 一旦出现丢包的情况,就重新进行慢开始,减慢增长速度

采用快恢复和快重传算法的时候

  1. 一旦cwnd>慢开始门限,就采用拥塞避免算法,减慢增长速度
  2. 一旦发送方连续收到了三个重复确认,就采用拥塞避免算法,减慢增长速度

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

拥塞控制(详解)-CSDN博客

慢启动:传输开始时,先不发送大量数据,先探测一下网络的拥塞程度,在没出现丢包时每收到一个ACK拥塞窗口加一(单位为MSS,最大单个报文段长度),每轮窗口增加一倍,指数型增长

拥塞避免和快重传:当窗口达到慢启动阈值或丢包时,进入拥塞避免阶段,窗口每轮次加一,线性增长;当收到对一个报文的三个重复ACK时,认为该报文的下一个报文丢失了,进入快重传阶段, 要求接收方在收到一个失序的报文段后就立即发出重复确认(为的是使发送方及早知道有报文段没有到达对方,可提高网络吞吐量约20%)而不要等到自己发送数据时捎带确认;

快恢复:快重传完成后进入快恢复阶段,将慢启动阈值修改为当前拥塞窗口的一半,同时拥塞窗口值等于慢启动阈值,然后进入拥塞避免阶段,重复

阈值是一半,窗口大小是一半加3

TCP差错校验

TCP(传输控制协议)的差错检测方法主要有检验和、选择确认和超时重传三种。

检验和是指检查报文段是否出现错误,若报文段出现错误则TCP丢弃该报文段;

选择确认是指发送端TCP通过检查接收端的确认来判断发送的报文段是否已正确到达目的端TCP;

超时重传是指发送端发出的报文段在超时规定的时间内未收到确认,则发送端判断该报文丢失或者传输出错,进而重传该报文段。

简述TCP滑动窗口及重传机制

  1. 滑动窗口是传输层进行流控的措施,接收方发送自己的窗口大小,从而控制发送方的发送速度,从而达到防止发送方速度过快,滑动可以理解缓冲区大小,告诉发送方自己还能接受多少

    TCP的滑动窗口解决了端到端的流量控制问题,允许接受方对传输进行限制,直到它拥有足够的缓冲空间来容纳更多的数据

  2. TCP发送数据时会设置计时器,若计时器超时仍未收到数据确认,则会引发相应的超时或基于计时器的重传操作, 计时器超时称为重传超时(RTO:Retransmission Timeout )

    另一种方式的重传称为快速重传,通常发生在没有延时的情况下。若TCP累积确认无法返回新的ACK,或者当ACK包含的选择确认信息(SACK)表明出现失序报文时,快速重传会推断出现丢包,需要重传。

TCP慢启动

慢启动(slow start)是传输控制协议使用的一种阻塞控制协议。慢启动也叫指数增长期

慢启动算法的基本原理是在连接刚建立时,发送方会以指数增长的方式增加发送窗口的大小,直到达到一个阈值(拥塞窗口大小)为止。

具体来说,TCP慢启动的过程如下:

  1. 初始阶段:连接建立后,发送方将发送窗口的大小初始化为一个较小的值(通常为1个MSS,最大报文段长度)。
  2. 指数增长:每当发送方成功发送并确认一个报文段时,发送窗口的大小会加倍,即指数增长
  3. 达到阈值:当发送窗口的大小达到一个阈值(拥塞窗口大小)时,发送方将进入拥塞避免阶段,切换为线性增长。
  4. 拥塞避免:在拥塞避免阶段,发送方每经过一个往返时间(RTT),发送窗口的大小增加一个MSS,即线性增长
  5. 快重传:如果发送方在慢启动或拥塞避免阶段收到重复的确认,说明网络中可能发生了数据丢失,发送方会立即重传丢失的数据段,而不等待超时。

三次握手、四次挥手

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

三次握手过程:

第一次,客户端发送SYN报文,并置发送序号为X;

第二次,服务端发送SYN+ACK报文,确定序号为X+1,并置发送序号为Y;

第三次,客户端发送ACK报文,确认序号为Y+1,并置发送序号为Z。

四次挥手过程:

第一次,主动方发送FIN+ACK报文,并置发送序号为X;

第二次,被对方发送ACK报文,确认序号为X+1,并置发送序号为Z;

第三次,被动方发送FIN+ACK报文,确认序号为X,并置发送序号为Y;

第四次,主动方发送ACK报文,确认序号为Y,置发送序号为X。

三次握手的目的

第一次:客户端确认自己可以发,服务器确认自己能收,客户端发送信息给i服务器,服务器接受客户端信息

第二次:客户端确认自己能收,服务器能发也能收,服务器确认自己能发服务器发送应答给客户端,客户端接收应答和报文

第三次:

作用:服务器确认客户端可以收到客户端应答服务器

第一次:客户端将标志位SYN设置为1,随机产生一个seq=x,并将该数据包发送给服务端,客户端进入SYN_SENT状态,等待服务端确认

第二次:服务端收到数据包后,由标志位SYN=1可知client请求连接,服务端将标志位SYN和ACK都置1,ack=x+1,并将该数据包发送给客户端确认连接请求,服务端进入SYN_RCVD状态

第三次:客户端收到确认后,检查ack是否为x+1,ACK是否为1,如果正确,将数据包发给服务端,服务端检查ACK是否为1,ack是否为y+1,如果是,则连接成功,服务器和客户端都进入ESTABLISHED

四次挥手

客户端发送FIN=1给客户端,告诉服务端数据已经发送完毕,请求终止连接,此时客户端不能发送数据(不包括协议,比如应答这些),但还能接收数据,

服务端接受FIN包之后给客户端回一个ACK包告诉它自己已经收到,此时没有断开socket连接,而是等待剩下的数据传输完成

服务端等待数据传输完毕之后,向客户端发送FIN包,表明可以断开连接

客户端收到后,回应一个ACK包表明已经收到,等待一段时间,确保服务端没有数据再发来,然后彻底断开

为什么2次握手不行

TCP协议双方都必须维护一个序列号,三次握手的过程及时通信双方互相告知序列号起始值,并确认对方已经收到了序列号。

如果只是两次握手,至多只有连接发起方的起始序列号能被确认,另一方选择的序列号则是得不到确认,服务器这边无法判断客户端是否能接收。

至多只有发起方能确认,服务端确定不了

三次挥手可以吗

假设是客户端主动断开,在第一次挥手中客户端发起请求断开,接着服务器回了个应答(第二次),表示我已经收到请求。等一段时间,等服务器的数据发送完成之后再向客户端发起断开(第三次)。客户端接受到之后发起应答(第四次)。

如果是三次挥手那么只能是第二和第三次合并,即收到第一次挥手之后,发起应答和断开请求,但是这样会存在服务器有些数据还没发送完成就发起断不开

一句话:服务器回应你的请求断开,服务器可能还有数据没发送,所以应答和FIN就分开发。

域名解析过程

  1. 浏览器首先会搜索自己的DNS缓存,看是否有之前解析过的、对应的IP地址。如果有,则解析过程结束。
  2. 如果浏览器缓存中没有找到,那么接下来会查看操作系统的DNS缓存,例如Windows环境下的hosts文件,看是否有对应的解析结果。
  3. 如果操作系统缓存中也没有命中,那么会向本地域名服务器(LDNS)发出请求。本地域名服务器会先查询自己的缓存,看是否有该纪录。
  4. 如果本地域名服务器缓存中没有找到,那么它会向根域名服务器发出请求。根域名服务器会返回给本地域名服务器一个所查询域的主域名服务器(如.com、.cn、.org等顶级域名服务器的地址)。
  5. 权威域名服务器:顶级域名服务器返回给本地DNS服务器一个权威域名服务器的IP地址,本地DNS服务器再向权威域名服务器发送查询请求。
  6. 解析域名:权威域名服务器查询到对应的IP地址后,将IP地址返回给本地DNS服务器,本地DNS服务器再将IP地址返回给用户的设备。
  7. 最后,本地域名服务器会缓存这个域名和对应的IP地址,并将结果返回给客户机,客户机收到IP地址后就可以访问对应的网站了。

DNS的工作原理

  1. 域名解析请求:当用户在浏览器中输入一个域名(如www.example.com)时,系统会向本地DNS服务器发送一个域名解析请求。
  2. 本地DNS服务器:本地DNS服务器是用户所在网络中的DNS服务器,通常由ISP提供。本地DNS服务器会首先查询自己的缓存,如果缓存中有对应的IP地址,则直接返回给用户。
  3. 根域名服务器:如果本地DNS服务器的缓存中没有对应的IP地址,它会向根域名服务器发送查询请求。根域名服务器负责管理顶级域名服务器的IP地址。
  4. 顶级域名服务器:根域名服务器返回给本地DNS服务器一个顶级域名服务器的IP地址,本地DNS服务器再向顶级域名服务器发送查询请求。
  5. 缓存:本地DNS服务器会将查询到的IP地址缓存一段时间,以便下次再次查询时可以直接返回结果,提高查询速度。

IPv4和IPv6的区别

协议地址的区别

地址长度:IP4,32位(4字节)地址长度;ip6具有128位(16)

地址表示方式: IPv4地址通常由四个0到255之间的十进制数字组成,例如192.168.1.1。而IPv6地址由八个由冒号分隔的十六进制数字组成

自动配置和支持:IPv6支持自动配置和移动性,允许设备自动获得全球唯一的IPv6地址,简化了地址的分配和管理过程。而IPv4地址分配通常使用动态主机配置协议(DHCP)或静态配置

地址解析协议

IPv4:地址解析协议(ARP)可用于将IPv4地址映射到MAC地址。

OSI七层

简要概括

  • 物理层:底层数据传输,如网线;网卡标准。
  • 数据链路层:定义数据的基本格式,如何传输,如何标识;如网卡MAC地址。
  • 网络层:定义IP编址,定义路由功能;如不同设备的数据转发。
  • 传输层:端到端传输数据的基本功能;如TCP、UDP。
  • 会话层:控制应用程序之间会话能力;如不同软件数据分发给不同软件。
  • 表示层:数据格式标识,基本压缩加密功能。
  • 应用层:各种应用软件,包括Web应用。

“点到点”中的“点”指的是通信子网中的节点,可以是主机、路由器或者交换机等设备。在OSI七层模型中,下面三个层:物理层、数据链路层和网络层都属于点到点服务

常用的网络拓扑主要分为星形网,环形网,总线网和树形网。

虚电路服务是指计算机在通信前先建立一条虚电路,然后通信双方沿着已建立的虚电路发送分组;数据报服务是指计算机在发送分组时无需先建立连接,每个分组都是独立发送的。网络层能够向上提供两种服务:面向连接的虚电路服务、无连接的数据报服务。

说明:

  • 在四层,既传输层数据被称作(Segments);
  • 三层网络层数据被称做(Packages);
  • 二层数据链路层时数据被称为(Frames);
  • 一层物理层时数据被称为比特流(Bits)。

主要功能

物理层:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。

数据链路层:接收来自物理层的位流形式的数据,并封装成帧,传送到上一层。

网络层:将网络地址翻译成对应的物理地址,并通过路由选择算法为分组通过通信子网选择最适当的路径

**传输层:**在源端与目的端之间提供可靠的透明数据传输。

**会话层:**负责在网络中的两节点之间建立、维持和终止通信。

**表示层:**处理用户信息的表示问题,数据的编码,压缩和解压缩,数据的加密和解密。

什么是OSI七层模型和TCP/IP四层模型?每层列举2个协议。

OSI七层模型及其包含的协议如下

  1. 物理层: 通过媒介传输比特,确定机械及电气规范,传输单位为bit,主要包括的协议为:IEE802.3 CLOCK RJ45
  2. 数据链路层: 将比特组装成帧和点到点的传递,传输单位为帧,主要包括的协议为MAC VLAN PPP
    1. 数据链路层主要解决三个基本问题:封装成帧、透明传输、差错检测。
  3. 网络层:负责数据包从源到宿的传递和网际互连,传输单位为包,主要包括的协议为IP ARP ICMP
  4. 传输层:提供端到端的可靠报文传递和错误恢复,传输单位为报文,主要包括的协议为TCP UDP
  5. 会话层:建立、管理和终止会话,传输单位为SPDU,主要包括的协议为RPC NFS
  6. 表示层: 对数据进行翻译、加密和压缩,传输单位为PPDU,主要包括的协议为JPEG ASII
  7. 应用层: 允许访问OSI环境的手段,传输单位为APDU,主要包括的协议为FTP HTTP DNS

总结

  • 网络七层模型是一个标准,而非实现。
  • 网络四层DNS的工作原理?模型是一个实现的应用模型。
  • 网络四层模型由七层模型简化合并而来。

为什么域名解析用UDP协议?

因为UDP快啊!UDP的DNS协议只要一个请求、一个应答就好了。

而使用基于TCP的DNS协议要三次握手、发送数据以及应答、四次挥手,但是UDP协议传输内容不能超过512字节。

不过客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。

小型请求和快速响应

低延迟

为什么区域传送用TCP协议?

因为TCP协议可靠性好啊!

你要从主DNS上复制内容啊,你用不可靠的UDP? 因为TCP协议传输的内容大啊,你用最大只能传512字节的UDP协议?万一同步的数据大于512字节,你怎么办?所以用TCP协议比较好!

当 ping 一个 IP 地址时发生了什么

  1. 发送ICMP Echo请求:当执行ping命令时,本地主机会发送一个ICMP Echo请求数据包到目标主机的IP地址。ICMP Echo请求数据包中包含一个序列号和时间戳等信息。
  2. 目标主机响应:目标主机收到ICMP Echo请求数据包后,会返回一个ICMP Echo应答数据包给本地主机。ICMP Echo应答数据包中包含与请求数据包相同的序列号和时间戳等信息。
  3. 计算往返时间(Round-Trip Time,RTT):本地主机接收到ICMP Echo应答数据包后,会计算往返时间(RTT),即从发送请求到接收响应的时间。RTT可以反映网络延迟情况。
  4. 显示结果:ping命令会显示每个ICMP Echo请求的序列号、目标主机的IP地址、往返时间(RTT)等信息。通过ping命令的输出结果,可以判断网络连接是否正常、延迟情况等。
  5. 连续ping测试:ping命令默认会持续发送ICMP Echo请求数据包,以便进行连续的网络连通性测试。用户可以通过Ctrl+C来终止ping命令的执行。

HTTP

什么是http协议

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网 (WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。

HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件,图片文件,查询结果等)。

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。

HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务 器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。

请你说一说http返回码是什么?

HTTP协议的响应报文由状态行、响应头部和响应包体组成

常见状态代码、状态描述的详细说明如下。

  • 200 OK」是最常见的成功状态码,表示一切正常。如果是非 HEAD 请求,服务器返回的响应头都会有 body 数据。

  • 403 Forbidden」表示服务器禁止访问资源,并不是客户端的请求出错。

  • 404 Not Found」表示请求的资源在服务器上不存在或未找到,所以无法提供给客户端。

  • 502 Bad Gateway」通常是服务器作为网关或代理时返回的错误码,表示服务器自身工作正常,访问后端服务器发生了错误。

http协议有什么特点

  1. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每 种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模 小,因而通信速度很快。
  2. 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
  3. 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后, 即断开连接。采用这种方式可以节省传输时间。
  4. 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续 处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服 务器不需要先前信息时它的应答就较快。
  5. 支持B/S及C/S模式。
  6. 默认端口80
  7. 基于TCP协议

HTTP的缺点有哪些?

  • 使用明文进行通信,内容可能会被窃听
  • 不验证通信方的身份,通信方的身份有可能遭遇伪装
  • 无法证明报文的完整性,报文有可能遭篡改

明文、窃听

不验证、伪装

无法证明完整性、可能被篡改

一次完整的HTTP请求过程

域名解析–>发起TCP的3次握手–>建立TCP连接后发起http请求–>服务器响应http请求,浏览器得到html代码–>浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) -->浏览器对页面进行渲染呈现给用户。

HTTP长连接和短连接的区别

在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。

而从HTTP/1.1起,默认使用长连接,用以保持连接特性。

服务器缓存的原因是什么?如何实现的?

原因:

  • 缓解服务器压力;
  • 降低客户端获取资源的延迟:缓存通常位于内存中,读取缓存的速度更快。并且缓存服务器在地理位置上也有可能比源服务器来得近,例如浏览器缓存。

实现方法

  • 让代理服务器进行缓存;
  • 让客户端浏览器进行缓存。

HTTP请求方法你知道多少?

HTTP1.0 定义了三种请求方法: GET, POST和HEAD方法。

HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE和CONNECT方法。

GET 和 POST 的区别,你知道哪些?

  1. 参数传递方式
    • GET:通过URL参数传递数据,参数会附加在URL后面,以问号(?)分隔参数和URL,不安全,有长度限制。
    • POST:通过请求体传递数据,参数会包含在请求体中,不会显示在URL中,相对安全,没有长度限制。
  2. 数据传输方式
    • GET:数据以明文形式出现在URL中,可以被缓存、收藏,适合传递少量数据。
    • POST:数据以密文形式出现在请求体中,不会被缓存、收藏,适合传递大量数据和敏感信息。
  3. 安全性
    • GET:由于数据以明文形式出现在URL中,不适合传递敏感信息,如密码等。
    • POST:由于数据以密文形式出现在请求体中,相对安全,适合传递敏感信息。
  4. 幂等性
    • GET:幂等,即多次请求对资源的状态没有影响,可以被缓存。
    • POST:非幂等,即多次请求对资源的状态有影响,不适合被缓存。
  5. 使用场景
    • GET:适合用于获取数据,如查询、搜索等操作。
    • POST:适合用于提交数据,如表单提交、文件上传等操作。

GET 的语义是请求获取指定的资源。GET 方法是安全、幂等、可被缓存的。

POST 的语义是根据请求负荷(报文主体)对指定的资源做出处理,具体的处理方式视资源类型而不同。POST 不安全,不幂等,(大部分实现)不可缓存

get:url,不安全,幂等;post:body,安全,不幂等

HTTPS和HTTP的区别?优缺点

  1. HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全, HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

  2. https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

  3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

HTTPS优点

HTTPS传输数据过程中使用密钥进行加密,所以安全性更高

HTTPS协议可以认证用户和服务器,确保数据发送到正确的用户和服务器

HTTPS缺点

HTTPS握手阶段延时较高:由于在进行HTTP会话之前还需要进行SSL握手,因此HTTPS协议握手阶段延 时增加

HTTPS部署成本高:一方面HTTPS协议需要使用证书来验证自身的安全性,所以需要购买CA证书;另一 方面由于采用HTTPS协议需要进行加解密的计算,占用CPU资源较多,需要的服务器配置或数目高

什么是SSL/TLS

SSL代表安全套接字层。它是一种用于加密和验证应用程序(如浏览器)和Web服务器之间发送的数据的协议。 身份验证 , 加密Https的加密机制是一种共享密钥加密和公开密钥加密并用的混合加密机制。

SSL/TLS协议作用:认证用户和服务,加密数据,维护数据的完整性的应用层协议加密和解密需要两个不同的密钥,故被称为非对称加密;加密和解密都使用同一个密钥的。

对称加密:优点在于加密、解密效率通常比较高 ,HTTPS是基于非对称加密的, 公钥是公开的。

HTTPS是如何保证数据传输的安全,整体的流程是什么?(SSL是怎么工作保证安全的)

建立HTTP连接

(1)客户端向服务器端发起SSL连接请求;

(2)服务器把公钥发送给客户端,并且服务器端保存着唯一的私钥

(3)客户端用公钥对双方通信的对称秘钥进行加密,并发送给服务器端

(4)服务器利用自己唯一的私钥对客户端发来的对称秘钥进行解密,

(5)进行数据传输,服务器和客户端双方用公有的相同的对称秘钥对数据进行加密解密,可以保证在数据收发过程中的安全,即使是第三方获得数据包,也无法对其进行加密,解密和篡改。

HTTP 缓存有哪些实现方式?

对于一些具有重复性的 HTTP 请求,比如每次请求得到的数据都一样的,我们可以把这对「请求-响应」的数据都缓存在本地,那么下次就直接读取本地的数据,不必在通过网络获取服务器的响应了,这样的话 HTTP/1.1 的性能肯定肉眼可见的提升。

所以,避免发送 HTTP 请求的方法就是通过缓存技术,HTTP 设计者早在之前就考虑到了这点,因此 HTTP 协议的头部有不少是针对缓存的字段。

HTTP 缓存有两种实现方式,分别是强制缓存和协商缓存

什么是强制缓存?

强缓存指的是只要浏览器判断缓存没有过期,则直接使用浏览器的本地缓存,决定是否使用缓存的主动性在于浏览器这边。

什么是协商缓存

协商缓存就是与服务端协商之后,通过协商结果来判断是否使用本地缓存。

Cookie是什么

Cookie是一种在客户端(通常是浏览器)和服务器之间传递的小型文本文件,用于存储用户的会话信息个性化设置、跟踪用户行为等数据。Cookie通常由服务器在HTTP响应中设置,并存储在客户端的浏览器中,然后在后续的HTTP请求中被发送到服务器

Session 的工作原理是什么?

Session可以被存储在服务器上的文件、数据库或者内存中。也可以将Session存储在Redis这种内存型数据库中,效率会更高。

session的工作原理是客户端登录完成之后,服务器会创建对应的session,session创建完之后,会把session的id发送给客户端,客户端再存储到浏览器中。这样客户端每次访问服务器时,都会带着sessionid,服务器拿到sessionid之后,在内存找到与之对应的session这样就可以正常工作了

Cookie与Session的对比

Cookie是客户端保持状态的方法。

为了保持会话,服务器可以在响应客户端请求时将Cookie字符串放在Set-Cookie下,客户机收到Cookie之后保存这段字符串,之后再请求时候带上Cookie就可以被识别。

Session是服务器保持状态的方法。

我们可以理解为每个用户有一个独一无二的Session ID作为Session文件的Hash键,通过这个值可以锁定具体的Session结构的数据,这个Session结构中存储了用户操作行为。

cookie保存在浏览器、session保存在服务器

端口有效范围是多少到多少

0-1023为知名端口号,比如其中HTTP是80,FTP是20(数据端口)、21(控制端口)。

UDP和TCP报头使用两个字节存放端口号,所以端口号的有效范围是从0到65535。动态端口的范围是从1024到65535。

2的16次方

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

POST 方法比 GET 方法安全?

从传输的角度来说,他们都是不安全的,因为HTTP在网络上是明文传输的,只要在网络节点上捉包,就能完整地获取数据报文。

要想安全传输,就只有加密,也就是HTTPS。

HTTPS是绝对安全的吗

中间人攻击是一种常见的攻击方式,攻击者会在客户端与服务器之间插入恶意设备,截获和篡改双方之间的通信。为了防止这类攻击,HTTPS使用证书来验证服务器的身份,并在建立连接时发送数字证书给客户端进行验证。然而,如果攻击者能够伪造合法的服务器数字证书,就可能欺骗客户端建立连接,从而泄露敏感信息。

什么是RARP?工作原理

概括:

反向地址转换协议,网络层协议, RARP 与 ARP 工作方式相反。 RARP 使只知道自己硬件地址的主机能够知道其IP 地址。 RARP 发出要反向解释的物理地址并希望返回其 IP 地址,应答包括能够提供所需信息的RARP 服务器发出的 IP 地址。

原理:

(1) 网络上的每台设备都会有一个独一无二的硬件地址,通常是由设备厂商分配的 MAC 地址。主机从网卡上读取MAC 地址,然后在网络上发送一个 RARP 请求的广播数据包,请求 RARP 服务器回复该主机的IP地址。

(2) RARP 服务器收到了 RARP 请求数据包,为其分配 IP 地址,并将 RARP 回应发送给主机。

(3) PC1 收到 RARP 回应后,就使用得到的 IP 地址进行通讯。

HTTP特性

HTTP/1.1的优点

HTTP 最突出的优点是「简单、灵活和易于扩展、应用广泛和跨平台」。

1. 简单

HTTP 基本的报文格式就是 header + body,头部信息也是 key-value 简单文本的形式,易于理解,降低了学习和使用的门槛。

2. 灵活和易于扩展

HTTP 协议里的各类请求方法、URI/URL、状态码、头字段等每个组成要求都没有被固定死,都允许开发人员自定义和扩充

同时 HTTP 由于是工作在应用层( OSI 第七层),则它下层可以随意变化,比如:

  • HTTPS 就是在 HTTP 与 TCP 层之间增加了 SSL/TLS 安全传输层;
  • HTTP/1.1 和 HTTP/2.0 传输协议使用的是 TCP 协议,而到了 HTTP/3.0 传输协议改用了 UDP 协议。

3. 应用广泛和跨平台

互联网发展至今,HTTP 的应用范围非常的广泛,从台式机的浏览器到手机上的各种 APP,从看新闻、刷贴吧到购物、理财、吃鸡,HTTP 的应用遍地开花,同时天然具有跨平台的优越性。

HTTP/1.1 的缺点有哪些?

HTTP 协议里有优缺点一体的双刃剑,分别是「无状态、明文传输」,同时还有一大缺点「不安全」。

1. 无状态双刃剑

无状态的好处,因为服务器不会去记忆 HTTP 的状态,所以不需要额外的资源来记录状态信息,这能减轻服务器的负担,能够把更多的 CPU 和内存用来对外提供服务。

无状态的坏处,既然服务器没有记忆能力,它在完成有关联性的操作时会非常麻烦。

Cookie 通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态。

相当于,在客户端第一次请求后,服务器会下发一个装有客户信息的「小贴纸」,后续客户端请求服务器的时候,带上「小贴纸」,服务器就能认得了了

2. 明文传输双刃剑

明文意味着在传输过程中的信息,是可方便阅读的,比如 Wireshark 抓包都可以直接肉眼查看,为我们调试工作带了极大的便利性。

3. 不安全

HTTP 比较严重的缺点就是不安全:

  • 通信使用明文(不加密),内容可能会被窃听。比如,账号信息容易泄漏,那你号没了。
  • 不验证通信方的身份,因此有可能遭遇伪装。比如,访问假的淘宝、拼多多,那你钱没了。
  • 无法证明报文的完整性,所以有可能已遭篡改。比如,网页上植入垃圾广告,视觉污染,眼没了。

HTTP 的安全问题,可以用 HTTPS 的方式解决,也就是通过引入 SSL/TLS 层,使得在安全上达到了极致。

HTTP/1.0

Http 1.0的致命缺点:

  1. 无法复用TCP连接和并行发送请求,这样每次一个请求都需要三次握手,而且其实建立连接和释放连接的这个过程是最耗时的,传输数据相反却不那么耗时。
  2. 不支持文件断点续传。
  3. 本地时间被修改导致响应头expires的缓存机制失效的问题。

HTTP/1.1 的性能如何?

HTTP 协议是基于 TCP/IP,并且使用了「请求 - 应答」的通信模式,所以性能的关键就在这两点里。

1. 长连接

这种方式的好处在于减少了 TCP 连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。

持久连接的特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。

当然,如果某个 HTTP 长连接超过一定时间没有任何数据交互,服务端就会主动断开这个连接。

2. 管道网络传输

即可在同一个 TCP 连接里面,客户端可以发起多个请求,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间。

但是服务器必须按照接收请求的顺序发送对这些管道化请求的响应

所以,HTTP/1.1 管道解决了请求的队头阻塞,但是没有解决响应的队头阻塞

HTTP 与 HTTPS

HTTP 与 HTTPS 有哪些区别?

  • HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。
  • HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
  • 两者的默认端口不一样,HTTP 默认端口号是 80,HTTPS 默认端口号是 443
  • HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。

HTTPS 解决了 HTTP 的哪些问题?

HTTP 由于是明文传输,所以安全上存在以下三个风险:

  • 窃听风险,比如通信链路上可以获取通信内容,用户号容易没。
  • 篡改风险,比如强制植入垃圾广告,视觉污染,用户眼容易瞎。
  • 冒充风险,比如冒充淘宝网站,用户钱容易没。

HTTPS 在 HTTP 与 TCP 层之间加入了 SSL/TLS 协议,可以很好的解决了上述的风险:

  • 信息加密:交互信息无法被窃取,但你的号会因为「自身忘记」账号而没。
  • 校验机制:无法篡改通信内容,篡改了就不能正常显示,但百度「竞价排名」依然可以搜索垃圾广告。
  • 身份证书:证明淘宝是真的淘宝网,但你的钱还是会因为「剁手」而没。

TCP 三次握手发生在 socket 建立的哪一步

TCP Client调用connec()请求建立连接时。

DNS负载均衡是什么策略?

当一个网站有足够多的用户的时候,假如每次请求的资源都位于同一台机器上面,那么这台机器随时可能会崩掉。处理办法就是用DNS负载均衡技术,它的原理是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。例如可以根据每台机器的负载量,该机器离用户地理位置的距离等等。

三次握手过程中可以携带数据吗?

其实第三次握手的时候,是可以携带数据的。但是,第一次、第二次握手不可以携带数据。

为什么这样呢?大家可以想一个问题,假如第一次握手可以携带数据的话,如果有人要恶意攻击服务器,那他每次都在第一次握手中的SYN报文中放入大量的数据。因为攻击者根本就不理服务器的接收、发送能力是否正常,然后疯狂着重复发SYN报文的话,这会让服务器花费很多时间、内存空间来接收这些报文。

也就是说,第一次握手不可以放数据,其中一个简单的原因就是会让服务器更加容易受到攻击了。而对于第三次的话,此时客户端已经处于ESTABLISHED **状态。对于客户端来说,他已经建立起连接了,**并且也已经知道服务器的接收、发送能力是正常的了,所以能携带数据也没啥毛病。

应用层常见协议知道多少?了解几个?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

网络层常见协议?可以说一下吗?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

TCP四大拥塞控制算法总结?

TCP四大拥塞控制算法包括慢启动(Slow Start)、拥塞避免(Congestion Avoidance)、快速重传(Fast Retransmit)和快速恢复(Fast Recovery)。这些算法在网络拥塞的情况下,通过控制发送窗口大小来调节数据的发送速率,从而避免网络拥塞的进一步加剧。

  1. 慢启动算法:是TCP连接建立后的初始阶段算法,目的是为了避免网络拥塞。慢启动算法通过逐渐增加发送窗口的大小来控制数据的发送速率,以适应网络的拥塞程度。这种算法需要与拥塞避免算法配合使用。
  2. 拥塞避免算法:用于在慢启动阶段后维持合适的发送速率。一旦达到慢启动阈值,发送方将进入拥塞避免模式。在拥塞避免模式中,发送方每次收到一个确认ACK时,将窗口大小增加一个较小的值。通过这种方式,TCP可以确定一个合适的发送速率,以避免网络拥塞。
  3. 快速重传算法:是一种拥塞控制算法,用于在丢包发生时快速重新传输丢失的数据包。当发送方连续收到多个重复的ACK时,会触发快速重传机制,立即重传可能丢失的数据包,而不需要等待超时定时器的触发。
  4. 快速恢复算法:也是一种拥塞控制算法,用于在网络拥塞时快速恢复发送速率。当发送方收到一定数量的重复ACK时,会进入快速恢复阶段,此时发送方不再执行慢启动和拥塞避免算法,而是尝试恢复发送速率。

这四种算法共同构成了TCP的拥塞控制机制,使得TCP能够在网络拥塞的情况下有效地调节数据的发送速率,从而避免网络性能的下降和数据包的丢失。

数据链路层常见协议?可以说一下吗

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • MAC地址相关
  • ARP( 地址解析协议 ):根据IP地址获取MAC地址
  • RARP(反向地址解析协议):

TCP对应的应用层协议

FTP:定义了文件传输协议,使用21端口.

Telnet:它是一种用于远程登陆的端口,23端口

SMTP:定义了简单邮件传送协议,服务器开放的是25号端口。

POP3:它是和SMTP对应,POP3用于接收邮件。

UDP对应的应用层协议

DNS:用于域名解析服务,用的是53号端口

SNMP:简单网络管理协议,使用161号端口

TFTP(Trival File Transfer Protocal):简单文件传输协议,69

常见的HTTP状态码有哪些?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

从地址栏输入URL到显示页面都发生了什么

DNS解析

输入www.porttest.com,用户PC中的DNS客户端进程会发送一个DNS查询请求报文,其内容为域名www.porttest.com 所对应的IP地址是什么?

DNS的查询请求报文需要使用运输层的UDP协议封装成UDP用户数据报,其首部中的源端口字段值在短暂端口号49151~65535中挑选一个未被占用的端口号用来表示DNS客户端进程进程,例如49152。目的端口字段的值设置为53,这是DNS服务器端进程所使用的熟知端口号。

之后用户PC将UDP用户数据报封装在IP数据报中通过以太网发送给DNS服务器。

DNS 服务器端收到该数据报后,从中解封出UDP用户数据报。

UDP首部中的目的端口号为53,这表明应将该UDP用户数据报的数据载荷部分,也就是DNS查询请求报文,交付给本服务器中的DNS服务器端进程。DNS服务器端进程解析DNS查询请求报文的内容,然后按其要求查找对应的IP地址。

首先,查询请求会先找到本地DNS服务器来查询是否包含IP地址,如果本地DNS无法查询到目标IP地址,就会向根域名服务器发起一个DNS查询。

如果根域名服务器无法告知本地DNS服务器下一步需要访问哪个顶级域名服务器,就会使用递归查询。

如果根域名服务器能够告知DNS 服务器下一步需要访问的顶级域名服务器,就会使用迭代查询。

再由根域名服务器->顶级域名服务器->权威DNS服务器后,由权威服务器告诉本地服务器目标IP地址,再由本地DNS服务器告诉用户需要访问的IP地址。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

得知目标IP地址之后,DNS服务器会给用户PC发送DNS的响应报文,其内容为域名www.porttest.com 所对应的IP地址是192.168.0.3。

DNS响应报文需要使用运输层的UDP协议封装成UDP用户数据报,其首部中的原端口字段的值设置为熟知端口号53,表明这是DNS 服务器端进程所发送的UDP 用户数据报,目的端口字段的值设置为49152,这是之前用户PC中发送DNS查询请求报文的DNS客户端进程所使用的短暂端口号。

TCP连接

用户PC的浏览器通过 DNS 获取到 Web 服务器真正的 IP 地址后,便向 Web 服务器发起 TCP 连接请求,通过 TCP 三次握手建立好连接后,浏览器便可以将 HTTP 请求数据发送给Web服务器了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

MAC

在 MAC 包头里需要发送方 MAC 地址接收方目标 MAC 地址,用于两点之间的传输

一般在 TCP/IP 通信里,MAC 包头的协议类型只使用:

  • 0800 : IP 协议
  • 0806 : ARP 协议

发起HTTP请求

现在用户PC中的HTTP客户端进程可以向Web服务器发送HTTP请求报文了。其内容为首页内容是什么? HTTP请求报文需要使用运输层的TCP协议封装成TCP报文段,其首部中的源端口字段的值在短暂端口号49151~65535中挑选一个未被占用的用来表示HTTP客户端进程。

例如:源端口仍然使用之前用过的49152,目的端口字段的值设置为80,这是HTTP服务器端进程所使用的熟知端口号,之后将TCP报文段封装在数据报中,通过以太网发送给Web服务器。

处理请求

Web服务器收到该数据报后,从中解封出TCP报文段,TCP 首部中的目的端口号为80,,这表明应该将该TCP报文段的数据载荷部分,也就是HTTP请求报文交付给本服务器中的HTTP 服务器端进程。

HTTP服务器端进程解析HTTP请求报文的内容,然后按其要求查找首页内容,之后会给用户PC发送HTTP响应报文,其内容是HTTP 客户端所请求的首页内容。

HTTP 响应报文需要使用运输层的TCP协议封装成TCP报文段,其首部中的源端口号字段的值设置为熟知端口号80,表明这是HTTP服务器端进程所发送的TCP报文段,目的端口字段的值设置为49152,这是之前用户PC中发送HTTP 请求报文的HTTP客户端进程所使用的短暂端口号。

之后Web服务器将TCP报文段封装在IP数据报文中,通过以太网发送给用户PC。

浏览器渲染

用户PC收到该数据报后,从中解封出TCP报文段。TCP首部中的目的端口号为49152,,这表明应该将该TCP报文段的数据载荷部分,也就是HTTP响应报文交付给用户PC中的HTTP客户端进程,HTTP 客户端进程解析HTTP响应报文的内容,并在网页浏览器中进行显示。

TCP连接断开

最后客户端和服务器通过四次挥手终止 TCP 连接。

键入网址到网页显示,期间发生了什么(层次描述)

  • 孤单小弟——HTTP
  • 真实地址查询——DNS
  • 指南小帮手——协议栈
  • 可靠传输——TCP
  • 远程定位——IP
  • 两点运输——MAC
  • 出口——网卡
  • 送别者——交换机
  • 出境大门——路由器
  • 互相扒皮——服务器于客户端

TCP/IP数据链路层的交互过程是怎么样的

网络层等在数据链路层用MAC地址作为通信目标,数据包到达网络层等往数据链路层发送的时候,首先回去ARP缓存表去查找ip对应的MAC地址,如果查到了,就将此ip对应的MAC地址封装到链路层数据包 的包头。如果缓存中没有找到,则会发起一个广播,who is ip xxx tell ip xxxx,所有收到广播的机器看 到这个ip是不是自己的,如果是自己的,则以单播的形式将自己的mac地址回复给请求机器

用MAC地址作为通信目标,数据到达数据链路层时

首先,去ARP缓存表中查找ip地址对应的MAC地址,如果有,将对应的MAC封装

若没有,发起广播,收到广播如果ip是自己的,就把MAC单播出去

传递到IP层怎么知道报文该给哪个应用程序,它怎么区分UDP报文还是TCP报文

根据端口继续区分需接受的程序; 根据ip协议头中标识字段:UDP 17 、TCP 6

搜索baidu,会用到计算机网络中的什么层?每层是干什么的?

浏览器中输入URL

浏览器要将URL解析为IP地址,解析域名就要用到DNS协议,首先主机会查询DNS的缓存,如果没有就 给本地DNS发送查询请求。DNS查询分为两种方式,一种是递归查询,一种是迭代查询。如果是迭代查 询,本地的DNS服务器,向根域名服务器发送查询请求,根域名服务器告知该域名的一级域名服务器, 然后本地服务器给该一级域名服务器发送查询请求,然后依次类推直到查询到该域名的IP地址。DNS服 务器是基于UDP的,因此会用到UDP协议。

得到IP地址后,浏览器就要与服务器建立一个http连接。因此要用到http协议,http协议报文格式上面 已经提到。http生成一个get请求报文,将该报文传给TCP层处理,所以还会用到TCP协议。如果采用 https还会使用https协议先对http数据进行加密。TCP层如果有需要先将HTTP数据包分片,分片依据路 径MTU和MSS。TCP的数据包然后会发送给IP层,用到IP协议。IP层通过路由选路,一跳一跳发送到目的 地址。当然在一个网段内的寻址是通过以太网协议实现(也可以是其他物理层协议,比如PPP,SLIP),以 太网协议需要直到目的IP地址的物理地址,有需要ARP协议。

其中:

1、DNS协议,http协议,https协议属于应用层

应用层是体系结构中的最高层。应用层确定进程之间通信的性质以满足用户的需要。这里的进程就是指 正在运行的程序。应用层不仅要提供应用进程所需要的信息交换和远地操作,而且还要作为互相作用的 应用进程的用户代理,来完成一些为进行语义上有意义的信息交换所必须的功能。应用层直接为用户的 应用进程提供服务。

2、TCP/UDP属于传输层

传输层的任务就是负责主机中两个进程之间的通信。因特网的传输层可使用两种不同协议:即面向连接 的传输控制协议TCP,和无连接的用户数据报协议UDP。面向连接的服务能够提供可靠的交付,但无连 接服务则不保证提供可靠的交付,它只是“尽最大努力交付”。这两种服务方式都很有用,备有其优缺 点。在分组交换网内的各个交换结点机都没有传输层。

3、IP协议,ARP协议属于网络层

网络层负责为分组交换网上的不同主机提供通信。在发送数据时,网络层将运输层产生的报文段或用户 数据报封装成分组或包进行传送。在TCP/IP体系中,分组也叫作IP数据报,或简称为数据报。网络层的 另一个任务就是要选择合适的路由,使源主机运输层所传下来的分组能够交付到目的主机。

4、数据链路层

当发送数据时,数据链路层的任务是将在网络层交下来的IP数据报组装成帧,在两个相邻结点间的链路 上传送以帧为单位的数据。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制、以 及流量控制信息等)。控制信息使接收端能够知道—个帧从哪个比特开始和到哪个比特结束。控制信息 还使接收端能够检测到所收到的帧中有无差错。

5、物理层

物理层的任务就是透明地传送比特流。在物理层上所传数据的单位是比特。传递信息所利用的一些物理 媒体,如双绞线、同轴电缆、光缆等,并不在物理层之内而是在物理层的下面。因此也有人把物理媒体 当做第0层。

请你说一说IP地址作用,以及MAC地址作用

MAC地址是一个硬件地址,用来定义网络设备的位置,主要由数据链路层负责。而IP地址是IP协议提供 的一种统一的地址格式,为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

请问你有没有基于做过socket的开发?具体网络层的操作该怎么做?

服务端:socket-bind-listen-accept 客户端:socket-connect

请你来说一下GET和POST的区别

  1. get参数通过url传递,post放在request body中。
  2. get请求在url中传递的参数是有长度限制的,而post没有。
  3. get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息。
  4. get请求只能进行url编码,而post支持多种编码方式。
  5. get请求会浏览器主动cache,而post支持多种编码方式。
  6. get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留。
  7. GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制, 导致 他们在应用过程中体现出一些不同。
  8. GET产生一个TCP数据包;POST产生两个TCP数据包

2MSL等待状态?

TIME_WAIT

对一个具体实现所给定的 MSL 值,处理的原则是:当 TCP 执行一个主动关闭,并发回最后一个 ACK ,该连接必须在TIME_WAIT 状态停留的时间为 2 倍的 MSL 。这样可让 TCP 再次发送最后的 ACK 以防这个 ACK丢失(另一端超时并重发最后的FIN )。

这种 2MSL 等待的另一个结果是这个 TCP 连接在 2MSL 等待期间,定义这个连接的插口(客户的 IP 地址和端口号,服务器的IP 地址和端口号)不能再被使用。这个连接只能在 2MSL 结束后才能再被使用。

为什么TIME_WAIT状态需要经过2MSL才能返回到CLOSE状态?

第一种回答

理论上,四个报文都发送完毕,就可以直接进入 CLOSE 状态了,但是可能网络是不可靠的,有可能最后一个ACK 丢失。所以 TIME_WAIT 状态就是用来重发可能丢失的 ACK 报文 。

TIME_WAIT 状态就是用来重发可能丢失的 ACK 报文 。

第二种回答

对应这样一种情况,最后客户端发送的 ACK = 1 给服务端的 过程中丢失 了,服务端没收到,服务端怎么认为的?我已经发送完数据了,怎么客户端没回应我?是不是中途丢失了?然后服务端再次发起断开连接的请求,一个来回就是2MSL 。

客户端给服务端发送的 ACK = 1 丢失, 服务端等待 1MSL 没收到然后重新发送消息需要 1MSL 。如果再次接收到服务端的消息,则重启 2MSL 计时器发送确认请求 。客户端只需等待 2MSL ,如果没有再次收到服务端的消息,就说明服务端已经接收到自己确认消息;此时双方都关闭的连接,TCP 四次挥手完毕。

HTTP 请求中的常见字段

  1. 请求行(Request Line)
    • 方法(Method):如GET、POST、PUT、DELETE等。
    • URL(Uniform Resource Locator):请求的资源位置。
    • HTTP版本(HTTP Version):如HTTP/1.1。
  2. 请求头(Request Headers)
    • Host:请求的目标域名。
    • User-Agent:发出请求的浏览器或其他客户端的信息。
    • Accept:客户端可以处理的媒体类型。
    • Accept-Language:客户端接受的自然语言。
    • Content-Type:发送数据的类型(仅用于POST和PUT请求)。
    • Content-Length:请求体的长度(以字节为单位)。
    • Authorization:身份验证信息。
    • Cookie:存储的会话信息。
    • Cache-Control:控制缓存行为。
    • Connection:控制是否保持网络连接。
    • Referer:包含生成请求的页面的URL。
    • Origin:请求发起的源(用于CORS检查)。

HTTP 如何禁用缓存?如何确认缓存?

*HTTP/1.1* *通过* *Cache-Control* *首部字段来控制缓存。*

禁止进行缓存

no-store 指令规定不能对请求或响应的任何一部分进行缓存。

Cache-Control: no-store

强制确认缓存

no-cache 指令规定缓存服务器需要先向源服务器验证缓存资源的有效性,只有当缓存资源有效时才能使用该缓存对客户端的请求进行响应。

Cache-Control: no-cache

应用层协议 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

网络层协议外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对称密钥加密的优点缺点?

对称密钥加密(Symmetric-Key Encryption),加密和解密使用同一密钥。

  • 优点:运算速度快
  • 缺点:无法安全地将密钥传输给通信方

非对称密钥加密你了解吗?优缺点?

非对称密钥加密,又称公开密钥加密(Public-Key Encryption),加密和解密使用不同的密钥。

公开密钥所有人都可以获得, 通信发送方获得接收方的公开密钥之后,就可以使用公开密钥进行加密接收方收到通信内容后使用私有密钥解密

非对称密钥除了用来加密,还可以用来进行签名。因为私有密钥无法被其他人获取,因此通信发送方使用其私有密钥进行签名,通信接收方使用发送方的公开密钥对签名进行解密,就能判断这个签名是否正确。

  • 优点:可以更安全地将公开密钥传输给通信发送方;
  • 缺点:运算速度慢。

可以解释一下 RTO,RTT和超时重传分别是什么吗?

超时重传:发送端发送报文后若长时间未收到确认的报文则需要重发该报文。可能有以下几种情况:

  • 发送的数据没能到达接收端,所以对方没有响应。
  • 接收端接收到数据,但是ACK报文在返回过程中丢失。
  • 接收端拒绝或丢弃数据。

RTO:从上一次发送数据,因为长期没有收到ACK响应,到下一次重发之间的时间。就是重传间隔

  • 通常每次重传RTO是前一次重传间隔的两倍,计量单位通常是RTT。例:1RTT,2RTT,4RTT,8RTT…
  • 重传次数到达上限之后停止重传。

RTT:数据从发送到接收到对方响应之间的时间间隔,即数据报在网络中一个往返用时。大小不稳定。

CSRF攻击?你知道吗

Cross-site request forgery 跨站点请求伪造,指攻击者通过跨站请求,以合法的用户的身份进行非法操作。可以这么理解CSRF攻击:攻击者盗用你的身份,以你的名义向第三方网站发送恶意请求。CRSF能做的事情包括利用你的身份发邮件,发短信,进行交易转账,甚至盗取账号信息。

IP地址范围外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

先将IP地址和子网掩码分别转成二进制形式,然后将IP地址与子网掩码按位做与运算,将运算结果表示为点分十进制

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

汉明码

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在TCP/IP五层模型中,网络层提供的是

有连接和无连接的区分是看该协议是否使用连接,即只需要看其首部是否建立了连接的字段;若分组首部含有序号以及校验数据部分的校验和字段,则是可靠的,否则不可靠。

在TCP/IP五层模型中,网络层采用的是IP,IP数据首部没有类似于SYN、FIN等建立连接的字段,因此是无连接的;IP分组中没有序号以及校验数据部分的校验和字段,因此是不可靠的;IP分组中头部含有源IP和目的IP地址,因此不是一个虚电路号,故网络层采用的数据报服务。综上,网络层提供的是无连接不可靠的数据报服务,选C

802.11

【通信协议解析】WiFi协议解析-CSDN博客

无线通信

嵌入式无线网络应用与开发介绍 - 知乎 (zhihu.com)

WiFi- 802.11

传输距离在 100~300M,速率可达 300Mbps,功耗 10-50mA。

一般而言,5GHz频段的WiFi信号对于障碍物的穿透能力弱于2.4GHz频段的 WiFi信号, 5GHz频段WiFi信号的数据传输速率高于2.4GHz频段的WiFi信号。

短距离无线传输技术,可以随时接入无线信号,移动性强,比较适合在办公室及家庭的环境下应用。

由于 Wi-Fi 采用的是射频技术,通过空气发送和接收数据,使用无线电波传输数据信号,比较容易受到外界的干扰。

数据包在传送的过程中都可以被外界检测或接收,信息安全是个隐患,虽然数据可以经过加密后传输,但在数据包足够多的情况下,仍有被黑客破解的可能。

WIFI基础网有哪些特点

  1. 基于AP组建的基础无线网络
  2. 由AP创建,众多STA加入所组成
  3. AP是整个网络的中心
  4. 各STA间不能直接通信,需经AP转发

总结:速度快,距离远,安全性差,功耗高,成本高

简单介绍一下WiFi

"WiFi(Wireless Fidelity)是一种无线局域网络(WLAN)技术,允许设备通过无线信号进行互联和通信。它是基于 IEEE 802.11 系列标准的无线通信技术,广泛应用于家庭、办公室、公共场所等各种场景。

WiFi 主要特点包括:

  1. 无线连接: WiFi 技术通过无线信号进行设备之间的连接和通信,不需要使用传统的有线电缆,具有更大的灵活性和便利性。

  2. 高速数据传输: WiFi 提供了高速的数据传输速率,能够满足多种应用的通信需求。最新的 WiFi 标准(如 IEEE 802.11ac 和 802.11ax)支持更高的速率和更大的覆盖范围。

  3. 广泛应用: WiFi 技术被广泛应用于家庭网络、企业网络、公共场所、移动通信等各个领域,为用户提供了便捷的无线网络连接。

  4. 安全性: WiFi 提供了多种安全机制,如加密技术(如WPA2/WPA3)、访问控制、身份验证等,以确保通信数据的安全性和隐私保护。

  5. 多种工作模式: WiFi 设备支持多种工作模式,如基础设施模式、Ad-hoc 模式、Mesh 网络模式等,可以根据不同的场景和需求进行灵活配置和部署。

zigbee- 802.15.4

传输距离 50-300M,速率 250kbps,功耗 5mA,最大特点是可自组网,网络节点数最大可达 65000 个。

1)数据传输速率低

10Kb/s~250Kb/s,专注于低速率传输应用;

2)功耗低

在低功耗待机模式下,两节普通 5 号电池可使用 6~24 个月;

3)成本低

Zigbee 数据传输速率低,协议简单,所以大大降低了成本

4)网络容量大

网络可容纳 65000 个设备
  
5)延时短

典型搜索设备时延为 30ms,休眠激活时延为 15ms,活动设备信道接入时延为 15ms。

6)网络的自组织、自愈能力强,通信可靠
  
7)数据安全

Zigbee 提供了数据完整性检查和健全功能,采用 AES-128 加密算法,各个应用可灵活确定其安全属性,ZigBee 技术在低功耗、低成本和组网能力具有无可比拟的应用优势。

8)角色

协调器、路由器、终端

(FFD,全功能设备)(RFD,精简功能设备)

星状拓扑结构,树状,网状

星状拓扑结构特点:
—最简单的一种拓扑形式;
—包含一个协调器结点和一系列的终端节点。
—协调器结点故障将致使整个网络瘫痪。
树状拓扑结构特点:
—可实现网络范围内多跳信息服务。
—具有一定的稳定性和可扩展性。
—不能很好适应外部动态环境;
—任意节点中断或故障将会使部分节点脱离网络。
网状拓扑结构特点:
—具有自组织,自愈的功能。
—具有更加灵活的信息路由规则。

总结:速度慢,可拓展距离,安全性中等,功耗低,成本低

简单介绍一下zigbee

"Zigbee 是一种低功耗、短距离、低数据速率的无线通信协议,专门设计用于物联网(IoT)和无线传感网络(WSN)应用。它建立在 IEEE 802.15.4 标准之上,并定义了网络层、应用层和安全层协议,以支持在小范围内的设备之间进行可靠通信。

Zigbee 主要特点包括:

  1. 低功耗: Zigbee 设备采用低功耗设计,能够长时间运行,适用于需要长期离线的电池供电设备。

  2. 短距离通信: Zigbee 的通信距离通常在 10 至 100 米之间,适用于局域网或个人区域网络。

  3. 低数据速率: Zigbee 的数据速率相对较低,通常在 20kbps 到 250kbps 之间,但足以满足大多数物联网设备的通信需求。

  4. 网状拓扑结构: Zigbee 网络通常采用网状拓扑结构,允许设备之间通过多跳路由进行通信,提高了网络的稳定性和覆盖范围。

  5. 多种应用领域: Zigbee 技术广泛应用于智能家居、工业自动化、智能医疗、环境监测等领域,为这些领域的设备提供了可靠的无线连接和互联能力。

802.15.4

802.15.4协议简介 - SunnyPoem - 博客园 (cnblogs.com)

工作中的网络知识之三802.3和802.11_51CTO博客_802.11 802.3

ZigBee学习——概述_zigbee协议-CSDN博客

通过Wireshark来了解Zigbee协议_wireshark zigbee-CSDN博客

  • 应用层
  • 应用支持子层
  • 网络层
  • 介质访问层
  • 物理层

物理层

该层负责无线电频率的选择,数据的传输和接收,以及无线信号的调制和解调。

主要功能

1.激活和去激活无线电收发器:物理层控制无线电频率接收器和发射器,确保它们在需要的时候启动,并在不需要的时候关闭以节省功耗。
2.信道选择:物理层可以根据环境和网络配置选择一个特定的无线电信道来通信。
3.能量检测(Energy Detection, ED):物理层可以测量当前信道上的RF能量,以便检测信道是否被占用。
4.链路质量指示(Link Quality Indication, LQI):物理层可以估计接收数据包的质量,以便为网络层提供关于信道质量的反馈。
5.数据的发送和接收:物理层负责将数据从MAC层传输到无线电频道,并从无线电频道接收数据传输到MAC层。
6.调制和解调:物理层将数字数据信号转换为适合无线传输的模拟信号,也就是将数据包转换为无线电波。接收端的物理层则负责将无线电波转换回数据包。

IEEE 802.15.4定义了多个频率带,包括868 MHz、915 MHz和2.4 GHz,每个频率带有多个信道。例如,2.4 GHz频带定义了16个信道,每个信道之间的间隔为5 MHz。每个信道都定义了特定的调制类型,例如2.4 GHz频带使用的是偏移键控(OQPSK)调制。

MAC层

IEEE 802.15.4标准中的媒体访问控制层(MAC)协议主要负责帧的组成、帧的发送和接收信道访问机制以及网络连接和丧失连接的处理。以下是MAC层的一些主要职责:

1.帧格式与处理:MAC层定义了一个特定的帧格式,用于数据的发送和接收。这个帧格式包括一些关键的信息,如源地址,目的地址,负载数据等。此外,MAC层还负责处理发送和接收的帧。
2.信道访问机制:MAC层利用 CSMA/CA(载波监听多路访问和碰撞避免)机制来控制设备的信道访问,并尽可能地避免信道冲突。
3.网络和设备的寻址:MAC层为每个设备分配一个唯一的地址,并处理目标设备的寻址过程。
网络连接和丧失连接的处理:MAC层负责处理设备的网络连接过程,例如通过发送和接收请求与应答来形成网络。它还会处理设备的丧失连接状态,例如,当设备离开网络或网络不可用时。
4.能源管理:MAC层也参与到设备的能源管理中,例如,它可以将设备设置为低功耗模式,以节省电池电力。
5.安全:MAC层还可以提供一些安全功能,例如数据的加密与解密,以及通过验证接收帧的完整性来防止数据篡改。

与Internet网络中MAC层有什么不同?

  1. 用途:IEEE 802.15.4是为低速率、低功耗和短距离无线通信设计的,例如传感器网络、自动化设备等。而Ethernet 和 Wi-Fi 则用于创建高速率、高带宽的有线和无线局域网。
  2. 帧结构:IEEE 802.15.4和以太网的帧结构不同。例如,IEEE 802.15.4的一般数据帧包括一些特定的字段,如帧类型、源地址和目标地址等。而以太网的帧结构包括目标MAC地址、源MAC地址、类型/长度和负载数据等。
  3. 信道访问机制:IEEE 802.15.4使用CSMA/CA来避免在无线通信中的碰撞。然而,以太网使用了稍有不同的CSMA/CD(载波侦听多路访问和碰撞检测)机制,它可以在碰撞发生后再进行碰撞处理,因为以太网通信环境比无线环境下的难度要小。
  4. 网络拓扑:IEEE 802.15.4支持星形和对等网络等多种网络拓扑,以适应不同的应用需求。而以太网或Wi-Fi主要使用星形网络拓扑。
  5. 能效:由于目标应用的不同,IEEE 802.15.4特别关注低功耗设计,因此它包含一些节能功能,例如设备能够按照预定的时间表进入休眠模式。而这在以太网和Wi-Fi中并不常见。
    虽然这两者都在MAC层完成定址、帧处理和网络访问控制等基础功能,但基于其应用场景的差异,设计实现上有显著不同。

网络层

建立网络,处理节点进入和离开,分配地址,提供路由

应用支持子层

维护绑定表,传输信息,定义一个设备的作用,确定服务,建立安全连接

蓝牙

传输距离 2-30M,速率 1Mbps,功耗介于 Zigbee 和 WIFI 之间。

蓝牙技术的出现使得短距离无线通信成为可能,但其协议较复杂、功耗高、成本高等特点不太适用于要求低成本、低功耗的工业控制和家庭网络。

尤其蓝牙最大的障碍在于传输范围受限,一般有效的范围在 10 米左右,抗干扰能力不强、信息安全问题等问题也是制约其进一步发展和大规模应用的主要因素。

总结:速度较快,可组建meshh网络,安全性高,功耗中等,成本中等

性能对比

传输距离:

WIFI > ZigBee > 蓝牙

功耗:

WIFI > 蓝牙 > ZigBee,后两者仅靠电池供电即可满足要求。

传输速率:

WIFI > 蓝牙 > ZigBee

ZigBee 的优势是低功耗和自组网;

蓝牙的优势组网简单。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

MQTT

Wireshark抓包工具配置以及MQTT抓包分析_wireshark 抓取4g模组mqtt通信数据-CSDN博客

MQTT(消息队列遥测传输)是一个基于发布/订阅范式的消息协议,工作在TCP/IP协议族上。 为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的

MQTT协议的特点

  • 轻量级和简单:MQTT协议使用简单的二进制消息格式,协议头部开销小,适用于低带宽和网络不稳定的环境。
  • 低功耗:MQTT协议设计用于移动设备和物联网等资源受限的场景,可以在较短的时间内处理大量消息,从而节省设备的能耗。
  • 异步通信:MQTT协议基于发布-订阅模型,消息的发送和接收是异步的,不需要对等通信,提升了系统的扩展性和灵活性。
  • 持久性:MQTT协议支持消息持久性,即使接收方离线,消息也会保存在服务器上,并在其上线后立即发送。

通讯方式

使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;

1.在MQTT通讯过程中,有三种身份,分别是发布者(publisher)、代理(broker)、和订阅者(subscriber)。

2.MQTT传输的消息分为:主题(topic)和负载(payload)两部分:

客户端向代理发布topic的消息到代理(MQTT服务程序),代理将该消息推送到所有订阅该topic的客户端。

(发布消息的客户端就是发布者,订阅topic消息的客户端就是订阅者)

帧格式

在MQTT协议中,一个MQTT数据包由:固定头(Fixed header)、可变头(Variable header)、消息体(payload)三部分构成。

协议帧 = 固定头部+可变头部+消息体

Message type(报文类型)有如下种类:

CONNECT//请求连接 1

CONNACK//请求应答 2

PUBLISH//发布消息 3

PUBACK//发布应答 4

PUBREC//发布已接收,保证传递1 5

PUBREL//发布释放,保证传递2 6

PUBCOMP//发布完成,保证传递3 7

SUBSCRIBE//订阅请求 8

SUBACK//订阅应答 9

UNSUBSCRIBE//取消订阅

UNSUBACK//取消订阅应答

PINGREQ//ping请求

PINGRESP//ping响应

DISCONNECT//断开连接

QoS

“至多一次”(QoS==0),消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。

“至少一次”(QoS==1),确保消息到达,但消息重复可能会发生。

“只有一次”(QoS==2),确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量。

MQTT通信过程

答案:

1.创建客户端

2.指定IP地址和端口号

3.进行连接

4.发布主题或订阅主题

5.数据传输

6.断开连接

  • 28
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

隼尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值