计算机网络

2020-09-19  本文已影响0人  头像不是我

问题总结
1、cookie和session的区别
2、TCP的三次握手过程?为什么要三次握手?
【三次握手的过程】【三次握手的原因】
3、TCP四次挥手
【TCP四次挥手的过程】
【为什么连接的时候是三次握手,关闭的时候却是四次握手?】
【等待 2MSL 的原因】
4、TCP和UDP的区别
5、HTTP 和 HTTPS的区别
6、TCP的拥塞控制
7、滑动窗口
8、HTTP请求中GET和POST的区别

计算机网络详解

🌟一、cookie和session的区别(农+1,)

(1)cookie只能存储ASCII码,而session可以存储任何类型的数据
(2)session存储在服务器中,而cookie存储在客户端中,容易被恶意查看
(3)session运行依赖于session ID,而session ID为存在cookie中的JSESSIONID。如果浏览器禁用了cookie,同时session也会失效(可以通过其他方法实现,比如在URL中传递session)

待增加:cookie和session的机制是什么?

🌟二、TCP的三次握手过程?为什么要三次握手?(农+1)

1、三次握手的过程

(1)建立TCP连接时,客户端发送syn包到服务器,此时客户端进入SYN_SENT状态,等待服务器确认。
(2)服务器收到syn包,必须确认客户的SYN,并向客户端发送SYN/ACK包,此时服务器进入SYN_RECV状态。
(3)客户端收到SYN/ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入established状态,TCP连接成功,完成三次握手

2、三次握手的原因(农+1)

(1)从信息对等角度看,客户端和服务器端分别要确认自己的发送和接受能力均正常,第二次握手后,服务器还不能确认自己 的发送能力和对方的接收能力。
(2)客户端的超时连接请求可能会在双方释放连接后后到达服务器,服务器端会误以为是客户端发送了新的请求,然后创建连接,造成服务器资源的浪费。


image.png

🌟三、TCP四次挥手(农+1)

【问题1】TCP四次挥手的过程

(1)当客户端没有要发送的数据时会向服务器端发送终止连接报文FIN,发送后客户端进入FIN-WAIT-1状态。
(2)服务器端收到FIN后发给客户端一个ACK确认报文,客户端进入FIN-WAIT-2状态,服务端进入CLOSE-WAIT状态,TCP进入半关闭状态。
(3)当服务器端数据全部发送完毕就向客户端发送终止连接报文FIN,之后服务器端进入LAST-ACK状态。
(4)客户端收到FIN报文后,还需向服务器端发送ACK报文进行再一次确认,发送之后客户端进入TIME-WAIT状态,等到2MSL后进入CLOSED状态,服务器收到确认后进入CLOSED状态

【问题2】为什么连接的时候是三次握手,关闭的时候却是四次握手?

因为当服务器端收到客户端的SYN的连接请求报文之后,可以直接发送SYN+ACK报文,其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当服务器端收到FIN报文时,很可能并不会直接关闭SOCKET,所以只能先回复一个ACK报文,告诉客户端收到了FIN报文的消息,只有等到服务器端数据全部发送完毕,服务器端才向客户端发送FIN报文,所以需要四次挥手。

【问题3】等待 2MSL 的原因

(1)MSL是最大报文寿命,等待2MSL可以保证客户端发送的最后一个确认报文ACK被服务器端接收,如果该报文丢失,服务器端会超时重传之前的FIN报文,保证服务器端进入正常的CLOSED状态。
(2)2MSL后,本连接中的所有报文就会从网络中消失,防止已失效请求造成异常。

🌟四、TCP和UDP的区别

1、TCP是面向连接的,发送数据之前必须建立连接,发送某些预备报文段;UDP是无连接的,发送数据之前不需要建立连接。
2、TCP连接是点对点的,只支持单个发送方和单个接收方的连接;UDP支持一对一、一对多和多对多通信。
3、TCP提供可靠的交付服务,通过TCP传送的数据无差错、不丢失、不重复,按序到达;UDP适用尽最大努力交付,不保证可靠性,主机不需要维持复杂的连接状态。
4、TCP是面向字节流的,TCP不保证接收方的数据块和发送方数据块大小对应,但接收方的字节流必须保证和发送方的字节流完全一样。应用程序必须有能力识别收到的字节流,把它还原成应用层数据。UDP面向报文,对应用层添加首部后就交付IP层。

总结:TCP是面向连接的,点对点的,可靠的字节流服务;UDP是面向无连接的,支持一对一、一对多、多对多通信的,不可靠的数据报服务。

🌟五、HTTP 和 HTTPS的区别(农+1)

1、HTTP是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准,用于从WWW服务器传输超文本到本地浏览器的传输协议。(它可以使浏览器更加高效,使网络传输减少)
2、HTTPS是以安全为目标的HTTP通道,即在HTTP传输上增加了SSL安全套接字层,通过机密性、数据完整性、身份鉴别为HTTP事务提供安全保证。
3、HTTPS过程
(1)客户端使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
(2)Web服务器收到客户端请求后,会讲将网站的证书信息(证书包含公钥)传送一份给客户端。
(3)客户端浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息的加密等级。
(4)浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
(5)Web服务器利用自己的私钥解密出会话密钥。
(6)Web服务器利用会话密钥加密与客户端之间的通信。
4、 http和https的区别

🌟六、 TCP的拥塞控制(农+1)

TCP拥塞控制算法:慢启动,拥塞避免,快恢复,快重传
原理请观看视频

有的时候报文段丢失并不是因为网络拥塞,发送方将其认定为网络拥塞容将降低传输效率,此时可以通过快重传和快恢复解决这个问题

🌟七、滑动窗口

滑动窗口以字节为单位。发送端有一个发送窗口,窗口中的序号是允许发送的序号,窗口后沿是以发送且确认的序号,窗口前沿是不允许发送的序号。没有收到确认时,窗口不会移动。当收到确认的序号,即窗口向前移动,将已确认的序号置于窗口的后沿。发送端可以根据自己的状况调整滑动窗口大小,从而控制发送端的接收,进行流量控制。

🌟 八、HTTP请求中,GET和POST的区别

以下情况最好使用POST:

上一篇下一篇

猜你喜欢

热点阅读