拉勾网《32个Java面试必考点》学习笔记之二------操作系统与网络知识

本文为拉勾网《32个Java面试必考点》学习笔记.只是对视频内容进行简单整理,详细内容还请自行观看视频《32个Java面试必考点》.若本文侵犯了相关所有者的权益,请联系:txzw@live.cn.将会删除相关内容

知识点汇总

操作系统对于服务问题的排查定位很重要,在面试时,一般以了解和应用考察为主,面试题目占的比重不会过高.

操作系统

服务之间通过不同的网络协议进行交互,在面试中被考的几率非常大.

网络知识

知识点详解


HTTP

1. 需要知道协议中的Method,Header,Cookies.
2. 知道常见状态码含义
3. 了解HTTPS的交互流程
4. QUIC基于UDP实现原HTTP功能,现已被标准化为HTTP3协议

TCP

1. TCP和HTTP在服务交互中使用最多.了解报文标志状态和链接状态有利于抓包分析.
2. Nagel算法是为了解决小包问题和数据载荷比.
3. KeepALive是在长时间没有数据发送的情况下保持连接可用的机制.需要了解开启和设置方式.
4. 了解如何通过滑动窗口机制实现流量控制.
  • 位于OSI模型的第四层-传输层
  • 面向连接
    • 每次发送数据先要建立连接
  • 双工通信
    • 连接建立后可进行双向通信
  • 可靠
    • 通过对数据包编号,并按序号接受,可确保数据的完整性和有序性
  • 流量控制
    • 通过滑动窗口控制数据的发送速率.滑动窗口的本质是动态缓冲区,接收端根据自己的处理能力,在tcp的Header中动态调整大小,通过应答包通知发送端
  • 拥塞控制
    • 主要通过慢启动,拥塞避免,拥塞发生,快速恢复算法实现
  • 基于字节流

除了以上特点,还可以了解tcp协议的报文状态,滑动窗口的工作流程,KeepAlive的参数设置,Nagel算法的细节

三次握手

三次握手

回答建连的问题时,可以提到syn洪水攻击.即请求端只发送SYN包,而不对接收端的SYNACK包进行回复,使得接收端大量连接处于半连接状态,影响其他正常请求的建连.
解决方法:设置linux的tcp参数
tcp_synack_retries=0,加快对于半连接的回收速度,或加大tcp_max_syn_backlog应对少量的syn洪水攻击

四次挥手

四次挥手

        处于CLOSE_WAIT状态时,HOSTB仍有可能向HOSTA发送数据,HOSTB发送完数据后,才会向HOSTA发送FIN包

为何HOSTA要在2MSL(Maximum Segment Lifetime 最大报文生存时长)后才关闭连接?

  1. 要保证TCP的全双工连接能可靠关闭
  2. 要保证这次连接中重复的数据段从网络中消失,防止端口重用时可能的数据混淆

回答问题是也可以提到,有可能大量socket会处于TIME_WAIT和CLOSE_WAIT的问题.
解决TIME_WAIT过多,可通过开启Linux的tcp参数tw_reuse或tw_recycle能加快TIME_WAIT状态的回收.
CLOSE_WAIT过多则可能是被动关闭的一方存在代码BUG,没有正确关闭连接导致的

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值