2018年6月16日

UDT源码剖析(十一)之SendQueue And RecvQueue

摘要: SendQueue与RecvQueue在代码中与UDP SOCKET相关。在用户将想要发送的数据提交给Buffer之后,由Buffer将数据打包,根据拥塞控制提供的时间计算,在合适的时间提交给SendQueue进行发送。在接收到数据包之后,通过事件驱动的模式通知用户从RecvQueue中拿去数据包。 阅读全文

posted @ 2018-06-16 18:32 ukernel 阅读(744) 评论(0) 推荐(0) 编辑

UDT源码剖析(十)之Channel

摘要: 封装UDP SOCKET,使其成为UDT数据的发送通道,所有的UDT SOCKET都通过这种类型来进行数据发送。为了完整性,咱们接着分析哈~ CChannel 基础数据结构: 初始化: 打开通道: 关闭通道: 设置UDP选项: 获取与设置UDP信息: ,`int CChannel::getRcvBu 阅读全文

posted @ 2018-06-16 18:31 ukernel 阅读(1419) 评论(0) 推荐(0) 编辑

UDT源码剖析(九)之CCC

摘要: 这是整个UDT的算法核心:拥塞控制。我也没太搞明白,不过还是打算列出来,理解的不争取的地方,还请多多指正哈~ CCC 初始化: 销毁: 发送用户定义的packets: 向CUDT实例填充统计信息: 设置系列函数: CCCFactory CUDTCC 初始化: 使用时初始化: 收到一个ACK时: vo 阅读全文

posted @ 2018-06-16 18:31 ukernel 阅读(1289) 评论(0) 推荐(0) 编辑

UDT源码剖析(八)之Cache

摘要: 在UDT源代码中,作者使用了 和`std::list`组装了一个缓存系统,本来在纠结要不要列出来,没有啥技术含量,不过为了完整性,还是列出来吧... CCache 初始化: 销毁: 在HASH'中进行查找: 更新缓存: 清理所有缓存: 阅读全文

posted @ 2018-06-16 18:30 ukernel 阅读(448) 评论(0) 推荐(0) 编辑

UDT源码剖析(七)之Packet

摘要: CPacket 基础数据结构 初始化: CHandShake 获取握手包信息: int CHandShake::serialize(char buf, int& size) { if (size 阅读全文

posted @ 2018-06-16 18:29 ukernel 阅读(521) 评论(0) 推荐(0) 编辑

UDT源码剖析(六)之EPoll

摘要: 常用的事件处理体系EPoll在UDT中有一种独特的用法,初见时觉得鸡肋,越到后来越是觉得妙趣横生。 EPoll 基础数据结构: 初始化: 创建真实的EPoll: 向EPoll中添加UDT SOCKET: 更新EPoll中的UDT SOCKET关注的事件: 获取UDT SOCKET关注的事件: 向EP 阅读全文

posted @ 2018-06-16 18:28 ukernel 阅读(662) 评论(0) 推荐(0) 编辑

UDT源码剖析(五)之Buffer

摘要: UDT源码的体系结构中存在两种Buffer,分别是RecvBuffer和SendBuffer。这两种Buffer分别用于UDT套接字的缓冲区,注意了是UDT SOCKET的数据缓冲,不是UDP SOCKET的数据缓冲。UDP SOCKET有自己的SendQueue和RecvQueue。我会挑选一些非 阅读全文

posted @ 2018-06-16 18:27 ukernel 阅读(672) 评论(0) 推荐(0) 编辑

UDT源码剖析(四)之Socket函数

摘要: UDTSOCKET socket(int af, int type, int protocol) UDT SOCKET的创建顺序: Order 0: :创建UDT SOCKET int bind(UDTSOCKET u, const struct sockaddr name, int namelen 阅读全文

posted @ 2018-06-16 18:25 ukernel 阅读(816) 评论(0) 推荐(0) 编辑

UDT源码剖析(三)之数据结构

摘要: 本节介绍在UDT源代码中所有使用的数据结构 CUDTSocket:描述UDT SOCKET UDTSTATUS:描述UDT SOCKET状态 CUDTUnited:全局管理者,保存所有的UDT SOCKET CMultiplexer:资源复用器,他是所有资源的实际所有者,其他的都只是引用(目前我是这 阅读全文

posted @ 2018-06-16 18:24 ukernel 阅读(1192) 评论(0) 推荐(0) 编辑

TCP/IP详解V2(五)之TCP协议

摘要: TCP处理中的辅助函数 tcp_template 功能A:为TCP和IP首部创建一个模板 tcp_respond 功能A:tcp_input调用它生成RST报文段,携带或者不携带ACK 功能B:tcp_timers调用它发送保活探测报文 tcp_drop 功能A:发送RST报文段并丢弃报文,向应用进 阅读全文

posted @ 2018-06-16 18:20 ukernel 阅读(643) 评论(0) 推荐(0) 编辑

导航