一些计算机网络面试题

TCP建立连接和关闭连接的流程?每个流程的环节?

TCP是在传输层的协议,建立的是可靠传输

TCP在传输数据前建立连接是采用三次握手,关闭连接是四次挥手

三次握手:因为目前网络通讯是全双工的,那我假设浏览器端是A端,服务器端是B端,A端会向B端先传送SYN报文,携带初始化随机序号,B端向A端返回SYN+ACK报文,A端最后向B端返回ACK报文最终确定,这就是TCP的三次握手

四次挥手:A会给B发一个FIN结束报文,B给A发送ACK应答报文,A收到之后这个时候会有一个等待阶段,因为B端有一些数据可能还没有给A传输完,等到数据全部传输完成后,B会再给A发送一个FIN结束报文,A收到之后再发送给B一个ACK报文,这时候B就可以关闭了,A再等待2MSL时间后如果没有收到B重复发来的报文,也就关闭连接了

MSL是报文最大存活时间。等待时间是2MSL可能是网络中存在着来自发送方的数据报文,当这些报文被接收方处理后又会回给发送方,这样一来一回就是两倍msl

2MSL是在客户端接收到服务器端发来的FIN后发送ACK开始计时的,若ACK在第一个MSL内丢失,FIN可以在第二个MSL内重新发回给客户端,这时候就会重新计时

TCP如何保证其可靠传输

重传机制、滑动窗口、拥塞控制(基于网络情况决定发送分组的数量)、流量控制(保证发送速率和接受速率相匹配)

相关推荐

  1. 一些计算机网络面试

    2024-06-09 17:52:01       31 阅读
  2. 计算机网络-面试

    2024-06-09 17:52:01       53 阅读
  3. 计算机网络面试

    2024-06-09 17:52:01       40 阅读
  4. 计算机网络、浏览器面试

    2024-06-09 17:52:01       44 阅读
  5. 计算机网络高频面试

    2024-06-09 17:52:01       29 阅读
  6. 计算机网络模型面试50

    2024-06-09 17:52:01       32 阅读
  7. 计算机网络、浏览器相关高频面试

    2024-06-09 17:52:01       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-09 17:52:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-09 17:52:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-09 17:52:01       82 阅读
  4. Python语言-面向对象

    2024-06-09 17:52:01       91 阅读

热门阅读

  1. Python基础教程(七):函数编程-从基础到进阶

    2024-06-09 17:52:01       28 阅读
  2. Python 基础语法详解(二)

    2024-06-09 17:52:01       34 阅读
  3. 力扣1358.包含所有三种字符的子字符串数目

    2024-06-09 17:52:01       30 阅读
  4. 共识算法之争(PBFT,Raft,PoW,PoS,DPoS)

    2024-06-09 17:52:01       34 阅读
  5. 【Vue2/3】使用Provide/Inject 依赖注入跨组件通信

    2024-06-09 17:52:01       45 阅读
  6. Web前端答辩PPT模板:全面解析与高效呈现

    2024-06-09 17:52:01       34 阅读
  7. Vue3图片懒加载封装自定义指令

    2024-06-09 17:52:01       42 阅读
  8. C语言——共用体

    2024-06-09 17:52:01       33 阅读
  9. Docker:镜像命令和容器命令

    2024-06-09 17:52:01       41 阅读