自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

九天小哥的专栏

天道酬勤

  • 博客(6)
  • 资源 (2)
  • 收藏
  • 关注

原创 TCP数据发送之TSO/GSO

TSO相关的内容充斥着TCP的整个发送过程,弄明白其机制对理解TCP的发送过程至关重要,这篇笔记就来看看TSO相关内容。1. 基本概念我们知道,网络设备一次能够传输的最大数据量是MTU,即IP传递给网络设备的每一个数据包不能超过MTU个字节,所以IP层分段和重组功能,这两个功能就是为了适配网络设备的MUT而存在的。从理论上来讲,TCP可以不关心MTU的限定,只需要按照自己的意愿随意的将数据包丢...

2019-02-26 00:07:25 7696 3

原创 TCP数据发送之发送窗口

TCP的发送过程由滑动窗口控制,而滑动窗口的大小受限于发送窗口和拥塞窗口,拥塞窗口由拥塞控制算法的代表,而发送窗口是流量控制算法的代表,这篇笔记记录了发送窗口相关的内容,包括发送窗口的初始化、更新、以及它是如何影响数据发送过程的。1. 概述TCP的发送窗口可以用下图表示:如图所示,TCB中有三个成员和发送窗口强相关。struct tcp_sock {... //下一个要发送的序号,即...

2019-02-26 00:07:12 9207

原创 TCP选项之SACK选项的发送

当接收方收到乱序报文时,如果在TCP握手过程中,双方都表示支持SACK选项,那么就会生成SACK选项信息,并且在下一次报文发送过程中将这些选项发送给发送方,这篇笔记记录了SACK选项的生成过程以及SACK选项的发送过程。1. 相关数据结构1.1 struct tcp_sockTCB结构中有如下字段和SACK选项的发送过程有关:struct tcp_sock {... //用户保存生成的...

2019-02-24 02:06:06 1002

原创 TCP数据接收之快速路径处理

1. 基本原理TCP的接收过程为什么要分为快速路径和慢速路径处理,如下面这段话所述:就是要高效,如果满足快速路径,那么在接收过程中就可以使用更少的检查条件。1.1 首部预测标记那么什么样的数据包是当前最期望收到的数据包呢?共有两种情况:如果才发送了数据,那么这时最期望收到的就是对刚发送数据的确认;如果只是接收场景,那么最期望收到的一定是以rcv_nxt为起始序号的数据包。如何来...

2019-02-24 00:48:51 1498

原创 TCP数据接收之入口

IP层组合出一包数据后,如果数据包首部的协议字段表明上层协议为TCP,则调用TCP的tcp_v4_rcv()函数将数据传递给传输层继续处理,传输层的整体处理过程是非常复杂的,这篇笔记就先来看看传输层的入口处是如何处理的。1. 三个队列TCP对输入数据包的整体处理流程可以简单的用下图表达:从上图中可以看到TCP的接收过程会涉及到三个队列:prequeue队列、receive队列以及backl...

2019-02-22 22:29:35 2624 1

原创 TCP选项之SACK选项概述

标准的TCP确认机制中,如果发送方发送了0-1000序号之间的数据,接收方收到了0-100、300-1000,那么接收方只能向发送方确认101,这时发送方会重传所有101-1000之间的数据,实际上这是不必要的。为了优化这种情况,必须让发送方知道更多的接收信息,所以发展出了SACK选项,关于SACK的标准见RFC 2018。SACK在实际使用中是比较普遍的一个选项,而且相关的内容也较多,准备用三...

2019-02-21 23:53:40 21888 2

实验代码: vcard.rar

和https://blog.csdn.net/fanxiaoyu321/article/details/102768690配合的源码

2019-10-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除