| |
|
|
开发:
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协议(上)—理论+实践给你讲清楚 -> 正文阅读 |
|
|
[网络协议]TCP/IP协议之四TCP协议(上)—理论+实践给你讲清楚 |
特性TCP又名传输控制协议,属于TCP/IP协议中的传输层,与其下层网络层的最重要区别在于它提供了一种面向连接的和可靠的字节流服务。 面向连接怎么理解面向连接呢,其实就类似于打电话,拨号然后响铃,直到接通后,双方就建立起了一个连接。
如何支撑起TCP的可靠性
TCP协议格式TCP传输时是被包裹在IP数据报中的:
TCP协议格式
实践出真知
TCP连接的建立(三次握手)首先来看看经典的三次握手的过程:
到此双发已经建立好了连接,三次握手结束。下面来看看我实际的抓包 下面的抓包是我在服务器上用tcpdump抓到的,客户端是自己电脑上的telnet,服务器监听用的工具是nc
TCP连接的建立(四次挥手)我依然画了一个图:
这里有很多值得说的点,但是篇幅有限,可能需要放在下一篇来讲 实践
注意,这里并不是发生了四次挥手,而是三次!!! 为什么会出现这种情况呢?! 我又试了不同的服务端和客户端,然后自己用C++代码写了客户端和服务端程序用来控制程序的断开和连接,我发现依然还是。 查阅后,原来是因为 TCP的延迟确认特性。因为中间服务端会先发一次ACK再发一次FIN+ACK。因此这种特性使这两个数据包合并成一个。 小结这篇就到这儿吧,太长的话不利于阅读,等我把这个系列写完会出一篇方便进行收藏的整合文章,方便大家进行阅读、查阅和学习! |
|
|
| 网络协议 最新文章 |
| 使用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图书馆 购物 三丰科技 阅读网 日历 万年历 2025年10日历 | -2025/10/30 4:00:52- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |