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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络 -> 正文阅读

[网络协议]计算机网络

三次握手: 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接
?? ? ?第一次 客户端向服务端发送连接请求报文,发送的报文段包括同步位SYN和序列号seq,并进入SYN_SENT(同步已发送)状态等待服务器确认
?? ? ?第二次 服务端收到客户端的连接请求报文,如果同意建立连接,则向客户端发送确认报文,
?? ??? ? 报文包括SYN包和ACK标志,然后服务端进入同步以接收状态
?? ? ?第三次 客户端收到服务端的确认报文后,会向服务器发送确认报文,告诉服务器收到了
?? ??? ? 它的确认报文并准备建立连接,服务端收到客户端确认报文,此时,客户端和服务端进入TCP连接成功状态。

四次挥手:第一次;客户端向服务端发起释放连接请求向服务端发送一个FIN报文,
?? ? ? 并且停止客户端到服务端的数据传输,客户端进入终止等待状态
?? ? ?第二次:服务端收到客户端发的FIN报文后会给客户端回复确认报文,此时服务端处于关闭等待状态
?? ? ?第三次:服务端将所有数据发送完毕后就会向客户端发出FIN报文,请求关闭连接,服务端进入最后确认状态
?? ? ?第四次:客户端收到服务端发的FIN报文后,向服务端发出确认报文,服务端收到客户端发出的
?? ??? ? ?确认报文后会立刻进入关闭状态,而客户端要等待2MSL后才进入关闭状态


为什么客户端要等待2MSL才进入关闭状态?
要考虑丢包的问题,第四次挥手是客户端向服务端发送的确认报文如果丢失,服务端就会启动超时重传
重新启动第三次挥手,而客户端能在2MSL时间内收到重传的报文。

长连接:一个TCP连接上可以连续发送多个数据包 ?(王者荣耀)
短连接:通信双方有数据交互时,就建立一个TCP连接,数据传输完成后就断开连接 (卡牌类游戏)

为什么TCP连接的时候是3次?2次不可以吗?
因为需要考虑连接时丢包的问题,如果只握手两次,第二次握手时如果服务端发给客户端的确认报文
丢失,客户端一直没收到服务端的确认报文,就不知道服务端是否准备好,这种情况下客户端不会给服务端发数据,也会忽略服务端
发过来的数据。另一方面防止已失效的TCP连接报文段发送到服务器,导致错误,造成资源浪费。
如果是三次握手,即便发生丢包也不会有问题,如果第三次握手客户端发的确认ack报文丢失,
服务端在一段时间内没有收到确认ack报文的话就会重新进行第二次握手,
也就是服务端会重发SYN报文段,客户端收到重发的报文段后会再次给服务端发送确认ack报文。

为什么TCP连接的时候是3次,关闭的时候却是4次?
因为只有在客户端和服务端都没有数据要发送的时候才能断开,客户端发出的FIN报文只能保证客户端没有
数据发送了,服务端还有没有数据要发送客户端不知道。服务端收到客户端的FIN报文后只能先回复客户
端一个确认报文,表示服务端已经收到客户端的FIN报文,但是服务端可能还有数据没发送完等待服务
端最后一条数据发完了会向客户端发送FIN报文,最后客户端向服务端发送确认报文,
服务端收到以后立刻释放TCP连接

什么是HTTP,HTTP 与 HTTPS 的区别?
HTTP 是一个在计算机世界里专门在两点之间传输超文本数据的约定和规范
区别;HTTP运行在 TCP 之上,明文传输,客户端与服务器端都无法验证对方的身份
? ? ?HTTPS运行在ssl上,SSL运行在TCP上,是添加了加密和认证机制的HTTP
? ? ?端口号不同 HTTP 80 HTTPS 443
? ? ?HTTP资源消耗少 ,HTTPS资源消耗大
? ? ?不需要证书 ? ? ? ? 需要证书,要向认证机构买
? ? ?安全性弱?? ? ? ? ? 安全性强
?? ?无加密?? ??? ?加密

GET和POST区别?
1.get是不安全的,在传输的过程中数据被放在请求的URL中,post的所有操作对用户来说都是不可见的。
2.get请求提交的url中的数据最多只能是2048字节,而post请求则没有大小限制。
3.get限制form表单的数据集的值必须为ASCII字符,post支持整个ISO10646字符集
4.get执行效率比post方法好。
5.GET产生一个TCP数据包;POST产生两个TCP数据包。

TCP和UDP区别?


TCP UDP协议都属于传输层协议
TCP是面向连接的,UDP是无连接的;


TCP是可靠的,UDP是不可靠的;


TCP只支持点对点通信,UDP支持一对一、一对多、多对一、多对多的通信模式;


TCP是面向字节流的,UDP是面向报文的;


TCP有拥塞控制机制;UDP没有拥塞控制,适合媒体通信;


TCP首部开销(20个字节)比UDP的首部开销(8个字节)要大

OSI七层模型:
物理层 数据链路层 网络层 ?运输层 ?会话层 ?表示层 ?应用层

TCP怎么保证可靠性?
校验和;发送方和接受方用同样的算法计算校验和,对比如果不一致则一定有误,一致则可能有误
应答机制:TCP传输的过程中,每次接收方收到数据后,都会对传输方进行确认应答
超时重传
拥塞控制
流量控制

如果已经建立了连接,但是客户端突然出现故障了怎么办?
TCP设有一个保活计时器,客户端如果出现故障,服务器不能一直等下去,白白浪费资源。
服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常是设置为2小时,
若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75秒钟发送一次。
若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。


拥塞控制机制;
网络中传输的报文段较少时采用慢开始算法,拥塞窗口随着传输次数指数增长,当拥塞窗口达到慢开始
门限的时候采用拥塞避免算法,拥塞窗口的大小随着传输次数线性+1。当发生超时重传的时候,
将慢开始门限的值更新为发生超时重传时的拥塞窗口大小的一半并将拥塞窗口大小设置为1,重新开始慢开始算法。


?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-05 17:42:25  更:2021-08-05 17:42:30 
 
开发: 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年11日历 -2024/11/25 18:27:10-

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