TCP协议发送SKB时ip_summed成员的设置 http://blog.csdn.net/justlinux2010/article/details/8508455
TCP协议发送SKB时ip_summed成员的设置
- /* This routine computes an IPv4 TCP checksum. */
- void tcp_v4_send_check(struct sock *sk, int len, struct sk_buff *skb)
- {
- struct inet_sock *inet = inet_sk(sk);
- struct tcphdr *th = tcp_hdr(skb);
- if (skb->ip_summed == CHECKSUM_PARTIAL) {
- th->check = ~tcp_v4_check(len, inet->saddr,
- inet->daddr, 0);
- skb->csum_start = skb_transport_header(skb) - skb->head;
- skb->csum_offset = offsetof(struct tcphdr, check);
- } else {
- th->check = tcp_v4_check(len, inet->saddr, inet->daddr,
- csum_partial(th,
- th->doff << 2,
- skb->csum));
- }
- }
- /*
- * Only clear those fields we need to clear, not those that we will
- * actually initialise below. Hence, don't put any more fields after
- * the tail pointer in struct
- */
- memset(skb, 0, offsetof(struct sk_buff, tail));
- skb->truesize = size + sizeof(struct sk_buff);
- atomic_set(&skb->users, 1);
- /*
- * Check whether we can use HW checksum.
- */
- if (sk->sk_route_caps & NETIF_F_ALL_CSUM)
- skb->ip_summed = CHECKSUM_PARTIAL;
版权声明:本文为博主原创文章,未经博主允许不得转载。
TCP协议发送SKB时ip_summed成员的设置 http://blog.csdn.net/justlinux2010/article/details/8508455相关推荐
- TCP协议发送SKB时ip_summed成员的设置
tcp_send_ack()函数是内核用来发送ACK的函数,该函数比较简单,就是先分配一个SKB包,然后简单的初始化(初始化操作中没有设置ip_summed)后,调用tcp_transmit_skb ...
- TCP协议发送SKB时ip_summed初始值为0
转摘至http://www.2cto.com/kf/201301/183563.html?fw_key=B782188880BAA902 tcp_send_ack()函数是内核用来发送ACK的函数,该 ...
- 数据采集之解析Mysql的binlog日志发送至Kafka实时消费(转:https://blog.csdn.net/liguohuabigdata/article/details/79472777)
本文采用Maxwell来实现实时解析mysql的binlog日志发送至kafka 1.开启mysql binlog 环境中mysql是docker容器,所以需要进入容器修改mysql配置.docker ...
- Java Socket编程 - 基于TCP方式的二进制文件传输【转】http://blog.csdn.net/jia20003/article/details/8248221...
此人博客挺好的,推荐一个! 一个基于Java Socket协议之上文件传输的完整示例,基于TCP通信完成. 除了基于TCP的二进制文件传输,还演示了JAVA Swing的一些编程技巧,Demo程序 实 ...
- 转:浅谈Radius协议 -来自CSDN:http://blog.csdn.net/wangpengqi/article/details/17097221
浅谈Radius协议 2013-12-03 16:06 5791人阅读 评论(0) 收藏 举报 分类: Radius协议分析(6) 从事Radius协议开发有段时间了,小弟不怕才疏学浅,卖弄一下, ...
- GTP(GPRS Tunnelling Protocol)协议http://blog.csdn.net/stephen_yin/article/details/6951237
GTP(GPRS Tunnelling Protocol)协议 标签: extensionheaderinternet网络wapxhtml 2011-11-09 10:15 6097人阅读 评论( ...
- TCP协议发送和接收数据
TCP协议发送与接收数据 一.发送数据 1.使用Socket类的构造方法创建Socket对象 Socket(InetAddress address, int port) 创建一个流套接字并将其连接到指 ...
- Java中通过TCP协议发送和接收数据-Socket编程
TCP TCP协议是面向连接.保证高可靠性(数据无丢失.数据无失序.数据无错误.数据无重复到达)传输层协议. TCP通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端 ...
- 免费的TCP测试工具,自己写的,运行jar包就能用,定时通过TCP协议发送自定义XML
最近做项目想要模拟发送TCP数据,但是网上各种工具都不好用,所以自己写了一个: 具体功能:能够自定义XML格式,自定义对方的Tcp端口,自定义定时发送的间隔,直接在安装有java环境变量的电脑中使用C ...
最新文章
- 不同浏览器Cookie有效期问题
- [Leetcode] Combinations 组合数
- 业界丨OpenAI 发布通用人工智能研究纲领:以全人类的名义承诺
- 提取指定的PDF表格保存到Excel
- 实现 JavaScript 异步方法 Promise.all
- python的科学计算库有哪些_《用Python进行科学计算》——SciPy数值计算库
- sudo chown r mysql_Linux 文件基本属性: chown修改所属组 和 chmod修改文件属性命令
- php文件开头加数据,在PHP中附加到文件的开头
- Latex安装与使用
- python三方库是什么_python第三方库有哪几种
- 【信道估计】LS/MMSE信道估计,CS信道估计的MATLAB仿真
- DxO FilmPack 5 for Mac(胶片模拟效果滤镜软件)
- shuipFCMS的开发记录
- python zip(*zipped)的疑问
- 2023,本命年向阳而生
- android开发利用传感器实现微信的摇一摇功能
- C语言中的fprintf函数
- 华为解锁密码忘了怎么办用计算机,不记得手机锁屏密码怎么办_华为手机密码忘了的解决方法-系统城...
- C语言程序设计:单词本整体框架实现
- VGG16预训练学习笔记
热门文章
- Android Facebook登录,进来看就对了
- 给textView设置文字渐变色
- 输入手机号获取验证码的注册页面,说出测试过程
- Canvas炫酷3D线条动画背景
- CodeForces - 25A IQ test【水题】
- Beyond Compare4
- Python3《机器学习实战》学习笔记(三):朴素贝叶斯基础篇之言论过滤器
- 神一样的编程语言? -- 发现一个编程语言“shen”
- Unity动画☀️7. 通过MatchTarget匹配跳墙动画、Vector3、获取动画层GetCurrentAnimatorStateInfo(a).IsName(b)
- python元组(戴了紧箍咒的列表)