<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Masterxiang的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Masterxiang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Masterxiang]]></copyright><item><title><![CDATA[kcp关键函数总结]]></title><link>https://blog.youkuaiyun.com/Masterxiang/article/details/144000982</link><guid>https://blog.youkuaiyun.com/Masterxiang/article/details/144000982</guid><author>Masterxiang</author><pubDate>Tue, 26 Nov 2024 23:43:40 +0800</pubDate><description><![CDATA[是 KCP 协议的核心函数之一，用于接收来自网络的数据包，并将这些数据包解析后处理（如更新状态、确认数据、将接收的数据放入接收队列等）。所有 KCP 会话的操作都依赖于这个控制块，它可以被视为 KCP 协议的核心对象。它负责将有序的、可用的数据从 KCP 的接收缓冲区移动到应用程序提供的缓冲区中。它处理超时重传、数据发送、窗口更新、流控等操作，是定时器驱动机制的关键。将接收队列中的分片数据拼接起来，并复制到应用层提供的缓冲区中。是 KCP 的核心逻辑调度函数，负责更新协议的状态。]]></description><category></category></item><item><title><![CDATA[kcp之数据发送流程]]></title><link>https://blog.youkuaiyun.com/Masterxiang/article/details/144000405</link><guid>https://blog.youkuaiyun.com/Masterxiang/article/details/144000405</guid><author>Masterxiang</author><pubDate>Sat, 23 Nov 2024 22:44:37 +0800</pubDate><description><![CDATA[KCP 的数据发送逻辑围绕发送队列 (snd_queue和发送窗口 (snd_buf用户调用，将数据加入发送队列。通过分片机制，将长数据拆分成多个段。调用更新发送状态，动态调整发送窗口并发送数据。数据通过用户设置的回调函数output()发送到底层 UDP 套接字。发送过程中，依靠滑动窗口和流量控制，避免网络拥塞并确保可靠传输。这些机制结合在一起，使 KCP 能够在不可靠的 UDP 传输上实现可靠、高效的数据传输。]]></description><category></category></item><item><title><![CDATA[kcp协议之接收数据流程]]></title><link>https://blog.youkuaiyun.com/Masterxiang/article/details/143999821</link><guid>https://blog.youkuaiyun.com/Masterxiang/article/details/143999821</guid><author>Masterxiang</author><pubDate>Sat, 23 Nov 2024 22:18:21 +0800</pubDate><description><![CDATA[底层接收 (ikcp_input解析协议头，校验数据合法性。数据片段存入接收缓冲区rcv_buf。发送 ACK 确认包。应用层提取 (ikcp_recv检查是否有完整数据。将分片数据按照顺序组装成完整消息。返回数据给用户。通过ikcp_input和ikcp_recv的配合，KCP 实现了可靠、高效的数据接收和组装机制。]]></description><category></category></item><item><title><![CDATA[kcp协议之数据包格式]]></title><link>https://blog.youkuaiyun.com/Masterxiang/article/details/143999632</link><guid>https://blog.youkuaiyun.com/Masterxiang/article/details/143999632</guid><author>Masterxiang</author><pubDate>Sat, 23 Nov 2024 21:48:51 +0800</pubDate><description><![CDATA[每个数据包都由一个固定长度的头部和可变长度的负载数据组成。以下是 KCP 数据包的详细结构。将用户数据打包，KCP 按需将数据分片，并为每个分片构造一个完整的数据包。，从接收队列中提取完整的用户数据，并将分片数据按照。接收方在解析完数据包后，根据序列号。数据包通过 UDP 发送到接收方。)，更新发送方的窗口状态。KCP 协议的核心是。]]></description><category></category></item></channel></rss>