什么是 TCP 流?

简介: 在一些技术文档,特别是 Wireshark 相关的文档中,“TCP 流”是一个很常见的词汇。它是什么意思呢?为什么叫“流”,难道跟水有关吗?

其实,这里的 TCP 流,就是英文的 TCP Stream。

Stream 这个词有“流”的意思,也有“连续的事件”这样一个含义,所以它是有前后、有顺序的,这也正对应了 TCP 的特性。

跟 Stream 相对的一个词是 Datagram,它是指没有前后关系的数据单元,比如 UDP 和 IP 都属于 Datagram。在 Linux 网络编程里面,TCP 对应的 socket 类型是 SOCK_STREAM,而 UDP 对应的,就是 SOCK_DGRAM 了。

显然,DGRAM 就是 Datagram 的简写。

在具体的网络报文层面,一个 TCP 流,对应的就是一个五元组:传输协议类型、源 IP、源 端口、目的 IP、目的端口。比如,今天你访问了xxxx网站,那么你这次的 TCP 流就可 能就是这样一个五元组:

```shell

(TCP, your_ip, your_port, geekbang_ip, 443)

```  


一个 IP 报文,包含了所有这五个元素,所以 Wireshark 在解析抓包文件时,自然就能通过五元组知道每个报文所属的 TCP 流了。

这也是为什么我们可以在 Wireshark 里,用Follow TCP Stream 的方法,找到报文所在的 TCP 流。不过有时候,也会有四元组的说法。其实它跟五元组大体上是一致的,只是四元组没有区分传输层协议类型(TCP 或者 UDP)。但是如果我们都清楚地知道应用类型,比如知道应用是 HTTP 协议的,那它的传输层协议默认就是 TCP,这一元是否算在里面,已经不重要了。

目录
相关文章
|
18天前
|
域名解析 网络协议 关系型数据库
tcp和udp的区别是什么
TCP和UDP是互联网协议中的传输层协议。TCP是面向连接的,通过三次握手建立可靠连接,提供数据顺序和可靠性保证,适用于HTTP、FTP等需要保证数据完整性的应用。UDP则是无连接的,数据报独立发送,传输速度快但不保证可靠性,常用于实时通信、流媒体和DNS解析等对速度要求高的场景。根据应用需求选择合适的协议至关重要。
tcp和udp的区别是什么
|
18天前
|
网络协议 网络性能优化
认识TCP和UDP的区别
重排机制:由于UDP数据包可能因网络原因而发生乱序,因此在应用层需要对接收到的数据包进行排序。
61 4
|
网络协议
轨迹系列——Socket总结及实现基于TCP或UDP的809协议方法
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在上一篇博客中我详细介绍了809协议的内容。809协议规范了通信的报文,通信的规则等,但是并没限制通信使用的传输协议。
1949 0
|
18天前
|
域名解析 网络协议 关系型数据库
TCP和UDP的区别是什么
TCP和UDP的区别是什么
16 0
|
18天前
|
网络协议 Linux
TCP 和 UDP 的 Socket 调用
【2月更文挑战第19天】
TCP 和 UDP 的 Socket 调用
|
18天前
|
存储 网络协议 Java
TCP流套接字编程
TCP流套接字编程
|
18天前
|
存储 网络协议 安全
详解TCP报文格式以及TCP相关特性
详解TCP报文格式以及TCP相关特性
134 2
|
8月前
|
网络协议 安全 网络性能优化
TCP与UDP的区别与适用场景
TCP与UDP的区别与适用场景
|
9月前
|
网络协议 安全
基于TCP和UDP的Socket通信
TCP是面向连接的,安全的协议,它是一对一的关系 udp是面向无连接的,不安全,不可靠的,但是效率很高,支持一对一,一对多,多对多发送,udp传输的格式为数据报,要将其封装为数据报才能发送,
54 1
|
10月前
|
网络协议 网络性能优化
TCP 和 UDP 的区别
TCP 和 UDP 的区别
104 0

热门文章

最新文章