测试计算机网络面试题


1. 三次握手,四次挥手过程

三次握手:
第一次握手:客户端发送syn包(syn=1,seq=x)到服务器,并进入SYN_SENT状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。


四次挥手:断开一个TCP连接则需要“四次挥手”。
第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不 会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。
第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。


2. OSI,TCP/IP,五层协议的体系结构,以及各层协议

OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。
五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。
每层作用
物理层:传输二进制比特流
数据链路层:负责将上层数据封装成帧
网络层:负责路由寻址和广播 ;广播:发送消息和接收消息
*传输层:负责建立一个可靠的端到端的连接;端到端:发送到接收 ;过程:建立、维护、撤销(拆除)
会话层:负责建立维护拆除会话,为端应用之间提供控制功能(可靠性)
表示层:完成对传输数据格式转换:格式化;发:加密;接:解密;发:压缩,接:解压缩
应用层:对应用软件提供网络支持


3. cookie、session、token

cookie:在客户端存储在客户端用于存储会话信息的
session:在服务器端,记录用户的请求状态,一般默认时间30min
session_id会存在cookie中,每次请求cookie中所有信息都会传递给服务器,服务器通过session_id来识别是否是同一个用户请求,不是同一个用户的话,就会要求重新登录
token:访问权限,保存在客户端本地
鉴权:访问的接口是否正常,是否非法访问绕过前端。 防止跳过页面直接访问接口**token**
授权:是否具有访问接口的权限。 唯一全局动态的 。


4. 常用状态码

100系列:请求已收到继续处理;

200系列:表示成功

200:正常,服务器正确响应了请求
300系列:资源重定向;

301:永久重定向;请求的网页已永久移动到新位置
302:2临时重定向;被请求文档已经临时移至别处,此文档新的url在location响应头中给出
303:浏览器对于POST的响应进行重定向至新的url
307:浏览器对于GET的响应重定向至新的url
400系列:客户端错误:

400:错误请求;服务器不理解请求的语法。
401:未授权;如请求参数、方法、格式等
403:拒绝访问;服务器理解客户的请求,但拒绝处理它(没有权限)
404:请求资源不存在
500系列:服务器端出错

500:服务器内部错误
501:尚未实施;服务器不具备完成请求的功能
502:服务器网关错误
503:服务器由于维护或者负载过重未能应答
504请求超时


5. http请求头和响应头

http请求及其结构:
请求信息包含:请求行(request) 请求头部header 、空行和请求数据组成
响应及其结构
响应组成:状态行、响应头报文、空行和响应正文
6. IP地址的分类

A类地址:以0开头, 第一个字节范围:1~126(1.0.0.0 - 126.255.255.255);

B类地址:以10开头, 第一个字节范围:128~191(128.0.0.0 - 191.255.255.255);

C类地址:以110开头, 第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);

D类地址:以1110开头,第一个字节范围:224~239(224.0.0.0 - 239.255.255.255);(作为多播使用)

E类地址:保留

以下是留用的内部私有地址:

A类 10.0.0.0–10.255.255.255
B类 172.16.0.0–172.31.255.255

C类 192.168.0.0–192.168.255.255

7. 常见一些词汇

ARP:地址解析协议(Address Resolution Protocol)
RARP:反地址解析协议(Reverse Address Resolution Protocol)将ip地址转换为物理地址
FTP:文件传输协议(File Transfer Protocol)
HTTP:超文本传输协议(Hyper Text Transfer Protocol)
TCP:传输控制协议(Transmission Control Protocol)
UDP:用户数据报协议(User Datagram Protocol)


8. TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?
建立连接的过程是利用客户服务器模式,假设主机A为客户端,主机B为服务器端。
(1)TCP的三次握手过程:主机A向B发送连接请求;主机B对收到的主机A的报文段进行确认;主机A再次对主机B的确认进行确认。
(2)采用三次握手是为了防止失效的连接请求报文段突然又传送到主机B,因而产生错误。失效的连接请求报文段是指:主机A发出的连接请求没有收到主机B的确认,于是经过一段时间后,主机A又重新向主机B发送连接请求,且建立成功,顺序完成数据传输。考虑这样一种特殊情况,主机A第一次发送的连接请求并没有丢失,而是因为网络节点导致延迟达到主机B,主机B以为是主机A又发起的新连接,于是主机B同意连接,并向主机A发回确认,但是此时主机A根本不会理会,主机B就一直在等待主机A发送数据,导致主机B的资源浪费。
(3)采用两次握手不行,原因就是上面说的失效的连接请求的特殊情况。

9. 常用四种请求方法

get:
post
put
delete
get和post区别

GET - 从指定的资源请求数据。请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接
POST - 向指定的资源提交要被处理的数据。POST请求会把请求的数据放置在HTTP请求包的请求体中
10. http和https区别

HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
HTTPS和HTTP的区别主要如下:
https需要到cat申请证书,需要交费
http是超文本传输协议,信息明文传输,https具有安全性的ssl加密传输协议
http和https使用完全不同的连接方式和端口号,前者80,后者443
http连接简单、无状态;https可进行加密传输、身份验证网络协议


11. 请你说一下分布式和集群的概念。
分布式:是指将不同的业务分布在不同的地方,
集群:是指将几台服务器集中在一起,实现同一业务。

分布式中的每一个节点,都可以做集群,而集群并不一定就是分布式的。集群有组织性,一台服务器垮了,其它的服务器可以顶上来,而分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。

12. 路由寻址(路由):
在路由器中,从一个接口接收到数据包,根据数据包所携带的目的地址进行定向转发到另一个接口的过程。

13. HTTP协议工作原理
浏览器作为HTTP客户端通过URL向http服务端即web服务器发送所有请求
web服务器根据接收到的请求后,向客户端发送响应信息

猜你喜欢

转载自blog.csdn.net/m0_57028677/article/details/128879160