TCP之旅
五山小新新
希望每天6点下班,然后逛超市,买水果,买牛奶,看美女。
展开
-
Packetdrill 简明使用手册
1. Packetdrill 编译与安装源码链接 https://github.com/google/packetdrill.git源码编译注释netdev.c/* Set the offload flags to be like a typical ethernet device */static void set_device_offload_flags(struct local_ne原创 2016-08-16 09:07:10 · 4245 阅读 · 0 评论 -
Linux TCP 协议栈数据流走读
1. 综述Linux的TCP协议非常复杂,看了几天Linux内核的tcp实现犹如雾里看花。在这里主要是根据书籍《The Linux Networking Architecture》 24章,以及结合网上的资料,走读一遍tcp协议的数据流的发送和接收。而内核源码是Centos 7.2的标准内核3.10。这个版本和书中的介绍的函数有点不一样。tcp的数据流就是tcp数据的发送和接收两个方面。具体的系统调原创 2016-08-24 22:34:39 · 4968 阅读 · 0 评论 -
python Scapy 随心所欲撩tcp协议栈
1. 前言如果只需要研究Linux的tcp协议栈行为,只需要使用packetdrill就能够满足我的所有需求。packetdrill才是让我随心所欲地撩tcp协议栈。packetdrill的简单使用手册。然而悲剧的是,除了要研究Linux的TCP协议栈行为,还需要研究Windows的tcp协议栈的行为,Windows不开源,感觉里面应该有挺多未知的坑。为了能够重现Windows的tcp协议栈的一些网原创 2016-08-25 00:25:14 · 18170 阅读 · 0 评论 -
Linux TCP协议栈定时器走读
导语:TCP协议栈是事件驱动的,如果说TCP的拥塞算法是tcp协议栈的心脏,那么tcp协议栈的定时器则是tcp协议栈的心跳。1. 数据结构TCP协议栈的定时器众多,也异常复杂,在这里主要简单走一遍tcp协议栈的定时器机制。N.Wirth曾说:程序=数据结构+算法。某大牛曾说:好的数据结构设计是程序成功的一半。首先来看一下定时器的数据结构:struct timer_list //include原创 2016-09-15 20:49:59 · 6244 阅读 · 0 评论