网络相关问题

1. 介绍下网络分层情况
TCP/IP四层协议:应用层、传输层、网络层、链路层。

OSI七层模型,即物理层数据链路层、网络层、传输层会话层表示层和应用层。

2. tcp的拥塞控制怎么做的

慢启动、拥塞避免、快重传、快恢复

慢开始和拥塞避免:慢开始的慢是指初始cwnd=1。开始cwnd=1,发送报文M1,如果收到确认M1,cwnd=2,发送M2,M3(慢开始cwnd成倍增长,接下来会变为4,8.....)。但cwnd有个上限ssthresh,小于这个上限时维持慢开始,大于这个上限时进行拥塞避免,cwnd开始线性增长,而不像慢开始那样指数增长,发生拥堵时,将ssthresh/2。cwnd变为1,再次执行慢开始。

快重传和快恢复:快重传规定接收方收到失序的报文段立即发出重复确认,发送方连续收到3个重复确认的M2,立即重传M3。快恢复:如果收到了三个重复确认,将cwnd和ssthresh调整成当前cwnd的一半。减半后执行拥塞避免线性增大。
 

3. TCP三次握手

三次握手就是要建立连接的双方验证自身发送与接收功能和对方发送与接收功能。

A向B发送信息。(A此时什么都无法确认,B可以确认自身接收功能及对方发送功能)

B向A进行确认回复。(A可以全部确认了,B可以确认自身接收功能及对方发送功能)

A向B进行确认回复。(全部都可以确认了,连接没有问题)

4. 为什么等待两个MSL?
因为确认回复可能会丢包,等待2MSL,另一边在没有收到回复后的重发这边可以接收到,如果不等的话,无法确保之前的信息已经全部消失掉,可能会对后来的造成影响。

5. tcp中close wait是一个什么状态,怎么理解的
等待结束,客户端发送了FIN,但是服务端忙于读或者写(处理未完成的客户端请求),没有及时发送FIN,此时可能会有少量的close wait。

6. close wait过多是什么原因
close_wait 按照正常操作的话应该很短暂的一个状态,接收到客户端的fin包并且回复客户端ack之后,会继续发送FIN包告知客户端关闭关闭连接,之后迁移到Last_ACK状态。但是close_wait过多只能说明没有迁移到Last_ACK,也就是服务端是否发送FIN包,只有发送FIN包才会发生迁移,所以问题定位在是否发送FIN包。FIN包的底层实现其实就是调用socket的close方法,这里的问题出在没有执行close方法。说明服务端socket忙于读写。
7. time wait过多是什么原因
但如果短时间内(例如1s内)进行大量的短连接,则可能出现这样一种情况:客户端所在的操作系统的socket端口和文件描述符被用尽,系统无法再发起新的连接。

8. tcp和udp的区别
1、udp是无连接的,tcp是面向连接的;2、udp是不可靠传输,tcp是可靠传输;3、udp是面向数据报,tcp是面向字节流。4.udp只有接收缓存区,tcp有接收缓存区和发送缓存区。

9. dns解析
DNS域名系统(Domain Name System缩写DNS,Domain,Name被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

10. get和post的区别
(1)post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中) 
(2)post发送的数据更大(get有url长度限制) 
(3)post能发送更多的数据类型(get只能发送ASCII字符) 
(4)post比get慢 
(5)post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都是get提交),目的是资源的获取,读取数据 

11. url 和 uri 的区别

URL:(Uniform/Universal Resource Locator 的缩写,统一资源定位符)。

URI:(Uniform Resource Identifier 的缩写,统一资源标识符)(代表一种标准)。

二者的区别在于,URI 表示请求服务器的路径,定义这么一个资源。而 URL 同时说明要如何访问这个资源

12. 请求重定向和请求转发的区别
1、请求转发是服务器行为、重定向是客户端浏览器行为
2、请求转发是request对象调用方法、重定向是response对象调用方法
3、请求转发只有一次请求所以可以实现request域对象中的数据共享,而重定向是多次请求、多次响应
4、请求转发的效率要高于重定向
5、请求转发url地址栏不变,而重定向会发生变化
6、既然请求转发是服务器内部的行为,所以只能访问服务器内部资源!而重定向既然是浏览器行为,地址栏会变,所以可以访问服务器外部资源!

13. HTTP协议的格式
首行:请求行/响应行—>包含了本次请求与响应的关键描述,请求方法,协议版本,url,处理结果。
头部:关于请求或者响应或者正文的一些描述字段,由键值对组成。Key: val\r\nkey: val ……….
空行:\r\n,与头部的最后一个Key: val \r\n组成两个连续的\r\n\r\n—>作为头部结束,间隔正文。
正文:提交给服务端的数据,或者服务端响应的数据
14. 握手过程中会遇到哪些攻击

1、TCP三次握手可能会出现SYN Flood攻击。

2、TCP三次握手可能会出现Land攻击。

3、Connection Flood攻击。

15. 输入网址之后,输⼊url 的整个过程

1.对url进行效验,通过效验后进行DNS解析。

2.TCP连接

3.数据封装发送。

4.服务器解析消息,执行业务处理,将结果封装后发送给客户端。

5.客户端收到结果,浏览器使用自己的引擎进行解析和渲染,展现给用户。

6.断开连接。
16. http协议说⼀下,和https有什么区别

一、传输信息安全性不同

1、http协议:是超文本传输协议,信息是明文传输。如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。

2、https协议:是具有安全性的ssl加密传输协议,为浏览器和服务器之间的通信加密,确保数据传输的安全。

二、连接方式不同

1、http协议:http的连接很简单,是无状态的。

2、https协议:是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。

三、端口不同

1、http协议:使用的端口是80。

2、https协议:使用的端口是443.

四、证书申请方式不同

1、http协议:免费申请。

2、https协议:需要到ca申请证书,一般免费证书很少,需要交费。

17. 对称加密和非对称加密

(1) 对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。

(2) 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。

(3) 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值