27、TCP数据处理与内存管理详解

TCP数据处理与内存管理详解

1. TCP数据接收队列处理

在TCP数据接收过程中,我们可以根据缓冲区的序列号和序列空间,精确找到下一次读取数据的起始字节位置。下面详细介绍不同读取请求下的处理情况。

1.1 应用程序请求1 mss(n字节)数据

在第二次读取时,应用程序请求n字节(即1 mss)的数据。此时,接收队列中的第一个缓冲区已被完全消耗,它会从队列中解除链接。接收队列中的第二个缓冲区仅剩余(n - X)字节,这些字节将在第三次读取时被消耗。

1.2 应用程序请求(n - X)字节数据

第三次读取(n - X)字节后,接收队列的状态是所有数据都已被消耗,此时复制序列与接收下一个序列相同。

1.3 分页缓冲区的数据消耗

假设缓冲区共有n + 2页数据,其中n字节来自线性数据区域,另外两页来自分页数据区域。应用程序分两次读取,分别请求n字节和1页数据。
- 第一次读取n字节后,这些字节从线性数据区域消耗。
- 第二次读取1页数据后,下一次读取将从下一页的开头开始。

2. TCP紧急字节处理

TCP紧急字节有两种读取模式:
- Inline(内联)
- Out - of - band(带外)

默认情况下,套接字接收紧急字节的模式是带外模式。带外数据是套接字级别的抽象,与TCP字节流无关。在两种模式下,TCP都将紧急字节作为正常数据进行传输和接收。紧急字节接收后,其读取位置取决于接收模式。

2
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值