| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> TCP十大特性 -> 正文阅读 |
|
[网络协议]TCP十大特性 |
TCP存在十大特性的目的是为了在保证传输数据可靠性的同时,还要提高传输效率,所以才出现了下面这些机制。 目录 确认应答的目的是为了保证数据的可靠传输。 1.应答机制的例子2.实际的确认应答机制二.超时重传机制?目的是为了确保数据传输的可靠性 1.超时重传的例子? ?2.?实际的超时重传机制三.连接管理?确保数据传输的可靠性 1.连接管理的内容以及建立连接的目的(1)连接管理内容
(2)建立连接的目的
2.三次握手的例子3.实际三次握手的过程?4.连接管理的常见问题(1)是否可以2次握手不可以,因为如果没有最后一次确认号,以上面通话为例,那么小明是无法确认自己的话筒和对方的听筒是否正常。 (2)是否可以4次握手可以,但是没有必要,4次连接相当于是把中间的一次拆分成2次,对于网络传输而言,传输一个数据包肯定比传输两个数据包效率高,所以没必要4次握手。 5.四次挥手(断开连接)的例子?6.实际的四次挥手过程? 7.三次握手和四次挥手的重要状态(1)LISTEN服务器启动完毕,随时准备客户端进行连接。 (2)ESTABLISHED连接建立成功,随时准备传输信息。 (3)CLOASE_WAIT如果在服务端的代码出现了大量的该状态信息,说明挥手挥了一半,代码中存在bug,说明服务器没有正确的关闭socket。 (4)TIME_WAIT当主动断开连接的一方,进入该状态后,即使进程已经消亡了,该状态还会存在一段时间,防止最后一个ACK丢包从而从而避免了无法重传。 四.滑动窗口在可靠传输的基础上,提高传输效率 1.什么是滑动窗口滑动窗口是批量发送数据,批量等待ACK,从而提高传输效率的一种机制。 2.使用滑动窗口处理数据的原理?3.滑动窗口对于丢包如何处理(1)部分ACK丢包(2)数据包丢包?五.流量控制限制滑动窗口大小的一方面,确保可靠传输 1.为什么要有流量控制对于滑动窗口而言越大传输效率就越高,但是滑动窗口不能无限大,肯定会有限制,由于TCP的传输本质上是一个生产者-消费者模型;其中发送方相当于是生产者,接收方是消费者,接收方的缓冲区相当于是用来存储数据的仓库,只有当仓库中有容量时,发送方才能继续发送数据。 2.什么是流量控制在滑动窗口的机制下,为了限制传输的效率不要太快,保障传输的可靠性,相当于是接受方的缓冲区剩余空间的大小制约着发送方的滑动窗口大小,其中返回的ACK报文的报头就是窗口大小字段,而这个字段也是缓冲区剩余空间的大小。??? 3.具体的流量控制过程六.拥塞控制和流量控制一块决定滑动窗口的大小,也是确保可靠传输 1.为什么需要拥塞控制对于刚开始发送数据时,由于不确定对方的网络状况如何,贸然地发送大量的数据,如果对方当前的网络状态比较拥堵,可能会使接收端雪上加霜,所以TCP通过刚开始发送少量的数据,相当于时先探路,判断对方的网络状态如何,然后再决定按照多大的传输速率来进行传输数据。 2.? ? ?引入拥塞控制后发送数据的详情图解七.延迟应答提高传输效率 1.什么是延迟应答延迟应答就是接收端接收到数据后,不会立即就返回响应应答,而是等待一小段时间再来给发送方发送应答ACK,目的是想尽一切办法来提高传输效率。 2.延迟应答的详解示意图八.捎带应答在延迟应答的基础上,提高传输效率 1.什么是捎带应答捎带应答就是接受端在接收发送端发来的数据后,由于存在延迟应答,之后会将响应和ACK应答一起发送给接收端。相当于是ACK搭上了响应的顺风车。 2.捎带应答的详解图示?九.粘包问题与字节流传输有关,也可以归结到可靠传输 1.为什么出现粘包问题TCP是传输层的协议,而且数据是按照序号排列在缓冲区中;而粘包问题是应用层解析数据时出现的问题,而粘包问题主要是由于字节流传输导致的,因为字节流在传输数据时,可以传输一个字节,也可以传输100个字节,当接收方收到数据时,不知道数据是从哪里开始,又到哪里结束,所以就出现了问题。 2.粘包问题示意图以及解决方法3.解决粘包问题总结(1)使用分隔符 (2)明确包的长度 解决粘包问题最主要的是要明确包和包之间的边界问题。 十.保活机制归结到可靠传输里面 1.保活机制的应用场景对于发生一些异常情况下,TCP对连接的特殊处理,如进程崩溃,主机关机,断电,网线断了。这时候就使用到了保活机制。目的也是为了提高可靠性。 2.异常情况的处理过程(1)进程崩溃在该情况下,TCP会正常的进行4次挥手,进程退出后,会自动关闭相关文件。 (2)主机关机关机的时候会强制杀死进行,在这个过程中,也就完成了4次挥手。 (3)主机断电/断网1.接收方断电 这个情况下,发送方就不会收到接收方的ACK,这时候就会触发超时重传,重传到一定次数后,发送方就会重置连接;如果还不行,就会断开连接。 2.发送方断电 由于接收方会等待发送方的数据,但是接收方不会一直进行等待,这时候就有了心跳包这个东西,这个心跳包没有包含实际业务的意义,只是为了保证对方是否还“活着”,一旦隔了一段时间后,没有接收到对方发送的心跳包,这时候就认为对方已经挂了,之后就会断开连接。这时候就体现到了保活机制的重要性。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/26 8:18:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |