TCP/IP五元组

什么是五元组规则?

五元组是通信术语,英文名称为five-tuple,或5-tuple,五元组包括源IP地址(source IP)、源端口(source port)、目的IP地址(destination IP)、目的端口(destination port) 和 传输层协议(the layer 4 protocol)的五个量集合。

例如:192.168.1.1 10000 TCP 121.14.88.76 80就构成了一个五元组,源IP地址为192.168.1.1,源端口号为10000,协议为TCP,目的IP地址为:121.14.88.76,目的端口号为80。

通常使用5元组来标识一个数据包属于哪个会话,在数据包查重和流量对比时会使用较多,在网络分析领域也经常会涉及到。 

如今互联网大部分请求都承载与TCP/IP之上,IP属于网络层协议,TCP属于传输层协议,每个请求主要通过IP数据包来进行传输和交互。在IP数据包头中会包含连接相关的信息,IP数据包头参数较多,通常难以表达。为了方便不同场景下的使用,将常用的一些IP数据包头字段组合在一起,形成元组,以便使大家更了解。

 

4元组,5元组,7元组又是什么?

理解了5元组之后,理解4元组,7元组就简单了。

4元组即用4个维度来确定唯一连接,这4个维度分别是源IP (source IP), 源端口(source port),目标IP(destination IP), 目标端口(destination port)。

7元组即用7个字段来确定网络流量,即源IP (source IP),源端口(source port),目标IP (destination IP),目标端口(destination port),4层通信协议 (the layer 4 protocol),服务类型(ToS byte),接口索引(Input logical interface (ifIndex))

### TCP/IP 协议实现 TCP/IP协议通过四个层次来定义通信过程,每一层负责不同的功能并提供服务给上一层。具体来说: - **应用层**:为用户提供各种高级应用程序接口和服务,如HTTP、FTP等[^2]。 - **传输层**:主要由两个核心协议构成——TCP和UDP。其中,TCP提供了可靠的数据流传输机制;而UDP则用于不需要确认消息到达情况下的快速发送[^1]。 - **网络层**:处理无连接的逻辑寻址以及最佳路径选择问题,即路由选择。该层最著名的协议就是IP(Internet Protocol),它规定了如何在网络之间传递数据包。 - **链路层/网络接口层**:负责物理地址解析(ARP)、错误检测等功能,并最终完成实际比特级的信息传送工作。 #### 数据封装与解封流程 当一台计算机要向另一台发送信息时,会按照如下顺序进行操作: 1. 应用程序产生的原始数据被交给传输层; 2. 传输层加上必要的头部信息形成段(Segment, 对于TCP而言) 或者报文(Datagram, 针对UDP), 并将其提交到下一层—网络层; 3. 网络层再附加自己的头文件创建IP数据报(Data Packet); 4. 接着这些数据报会被送到链路层,在这里它们成为帧(Frame); 5. 帧经过物理介质传送给接收方之后,整个过程反过来执行,逐层剥离各层添加的内容直到恢复最初的应用层数据。 ```python def tcp_ip_encapsulation(data): """ 模拟TCP/IP 封装过程 参数: data (str): 来自应用层的数据 返回值: tuple: 包含五元组形式表示的一系列封装后的数据结构 ('Application Data', 'Transport Layer Segment', 'Network Layer Datagram', 'Link Layer Frame') """ transport_layer_segment = f"TCP Header + {data}" network_layer_datagram = f"IP Header + {transport_layer_segment}" link_layer_frame = f"Ethernet Header + {network_layer_datagram}" return ("Application Data", "Transport Layer Segment", "Network Layer Datagram", "Link Layer Frame") # 调用函数模拟一次完整的TCP/IP封装动作 encapsulated_data = tcp_ip_encapsulation("Hello World!") for item in encapsulated_data: print(item) ``` ### TCP/IP 的应用场景 由于其强大的互连互通能力,TCP/IP几乎适用于所有的现代互联网环境当中: - Web浏览依赖HTTP/S协议运行在TCP之上,确保网页内容能够安全稳定地加载显示出来。 - 文件传输通常采用FTP(File Transfer Protocol)或SFTP(Secure File Transfer Protocol),这两种都是基于TCP构建的服务端口,默认情况下分别监听21号和22号端口号。 - VoIP(Voice over Internet Protocol)电话通话也离不开TCP的支持,尽管有时为了减少延迟会选择更轻量级但不可靠的RTP(Real-time Transport Protocol)/RTCP(RTP Control Protocol)组合方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值