吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3486|回复: 8
收起左侧

[Java 转载] 【个人笔记】【剑指Java面试-Offer直通车】【一】【计算机网络知识】

[复制链接]
小公主々 发表于 2021-3-10 10:49
本帖最后由 小公主々 于 2021-3-17 15:59 编辑

全系列笔记背景说明:最近在看剑指Java面试-Offer直通车系列的课程,把个人笔记分享给大家


网络模型协议

1.为什么要了解网络知识:对于Socket等数据包解析底层一般都有实现,我们无需考虑,直接使用即可。但如果需要提升性能时,就需要了解底层,数据包丢失等等问题才能解决。

2.网络协议:当前协议层有很多标准,四层、五层和七层。国际标准模型为ISO反过来的OSI模型,七层网络传输协议(物理层->数据链路层->网络层->传输层->会话层->表示层->应用层)

3.各层特点(依次按层对应):物理层负责两台物理机寻址->传输数据格式化并纠错->网络层数据称为数据包且智能传输(IP协议)-->大文件传输需切割为segement且对部分segement传输错误做控制(最重要的一层包含TCP和UDP协议)-->会话层负责发包传输等管理应用层面的通信-->表示层负责当系统及语言不一致时进行语法转换实现通信-->应用层定义消息头等标识(包含HTTP协议)

1.png


TCP三次握手

4.TCP三次握手,TCP是传输层控制协议,面向连接的、可靠的、基于字节流的传输层通信协议。发送的数据包都有序号,收到则返回ACK确认。

5.TCP和UDP报文头中均不带IP,靠port去指引,IP是IP层的事情。用进程ID作为标识只在本地有效,当两台机器时,会通过IP+TCP协议+协议端口号去寻址并标识,也就是即套接字Socket。通信的重点是应用进程,但只需要将报文传递到协议端口即可。

6.ACK确认码中可以标识出传输数据包具体信息,例如下次应该传输的字节,会放到ACK中。同时报文中的Windows段可以计算应该传输速率并进行控制。

7.TCP传递中带有特有的flag标识,如下六种。

2.png

8.TCP三次握手即建立连接,可互相进行通信交互(客户端/服务端),核心流程为客户主动打开closed状态,服务器被动开启closed状态并进入监听状态,客户发起请求并进入已发送状态,服务端收到请求返回ack并进入同步接收状态,客户端再次请求,之后双方进行数据传输(图中三个箭头代表三次握手的过程)。注:图中多次提到的syn为上图中表示的同步序号值。 3.png

9.三次握手的原因:TCP过程中需要正确用到序号值,而三次握手就是为了初始化序号值。

10.提升:当syn发送后客户端未收到ack等,服务器进行重试直到超时,引出syn flood问题,恶意发起syn请求占满服务器处理队列,解决就是增加tcp_syn_cookie参数,服务端发出后,正常的客户端可以发回来。

11.当建立连接后,客户端发生异常,存在保活机制,类似心跳机制,向对方发送保活探测报文,达到指定次数后仍未收到响应则主动断开连接。


TCP四次挥手

12.挥手是为了终止连接。第一次客户端发起终止请求,第二次服务端发起停止报文,第三次再次发起释放停止报文,第四次服务端收到客户端发起的请求,会立即关闭,而客户端tcp会等待2MSL后真正释放。总结为:client发终止、server发收到终止、server发终止、client发确认终止。

4.png 5.png

13.期间不直接关闭而存在time_wait状态的原因:确保足够的时间让对方收到ack包;避免新旧连接混淆。

14.四次挥手存在的原理:因为双方都可以互相发送数据,所以确保都收到fin和ack报文。那么实际上双方都是两次挥手。

15.服务器大量close_wait状态原因:对方关闭socket时,我方由于忙于读写操作,未及时关闭连接。多去释放资源方向排查、或者线程池的线程配置等。


TCP和UDP区别

16.udp报文简单,不具备断点重传等功能。

17.特点:面向非连接、同时向多个客户端传输、数据包报文头字节小。

18.区别:长连接与非连接、可靠性、有序性、速度和量级。


TCP滑动窗口

19.概念:为了同时对tcp的多段数据同时发送,用来做流量控制和乱序重排。

20.滑动窗口发送端有四种状态的数据:已发送并确认、已发送未收到确认、未发送收到允许发送、未发送因大小不允许发送。接收端有三种:已接收并发送确认、未发送允许发送、未发送不允许发送。

21.滑动窗口允许动态策略控制。

22.从这个模块也能看出TCP的核心在于断点重传和有序传送机制。


HTTP

23.特点:支持客户端/服务端模式、简单快速、灵活、无连接、无状态

24.http特殊有个地是比如浏览器输入url的流程:DNS解析-》TCP连接-》发送htpp请求-》接收http报文响应-》浏览器释放TCP连接。


GET和post区别

25.特殊点补充:数据库层面考虑,GET方法符合幂等性和安全性,POST不符合。幂等性:对数据进行单次和多次操作时得出结果一致。安全性:对数据库操作不改变数据则表示安全,get一般用于查询。

26.get可以被缓存和存储,post不行。所以大部分GET会被缓存到CDN中。

HTTP和HTTPS的区别

27.加密核心:身份验证和数据加密(SSL协议或TCL协议)

28.加密方式:对称/非对称加密、哈希算法、数字签名

29.单种加密方式有缺点,HTTPS采用组合拳,如下流程

6.png

30.区别如下

7.png

免费评分

参与人数 3热心值 +3 收起 理由
COPPOLO + 1 我很赞同!
逆向学习 + 1 “[b]小[b]半个[b]大[b]佬”,哈哈😄
BULU + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

白老师 发表于 2021-3-10 10:56
收听关注等系列
huaji98 发表于 2021-3-10 10:58
cr1995 发表于 2021-3-10 11:04
mokjf 发表于 2021-3-10 11:44
图片有原图吗,
澹泊明志 发表于 2021-3-10 11:52
好家伙,大佬,那先手写一个红黑树吧
老大哥 发表于 2021-3-10 11:55
感觉学习的知识点都弄不起来,这个怎么回事,学习的时候没思路.在培训机构学习的,目前到项目阶段了
逆向学习 发表于 2021-3-10 12:50
加粗代码弄错了
Lin5520 发表于 2021-3-31 20:57
可以分享下1500道面试题吗,
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 18:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表