测试开发面试题---计算机网络
计算机网络模型
OSI模型:七层模型
- 物理层:定义电气特征,机械特征等功能规范,传递实际比特流
- 数据链路层:物理地址寻址(MAC),帧的传输,错误检测和纠正
- 网络层:路由选择,逻辑地址寻址,数据包转发
- 传输层:端到端的传输,提供差错控制、流量控制和拥塞控制
- 会话层:建立维护和终止会话
- 表示层:数据的加解密、压缩和格式转化
- 应用层:提供应用层之间的接口,处理用户需求
TCP/IP模型
- 网络接口层:物理地址寻址,帧传输
- 网络层:路由选择、逻辑寻址和数据包转发
- 传输层:提供端到端的通信、数据流控制和差错控制
- 应用层:提供应用程序之间接口
TCP如何保证可靠传输
使用三次握手建立可靠连接
客户端首先向服务器发送请求连接,服务器收到后回复同步确认包,客户端收到后会回复确认包
使用序列号和确认机制保证数据传输的完整性
每个字节数据分配一个序列号,接收方通过确认号来确认收到的数据,如果发送方超时未收到确认就会重传数据包
流量控制和拥塞控制来避免网络阻塞
流量控制
TCP使用滑动窗口实现流量控制,发送方和接收方各自维护了一个滑动窗口,用于跟踪已发送未确认和允许发送的数据
拥塞控制
TCP的拥塞控制是动态调整数据发送速率来确保网络资源高效利用
- 慢启动:初始时,拥塞窗口设置为一个人很小的值,每收到一个ACK,拥塞窗口会增加一个报文长度使得发送速率呈指数增长,直到达到慢启动阈值。
- 拥塞避免:当检测到网络开始出现阻塞时,TCP进行阻塞避免,窗口的增长变为线性
- 快重传:如果接受方发现失序ACK会向发送方迅速发送多个ACK,发送方接收到以后会立即重传,无需等待重传计时器
- 快恢复:发送窗口设置为收到ACK前窗口的一半,并采用线性增长,避免再次阻塞
四次挥手终止连接
Get和Post的区别
- Get:数据参数包含在URL中,URL的长度有限制,不同的浏览器和服务器的限制不同;参数可见于URL中,可能包含敏感信息,容易被缓存或记录在浏览器中;多次相同的请求会得到一致的结果。
- Post:数据参数在http正文中,URL的长度没有限制,理论上可以传输大量数据;参数不可见与URL中,相对安全,不会被缓存或者记录在浏览器中,多次相同的请求得到的结果不同。
HTTP长连接
长连接是相对于短链接而言的,短链接是指每次请求都会建立连接,请求完毕后再关闭连接。长连接则是每次请求完毕后不关闭连接,即请求可以复用连接。
HTTP实现长连接方式
- 在发送请求时,客户端会在请求头中包含connection-keep alive表明自己想与服务器建立连接,并且在请求完毕后不关闭连接。
- 服务器会回复客户端一个connection-keep alive确认并同意长连接
长连接优点
- 减少了连接创建和关闭的开销,提高了通信效率
- 对于频繁请求的场景可以减少延迟
HTTP1.0/1.1/2的区别
- HTTP1.0采用短链接,每次请求都需要建立连接
- HTTP1.1引入长连接,它采用分块传输方法,即每产生一个数据就发送一个数据
- HTTP2完全多路复用,接收方和发送方可以同时接受和发送多条消息,具有服务器推送功能,即服务器可以未经客户端的允许推送信息,报头压缩。
HTTPS的工作流程
- 客户端向服务器发送请求连接,服务器收到以后将自己的证书发送给客户端,证书中包含有效期、公钥和证书颁发机构等
- 客户端收到证书后会检查证书的有效性,如果有效则随机生成一段数字并使用公钥进行加密发送给服务器
- 服务器接收到以后解密,客户端与服务器建立连接开始通信
DSN解析过程
客户端首先会检查浏览器缓存,如果没有找到对应的IP地址就会去查询本地域名服务器,如果还没有找到就开始递归查询,本地域名服务器会向根域名服务器进行查询,根域名服务器不会给出IP地址,而是告诉本地域名服务器应该去那个顶级域名服务器查找,本地域名服务器像顶级域名服务器发起查找,顶级域名服务器会返回一个权限域名服务器列表,本地域名服务器任选一个权限域名服务器进行查询。
ARP工作流程
- ARP请求:当一个主机与另一个主机进行通信时,首先检查自己ARP缓存中是否有目标对象对应的IP地址,如果没有就开始启动ARP查询过程
- 广播ARP请求:源主机发送一个ARP请求,包括目的主机的IP地址和MAC地址(MAC地址设置为FF:FF:FF:FF:FF表示所有的主机都可以收到该请求)
- 网络上所有主机都会收到这个ARP请求但只要目标主机会对请求进行响应
- 目标主机会将源主机的IP地址和MAC地址,目标主机的IP地址和MAC地址封装在一起发送给源主机
- 源主机接收到以后会提取目标主机的IP地址和MAC地址并更新到自己ARP缓存中
从浏览器输入URL显示到主页
- DNS解析查找域名对应的IP地址
- 与服务器通过三次握手建立连接
- 向服务器发送HTTP请求
- 服务器处理请求,返回网页内容
- 浏览器解析并渲染页面
- TCP四次挥手终止连接
对称加密和非对称加密
- 对称加密:加密密钥和解密密钥相同,密钥必须保密并在通信双方之间共享,算法高效适合加密大量数据
- 非对称加密:加解密使用一对密钥,一个公钥一个私钥,公钥可以公开,私钥则必须加密。效率较低,不适合加密大量数据。
cookie和session的区别
- cookie是客户端的存储机制,服务端会将某一状态以key-value形式写入客户端中,客户端下次访问时会携带这些状态信息发送给服务端,服务端会根据cookie内容识别使用者
- session是服务端保存机制,它会为每个会话创建一个SessionID并存入用户cookie中
因为session是服务器的存储机制,因此它会比cookie更加安全,同时cookie有数据量的限制而session则没有,所以cookie适合存储数据量小且不敏感的数据,session则适合处理数据量大比较敏感的数据。
DOS、DDOS和DRDOS
- DOS(拒绝服务攻击):攻击者使用单个计算机向系统发送大量请求导致目标计算机或者网络资源过载,无法响应用户请求。
- DDOS(分布式拒绝服务攻击):攻击者使用多个计算机向系统发送大量请求,由于攻击源比较广泛且难以追踪,因此DDOS更具有攻击性
- DRDOS(分布式反射拒绝服务):利用第三方服务器作为反射器,将受害者IP设为源IP地址向多个反射服务器发送请求,这些服务器接收到请求后向受害者发送大量数据,导致其无法正常工作。
原文地址:https://blog.csdn.net/m0_53302824/article/details/140719150
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!