当前位置: 首页 > news >正文

【JavaEE初阶】网络经典面试题小小结

目录

前情回顾

保证TCP可靠传输的两个核心机制

连接管理

建立连接:三次握手

三次握手的意义

断开连接:四次挥手

四次挥手的异常情况

经典面试题


前情回顾

HTTP收尾,中间人攻击,证书,数字签名,校验机制

UDP协议:简单的协议,无连接,不可靠传输,面向数据报,全双工,源端口,目的端口,长度,校验和

TCP协议【重要!】:有连接,可靠传输,面向字节流,全双工

保证TCP可靠传输的两个核心机制

  • 确认应答->接收方通过ack(应答报文)告知发送方,我收到了
  • 引入序号和确认序号,应答报文设为1->TCP接收方就可以通过序号对数据包进行去重/排序
  • 超时重传->对丢包情况的处理
  • 超出一定时间,没有收到应答报文,就认为是丢包了->触发超时重传操作

连接管理

建立连接:三次握手

三次握手(中间两个传输合并了)

所谓的连接,指的->通信双方各自保存对端的关键信息

LISTEN状态:服务器启动,随时可以有用户连接上来(listen)

ESTABLISHED状态:连接建立完毕,随时可以发送数据(established)

三次握手的意义

  • 投石问路,初步验证通信链路是畅通的
  • 验证通信双方的各自的发送能力和接收能力(为啥两次不行?因为不能完成验证;为啥四次不行?因为可以合并成三次)
  • 协商关键信息(初始序号从多少开始)

易错点三次握手对可靠传输有一定的帮助,但是如果说,TCP实现可靠传输 全靠三次握手 那就非常不科学

三次握手只在最开始建立连接的时候进行

一旦连接建立好了,后续业务数据的通信也和三次握手没关系了

后续业务的可靠性,还得是靠确认应答和超时重传

断开连接:四次挥手

四次挥手中的 ACK和FIN可以合并成一步吗?

如能!

不能是因为:ACK内核收到后,会马上返回给发送方,FIN被内核收到后需要进一步调用应用程序代码(慢一点)

是因为:延时应答机制,让ACK延迟发送了,恰好和FIN一起发送

四次挥手的各种状态

TIME_WAIT状态:给最后一个ACK丢包的行为做个托底,主动发起FIN的一方会进入到TIME_WAIT状态(主动提出离婚的人)

CLOSE_WAIT状态被动发起FIN的一方,会进入CLOSE_WAIT状态(等待你的应用程序代码,来调用close方法)(被离婚的人)

这里不能用客户端or服务器这样的词来表述,因为客户端or服务器都可能主动发起FIN

TIME_WAIT(服务器的状态) 和 TIME_WAITING(线程的状态)没有什么关系

为什么要有TIME_WAIT状态呢?

那等多久合适呢?

按照网络上任意两个节点传输过程中消耗的最大时间 * 2

通常这个消耗的最大时间会配成60s,因为超时重传的阈值是ms级别

此处TIME_WAIT等待2min(这个数值不要背,因为不同系统可能不一样,这个值是可以修改的)

四次挥手的异常情况

比如服务器始终不调用close

  • 站在A的视角,此时A发给B的FIN 已经过去很久了,B还是没有回应,A就会主动释放连接(把B的核心信息删了)
  • B这边,由于代码逻辑有bug,A释放连接后,B这里的连接 还会暂时存在(还会保存对方信息,但是也没办法进行正常的数据通信了

经典面试题

  • LISTEN
  • ESTABLISHED
  • TIME_WAIT
  • CLOSE_WAIT
  • 三次握手的过程
  • 四次挥手 的过程

END✿✿ヽ(°▽°)ノ✿

http://www.dtcms.com/a/544648.html

相关文章:

  • 以太网多参量传感器:构筑工业安全与环境稳定的“数据堡垒”
  • pinia-storeToRefs方法
  • 基于用户的协同过滤算法理解
  • jsp书城网站开发中国建设银行重庆网站首页
  • 郑州网站建设公司排名湖南省城乡住房建设厅网站
  • 蓝牙钥匙 第4次 蓝牙协议栈深度剖析:从物理层到应用层的完整架构解析
  • 口腔健康系统|口腔医疗|基于java和小程序的口腔健康系统小程序设计与实现(源码+数据库+文档)
  • FANUC发那科焊接机器人薄板焊接节气
  • 如何加强网站信息管理建设个人网站设计步骤
  • 调用API历史和未来气象数据获取
  • 机器人从设计到仿真到落地
  • 战略合作 | 深信科创携手北极雄芯、灵猴机器人共推国产智能机器人规模化落地
  • Rust 闭包的定义与捕获:从理论到实践的深度探索
  • 公司网站建设分录哪里的赣州网站建设
  • 各级院建设网站的通知网站建设的结论
  • 四种编程语言字符串函数及方法对比(python、Java、C#、C++)
  • 亲测好用:Chrome/Chromedriver一键下载工具(免费无广)
  • 基于Chrome140的TK账号自动化(关键词浏览)——脚本撰写(二)
  • C# SelectMany 完全指南:从入门到精通
  • 卡片式设计网站制作婚庆网站建设需求分析
  • RK3399 11.0关闭调试串口改为普通RS232通信串口
  • 手机网站弹窗大唐网站建设
  • 播放本地音频的代码
  • cefsharp139-H264-X86升级测试(MP4)-支持PDF预览-chromium7258定制浏览器
  • pandoc导出markdown为PDF,同时解决中文内容报乱码的错误
  • 【printpdf】生成PDF的全能Rust库printpdf
  • 小技巧:ipynb转pdf
  • 计算机网络自顶向下方法16——应用层 因特网视频 HTTP流和DASH
  • 摄像头选型与对应采集工具方案
  • 免费的行情软件下载安装佛山网站优化指导