IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 操作系统面经1 -> 正文阅读

[网络协议]操作系统面经1

操作系统面经1(较口语化)

为什么需要三次握手?两次不行?

因为要保证客户端和服务器双方的接收发送能力没问题,第一次握手客户端发送连接请求,服务器接收到,只能证明客户端发送能力没问题,服务器此时将回应同意连接报文发送给客户端,这个时候保证了服务器的收发能力没问题,如果只有两次只能证明客户端发以及服务端收发没问题,必须要第三次握手这样才能保证客户端的接收能力也没问题。

为什么需要四次挥手?三次不行?

因为除了保证客户端服务器双方接收发送能力没问题,也要保证数据顺利全部发送接收到,第二次和第三次挥手,都是服务器发送,原因是第二次服务器要及时回复客户端收到了关闭连接的报文,而不发送让客户端关闭的报文是因为这个时候服务器不一定发送完了数据,所以要等发送完了,才能发送第三次挥手报文告诉客户端可以关闭了,而第四次就是客户端发送给服务器告诉服务器知道可以关了。这个时候服务器收到报文就可以关了,但是客户端还是要等2wsl,两个最长报文生存时间,是因为保证服务器接收到报文了。

为什么是等2msl不是1msl?

因为要确认服务器收到了没有再发送第三次挥手报文给到客户端,而第四次报文和等到服务器再次发送的最长生存时间就是2msl,如果再等待长,也不是不行,但是浪费时间

TCP与UDP有哪些区别?各自应用场景?

TCP:连接的可靠的,UDP:无连接的不可靠的

TCP:以字节流的形式传输的,UDP:以报文形式传输的

TCP:一对一传输,UDP:一对多传输

TCP:传输效率总的比UDP慢

TCP:报文首部为20字节,UDP:报文首部为8字节

TCP常用于邮件传输,http1,http1.1,http2,ftp

UDP用于实时性的,不在乎那么多损失的,用于游戏,视频等,也在http3有使用到

HTTP1.0,1.1,2.0 的版本区别

http1.0短连接,就是每次访问请求数据都要tcp三次连接四次挥手

http1.1实现长连接,就是报文首部加多了个connection的字段,然后默认打开,就可以保持一定时间的连接,而不是每次都得请求访问,客户端和服务器发现对方太久没使用,就主动关闭。加入了管道,实现了一个连接里,客户端可以发起多次请求。

http2.0实现多路复用,更快了,在一个连接里,客户端和服务器都可以多次请求和回应,而且不用按顺序一一对应,因为它实现了二进制分帧,把传输的信息分割为更小的信息或帧,header压缩和服务端推送将一些信息放缓存

为什么http1.1不能多路复用?

因为http1.1没有二进制分帧,服务器读数据是读到分隔符才停止,所以无法确定每一段数据多大,那就没得预留空间,那么就很难实现多路复用了,必须按顺序。

谈下你对 HTTP 长连接和短连接的理解?分别应用于哪些场景?

在http1.1中实现了长连接,报文首部多了connection字段,值是keep-alive来显示是否长连接,长连接就不需要每次请求都进行tcp三次连接四次挥手,可以保持连接,mysql的启动连接也是用了长连接

在http1中则是短连接,就是每次发起HTTP请求都要经历tcp三次连接和四次挥手都需要

那长连接的时候什么时候超时?

开始长连接的时候可以设置超时时间,也可以自行断开,将connection字段close

Cookie 和 Session 有什么区别?

Cookie是存在客户端,session存在服务端,cookie比session不安全。

Session存在服务器中,如果访问增加,会占用性能,如果要快就用cookie。

Cookie过期的时间是开始设置的,session过期是服务器设置的

Session可以存取任意类型数据,但是cookie是字符串形式,如果是其他则需要编码

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-09-15 02:20:34  更:2022-09-15 02:21:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 3:16:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码