自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

redwingz的博客

Linux内核网络、虚拟化

  • 博客(10)
  • 资源 (5)
  • 论坛 (1)
  • 收藏
  • 关注

原创 SACK压缩

变量tcp_comp_sack_nr定义在接收到连续的乱序报文时,可压缩的最大SACK回复报文数量,即低于tcp_comp_sack_nr值时,延时回复对端ACK报文。但是,前TCP_FASTRETRANS_THRESH(3)数量的乱序报文,要立即回复ACK报文,以帮助对端完成快速重传。Compressed-ACK初始化static int __net_init tcp_sk_init(str...

2020-03-31 21:29:31 456

原创 Forward-RTO超时确认

虚假的重传超时将导致TCP性能的降低,因为这将发送不必要的重传报文。Forward-RTO是一种用于检测虚假重传超时的一种算法,F-RTO仅针对发送端,其不需要任何TCP选项的支持。在超时重传第一个未确认的报文之后,TCP发送端的F-RTO检测回来的ACK报文,来确定此次超时是否是虚假的。进而,决定是否发送新的报文,或是重传未确认报文。F-RTO初始化如下内核函数tcp_sk_init,将sy...

2020-03-29 21:53:21 216

原创 Tail Loss Probe实现

Tail loss probe (TLP)利用RACK减少RTO的发生,TLP触发快速恢复以修复末端丢包,否则只能由之后的RTO来修复。在原始报文发送之后,TLP将在1到2倍的RTT时间内发送探测数据报文,探测报文可以是新的、之前非发送过的报文,或者重传SND.NXT序号之前已经发送过的报文。探测报文的发送旨在激起对端的反馈,例如ACK报文,这样RACK就可以发起快速重传,而不用等待RTO超时。...

2020-03-28 22:37:00 434

原创 PAWS检查

PAWS(Protection Against Wrapped Sequences)功能基于TCP的Timestamps选项实现,用于拒绝接收到的过期的重复报文。PAWS假设每个报文都携带有TSopt选项数据,其中的时间戳TSval保持单调递增,所有,当接收到一个报文其TSval值小于之前在此连接中接收到的时间戳(ts_recent),即认定此报文为过期报文,将其丢弃。由于TSval时间戳为32...

2020-03-22 07:34:50 681

原创 TCP之timestamps选项

默认情况下内核是开启timestamps选项的,如下tcp_sk_init函数中对sysctl_tcp_timestamps的初始化。static int __net_init tcp_sk_init(struct net *net){ net->ipv4.sysctl_tcp_timestamps = 1;也可通过PROC文件tcp_timestamps控制选项行为,tcp...

2020-03-20 22:53:52 2655

原创 TCP窗口扩张系数选项WSCALE

如下图所示,TCP窗口扩张系数选项长度为3个字节,在TCP握手阶段的SYN报文和SYN+ACK报文中携带,其旨在通告对发送和接收窗口扩张功能的支持,以及通告扩张系数。注意前者意味着只有在SYN报文中通告了对WSopt选项的支持时,回复的SYN+ACK报文才可携带WSopt选项,否则,SYN+ACK报文中不可携带WSopt。在SYN或者SYN+ACK报文中的通告的窗口值都是不能进行扩张的。扩张系数...

2020-03-15 21:07:20 1275

原创 TCP初始拥塞窗口与初始接收窗口

根据RFC3390(2002年)中的表述,TCP初始窗口的上限定义为: min (4 * MSS, max (2*MSS, 4380 bytes)),旨在限制初始窗口在4K范围内,但是当MSS非常大时,会超过4K限制。 If (MSS <= 1095 bytes) then win <= 4 * MSS; If (1095 bytes ...

2020-03-13 22:35:42 1907

原创 内核TCP的SYNCOOKIES

如下PROC文件tcp_syncookies默认值为1,表明在套接口的SYN backlog队列溢出时,将开启SYNCOOKIES功能,抵御SYN泛洪攻击。如果tcp_syncookies设置为2,将会无条件的开启SYNCOOKIES功能。$ cat /proc/sys/net/ipv4/tcp_syncookies1$ $ cat /proc/sys/net/ipv4/tcp_max_s...

2020-03-12 21:38:07 678

原创 TCP初始序列号

介绍一下对TCP初始序列号(Initial Sequence Numbers)的理解。TCP客户端ISNTCP客户端首次发起连接,在函数tcp_v4_connect中,调用secure_tcp_seq函数初始化其ISN序号,在稍后一节进行介绍。int tcp_v4_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len){...

2020-03-04 21:30:05 1033

原创 内核SYNPROXY实现

SYNPROXY配置如下,首先标记需要处理的报文,这里需要两个配置,一是关闭nf_conntrack_tcp_loose,这样无端的TCP报文(非SYN报文)将会被conntrack标记为INVALID状态。二是设置notrack标志,对TCP的SYN报文不继续连接跟踪,其状态为UNTRACKED。 echo 0 > /proc/sys/net/netfilter/nf_conntr...

2020-03-03 22:00:56 445

WEB Portal 认证完整的交互报文

web认证交互报文,包括WLAN controller与portal server的认证与注销,AC与radius 服务器的认证报文。

2018-04-24

IKEv2-camellia.pcap

IKEv2协议使用camellia加密算法的协商报文,交互流程。

2019-10-28

IKEv2-rw-cert2.pcap

strongswan使用linux内核的af_alg加密接口配置,IKEv2协议交互报文。

2019-10-28

libssh2-1.8.0 and ssh2_batch example

ssh2_batch可执行程序,用于非交互式的ssh命令执行。源代码和libssh2

2018-06-13

botan-ed25519.pcap

IKEv2协议交互报文,认证方式选用Ed25519算法的证书方式。

2019-10-28

redwingz的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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