admin 管理员组

文章数量: 1086019


2024年5月25日发(作者:excel column)

农行前端面试题

① cookie 只能存储 ASCII 码,而 session 可以存储任何类型的数据。

② session 存储在服务器,而 cookie 存储在客户浏览器中,容易被恶意

查看。。

③ session 的运行依赖 session id,而 session id 存在 cookie 中,叫

做 JSESSIONID。如果浏览器禁用了 cookie ,同时 session 也会失效(可以

通过其它方式实现,比如在 url 中传递 session_id)。

TCP 三次握手的过程?为什么要三次握手?⭐⭐

初始 A 和 B 均处于 CLOSED 状态,B 创建传输进程控制块 TCB 并进

入 LISTEND 状态,监听端口是否收到连接请求。

A 向 B 发送连接请求报文,SYN=1,ACK=0,SYN 不可以携带数据,但

要消耗一个序号,发送后 A 进入 SYN-SENT 同步已发送状态。

B 收到 A 的连接请求报文后,进入 SYN-RCVD 同步已接收状态,如果同

意建立连接就会发送给 A 一个连接响应报文,SYN=1,ACK=1,ACK 可以携

带数据,不携带的话则不消耗序号。

A 收到 B 的确认后还要对该确认再进行一次确认,发送后 A 进入

ESTABLISHED 状态,B 接收到该报文后也进入 ESTABLISHED 状态,客户端

会稍早于服务器端建立连接。

三次握手的原因:

从信息对等角度看,AB 分别要确认自己和对方的发送、接收能力均正常。

第二次握手后 B 还不能确定自己的发送和 A 的接收能力。

A 的超时连接请求可能会在双方释放连接后到达 B,B 会误以为是 A 发

送了新的连接请求,然后创建连接,服务器资源被浪费。

拥塞控制了解嘛?⭐

网络中对资源的需求超过可用量的情况就叫拥塞,当吞吐量明显小于理想吞

吐量时就出现了轻度拥塞。拥塞控制就是减少注入网络的数据,减轻路由器和链

路的负担,这是一个全局性问题,涉及网络中的所有路由器和主机,而流量控制

是一个端到端的问题。

TCP 的拥塞控制算法包括了慢启动、拥塞避免和快恢复。慢启动和拥塞避

免是 TCP 的强制部分,差异在于对收到的 ACK 做出反应时拥塞窗口增加的方

式,慢启动比拥塞避免增加得更快。快恢复是推荐部分,对 TCP 发送方不是必

须的。

慢启动:拥塞窗口 cwnd 以一个 MSS 最大报文段开始,每当传输的报文

段首次被确认就增加一个 MSS。因此每经过一个 RTT 往返时间,拥塞窗口就

会翻倍,发送速率也会翻倍。结束慢启动的情况:① 发生超时事件,发送方将

cwnd 设为 1,重新开始慢启动,并将慢启动阈值设置为 cwnd/2。② 当拥塞

窗口达到慢启动阈值时就结束慢启动而进入拥塞避免模式。③ 如果检测到三个

冗余的 ACK,TCP 就会执行快重传并进入快恢复状态。

拥塞避免:一旦进入拥塞避免状态,cwnd 值大约是上次拥塞时的 1/2,

距离拥塞并不遥远。因此 TCP 不会每经过一个 RTT 就将 cwnd 翻倍,而是

较为保守地在每个 RTT 后将 cwnd 加 1。发生超时事件时,拥塞避免和慢启

动一样,将 cwnd 设为 1,并将慢启动阈值设置为 cwnd/2。

快恢复:有时个别报文段丢失,但网络中并没有出现拥塞,如果使用慢启动

会降低传输效率。这时应该使用快重传来让发送方尽早知道出现了个别分组的丢


本文标签: 拥塞 连接 发送 启动 进入