| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> TCP的协议特点(对于《Linux高性能服务器编程》的部分摘录以及自己的部分见解) -> 正文阅读 |
|
[系统运维]TCP的协议特点(对于《Linux高性能服务器编程》的部分摘录以及自己的部分见解) |
一.TCP协议特点为面向连接、字节流和可靠传输面向连接:使用TCP协议通信的双方必须先建立连接,然后才能开始数据的读写。双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输。TCP连接是全双工的,即双方的数据读写可以通过一个连接进行。完成数据交换之后,通信双方都必须断开连接以释放系统资源。 字节流:发送端执行的写操作次数和接收端执行的读操作次数之间没有任何数量关系,这就是字节流的概念﹔应用程序对数据的发送和接收是没有边界限制的。TCP先将数据存放于发送缓冲区中,等待,等待发送数据的时候,发送缓冲区中等待发送的数据 TCP为可靠传输机制: 1.TCP采用了发送应答机制,即发送端每个TCP报文都必须收到收方的应答报文,才会认为TCP报文传输完成. 2. TCP协议采用了超时重传机制,在发送发发送完TCP报文段之后 启动定时器,如果在规定时间内未收到应答的话,将会重新发送报文段 3.TCP报文段最终是以IP数据报发送的,而IP数据报到达接收端可能会乱序,,重复,所以TCP协议还会对TCP报文段进行乱序重排,去重的操作 TCP粘包什么是tcp粘包?拆包? 答:c向s发送2个数据包,那么可能会出现3种情况:1 正常,2 两个包一同发送,3 s接收到不完整的或多出一部分的数据包。 原因是什么?答:1 c一次发送的数据大于套接字缓冲区,拆包,2 c一次发送数据小于套接字缓冲区大小,网卡将多次发送的数据一次发送到s, 3 c不及时读取 4 tcp报文长度大于分段长度。 如何解决?答:c添加包首部,长度 !固定每次发送的报文长度,不够补0.! 约定好包的边界,添加首部尾部标识,或者每次发送完数据之后在接收端对发送端发送一个标志信息来代表发送成功,有这么一步之后再进行下一步的发送! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/16 5:38:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |