什么是 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,这一元是否算在里面,已经不重要了。

目录
相关文章
|
6月前
|
域名解析 网络协议 关系型数据库
tcp和udp的区别是什么
TCP和UDP是互联网协议中的传输层协议。TCP是面向连接的,通过三次握手建立可靠连接,提供数据顺序和可靠性保证,适用于HTTP、FTP等需要保证数据完整性的应用。UDP则是无连接的,数据报独立发送,传输速度快但不保证可靠性,常用于实时通信、流媒体和DNS解析等对速度要求高的场景。根据应用需求选择合适的协议至关重要。
tcp和udp的区别是什么
|
6月前
|
网络协议 网络性能优化
认识TCP和UDP的区别
重排机制:由于UDP数据包可能因网络原因而发生乱序,因此在应用层需要对接收到的数据包进行排序。
106 4
|
网络协议
轨迹系列——Socket总结及实现基于TCP或UDP的809协议方法
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在上一篇博客中我详细介绍了809协议的内容。809协议规范了通信的报文,通信的规则等,但是并没限制通信使用的传输协议。
2160 0
|
1月前
|
网络协议 前端开发 物联网
TCP和UDP区别?
本文首发于微信公众号“前端徐徐”,详细介绍了TCP和UDP两种传输层协议的核心概念、连接性和握手过程、数据传输和可靠性、延迟和效率、应用场景及头部开销。TCP面向连接、可靠、有序,适用于网页浏览、文件传输等;UDP无连接、低延迟、高效,适用于实时音视频传输、在线游戏等。
49 1
TCP和UDP区别?
|
2月前
|
网络协议
TCP和UDP区别
简介: TCP和UDP区别
|
5月前
|
网络协议 算法 网络性能优化
TCP和UDP有什么区别?
TCP(传输控制协议)和 UDP(用户数据报协议)是互联网协议族(TCP/IP)中的两种核心传输层协议,它们在数据传输的方式和特性上有显著的区别。
69 9
|
5月前
|
网络协议 应用服务中间件 网络性能优化
解析TCP /UDP协议的 socket 调用的过程
【6月更文挑战第2天】该文介绍了传输层的两种主要协议TCP和UDP的区别。TCP是面向连接、可靠的,提供顺序无错的数据传输,而UDP则是无连接、不可靠的,不保证数据顺序或不丢失。
|
6月前
|
域名解析 网络协议 关系型数据库
TCP和UDP的区别是什么
TCP和UDP的区别是什么
71 0
|
6月前
|
存储 网络协议 Java
TCP流套接字编程
TCP流套接字编程
|
网络协议 安全
基于TCP和UDP的Socket通信
TCP是面向连接的,安全的协议,它是一对一的关系 udp是面向无连接的,不安全,不可靠的,但是效率很高,支持一对一,一对多,多对多发送,udp传输的格式为数据报,要将其封装为数据报才能发送,
77 1