快速模式第一包: quick_outI1()】的更多相关文章

文章目录 1. 序言 2. quick_outI1()流程图 3. quick_outI1()源码分析 4. quick_outI1_continue()源码分析 5. quick_outI1_tail()源码分析 5.1 out_sa() 5.2 emit_subnet_id() 5.3 encrypt_message() 5.4 out_modify_previous_np() 6. 小结 1. 序言 openswan源码中有关隧道协商的文章已经比较久没有更新了,那么从这篇开始再重新回到更新…
TCP报文段首部格式 大部分TCP报文头部都是20个字节,有的数据包要加上选项. 上面一行代表4个字节,源端口和目的端口都是2个字节. TCP协议是面向字节流的协议 TCP是一段一段分块的发送数据的 序号指的就是你当前分段的数据块的第一个字节在整个文件中的位置,就是对应的序号.对端收到数据之后,按照序号的从小到大重新组装起来,得到的就是我们要发送的文件.所以TCP是面向字节流的协议. 确认号: 如果被叫收到了序号是1的数据段,该数据段的长度是4个字节,最后一个字节的是4,那么下次我想收到的数据段…
文章目录 1. IKEv2 协商总体框架 2. 第一包流程图 3. openswan源码学习 3.1 ikev2parent_outI1() 3.2 ikev2parent_outI1_withstate() 3.3 ikev2_parent_outI1_common() 4. 注意事项 4.1 关于此报文中涉及的对IKEv2引入的"新特性"说明 4.2 在IKEv1与IKEv2在SA载荷结构上的不同之处: 1. IKEv2 协商总体框架 IKEv1协议建立一对IPSec SA,使用主…
文章目录 1. 序言 2. quick_inI1_outR1()流程图 3. 快速模式消息②数据包格式 4. 源码分析 4.1 quick_inI1_outR1() 4.2 quick_inI1_outR1_authtail() 4.3 quick_inI1_outR1_cryptocontinue1() 4.4 quick_inI1_outR1_cryptotail() 5. 其他接口源码分析 5.1 decode_net_id() 5.2 emit_subnet_id() 6. 小结 1.…
一.现象 公司互联网域(说白了就是可以连外网的vlan区域的主机)的几台主机在ping一个合作方提供的域名时,发现在ping 第一个包时,时间特别长,后面第2--N包开始正常.直接ping 该域名对应的IP 没这个问题.在使用host -a .dig.nslookup .route.nscd -i hosts等轮番上软分析处理了一通后,问题依旧. 二.验证问题 本地nscd 的 DNS cache都清理了还不行,而且本机上又没有bind DNS服务配置.考虑到ping 里面有一个 -n 参数,即…
1. ISAKMP交互过程中关键函数接口 下面分别说明不同的阶段和模式下的函数接口以及对应的报文. 2. 第一阶段(Phase I)主模式函数接口 发送端 响应端 main_outI1 主模式第一包 main_inI1_outR1 主模式第二包 main_inR1_outI2 主模式第三包 main_inI2_outR2 主模式第四包 main_inR2_outI3 主模式第五包 main_inI3_outR3 主模式第六包 main_inR3 发送端 响应端 3. 第一阶段(Phase I)野…
第一阶段:ISAKMP协商阶段 1.1 第一包 包1:发起端协商SA,使用的是UDP协议,端口号是500,上层协议是ISAKMP,该协议提供的是一个框架,里面的负载Next payload类似模块,可以自由使用.可以看到发起端提供了自己的cookie值,以及SA的加密套件,加密套件主要是加密算法,哈希算法,认证算法,生存时间等. Initiator cookie:817622ea01367ec9 发起者的cookie值,告知响应端主机要使用IPSEC的哪一把密钥来加密这个封包. Responde…
快速模式第三包:quick_inR1_outI2() 文章目录 快速模式第三包:quick_inR1_outI2() 1. 序言 2. quick_inR1_outI2()的处理流程 3. 快速模式第③包报文格式 4. quick_inR1_outI2()源码分析 4. quick_inR1_outI2_cryptotail()源码分析 4. compute_keymats()源码分析 5. dpd_init()源码分析 6. install_ipsec_sa()源码分析 1. 序言 在上一篇中…
mysql交互协议是开发mysql周边组件常用的协议,如JDBC,libmysql等等. 在此我们要认识到mysql交互协议其实是半双工的交互协议,至于为什么,这里就先挖个小坑,以后再填. 在探讨mysql交互协议的格式之前,我们要理清一个小问题,就是mysql交互协议会用到的基本数据类型. 1.整数类型 这里的整数类型可以用来表示mysql数据类型中的整数类型.日期时间类型.DOUBLE.FLOAT类型.比特类型以及枚举类型等等. 所有的mysql整数类型都是小端的,这是网络数据的惯例.即对于…
最近在看RTP发送H264数据的文章,感觉很乱,没有比较清晰易懂的教程,自己整理了一下各种资料,备忘! --------Part A  ---- 先说说H264数据,H264在网络传输的是NALU(NAL单元),NALU的结构是:NAL头+RBSP,实际传输中的数据流如图所示: NALU头用来标识后面的RBSP是什么类型的数据,他是否会被其他帧参考以及网络传输是否有错误. NALU头结构为1个字节,既 forbidden_bit(1bit) + nal_reference_bit(2bit) +…