关于 linux中TCP数据包(SKB)序列号的小笔记
来源:互联网 发布:感觉身体被掏空 知乎 编辑:程序博客网 时间:2024/05/20 03:45
关于 SKB序列号的小笔记
为了修改TCP协议,现在遇到了要改动tcp分组的序列号,但是只是在tcp_sendmsg函数中找到了SKB的end_seq 一直没有找到seq
不清楚在那里初始化了,就跟踪了分配SKB的函数 sk_stream_alloc_skb()还是没有找到,最后在函数skb_entail中找到:
static inline void skb_entail(struct sock *sk, struct sk_buff *skb)
{struct tcp_sock *tp = tcp_sk(sk);
struct tcp_skb_cb *tcb = TCP_SKB_CB(skb);
skb->csum = 0;
tcb->seq = tcb->end_seq = tp->write_seq;
tcb->flags = TCPHDR_ACK;
tcb->sacked = 0;
skb_header_release(skb);
tcp_add_write_queue_tail(sk, skb);
sk->sk_wmem_queued += skb->truesize;
sk_mem_charge(sk, skb->truesize);
if (tp->nonagle & TCP_NAGLE_PUSH)
tp->nonagle &= ~TCP_NAGLE_PUSH;
}
0 0
- 关于 linux中TCP数据包(SKB)序列号的小笔记
- 关于 linux中TCP数据包(SKB)序列号的小笔记
- linux TCP数据包封装在SKB的过程分析
- linux TCP数据包封装在SKB的过程分析
- 关于TCP/IP数据包的小认识
- linux 中skb结构
- 内核构造skb数据包的实现总结
- 内核构造skb数据包的实现总结
- 内核构造skb数据包的实现
- 关于数据包的伪装,UDP,TCP
- Linux 内核网络协议栈 中最重要的数据结构 SKB
- 不同情况下构造skb数据包的实现
- 不同情况下构造skb数据包的实现
- Delphi中关于TCP通讯,Indy粘数据包问题
- 从Linux内核中获取TCP数据包到用户程序。
- linux tcp校验和在skb中的实现
- 关于TCP/IP数据包的截取和分析
- 关于TCP/IP数据包的截取和分析
- TOJ 2646
- WinPcap编程2——环境搭建
- 深入浅出Symfony2 - 结合MongoDB开发LBS应用
- Python编程——异常(except)
- Ubuntu解压命令大全
- 关于 linux中TCP数据包(SKB)序列号的小笔记
- WinPcap编程3——获取网络适配器列表
- html之margin 重叠现象
- 安卓应用如何设置为开机自启动?如果自启动失败如何处理?
- java动态代理浅析
- 半监督学习
- 写写技术博客,对2014年进行展望
- timestamp时间戳读取和比较
- 数据结构与算法实验题 6.1 s_sin’s bonus