在c语言中如何屏蔽一段程序,如何在用C语言关闭TCP程序中的Nagle算法

TCP为了防止在网络中过多的小分组会导致阻塞,因此提供了Nagle算法:要求一个TCP连接上最多只能有一个未被确认的未完成的小分组,在该分组的确认到达之前不能发送其他的小分组。相反,TCP收集这些少量的分组,并在确认到来时以一个分组的方式发出去。Nagle算法会导致自己写的TCP程序中,小分组不能及时的发送出去。

现在我写了个基于TCP的socket程序,希望AP往client端发送1000个16字节的报文。结果发现client端接收到的报文并不是每次大小都是82字节(82字节是因为有66字节的TCP和IP头等,外加16字节我自己的数据),会出现大小为98字节的数据(98字节是因为有66字节的TCP和IP头等,外加两个16字节的自己的数据)。如下图所示:

6ac351bc6365a4e5e48b5f0c4464073d.png

这时就想起了关闭TCP中的Nagle算法。于是在我的TCP发送的Socket程序中加入如下代码(记得还要导入头文件: #include ):

/* Disable the Nagle (TCP No Delay) algorithm */

//sock_cli是自己定义的socket套接字

int flag = 1;

int ret = setsockopt( sock_cli, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(flag) );

if (ret == -1) {

printf("Couldn‘t setsockopt(TCP_NODELAY)\n");

exit(-1);

}

重新编译并且运行,抓包后如下图所示:

129e62506076476a878c6e530e94b068.png

可以发现不会在出现小分组等待的现象,说明关闭了Nagle算法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303205.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CCNP课堂练习四:frame-relay traffic-shaping(帧中继流量×××)

帧中继(Frame Relay)是一种网络与数据终端设备(DTE)接口标准。它可以减少结点的处理时间,提高网络的吞吐量。帧中继提供的是数据链路层和物理层的协议规范,任何高层协议都独立于帧中继协议,因此,大大地简化了帧中继的实现。目前帧中继的主要应用之一是局域网互联,特别是在局域网…

百度内部培训PPT流出:数据分析的道与术

这是一份来自百度内部的数据分析学习PPT,非常经典的入门教材。主要内容1、什么是数据分析(道)1.1 数据分析是什么?1.2 什么是做好数据分析的关键?1.3 分析要思考业务,尤其是接地气1.4 分析要言之有物&#…

VS2010 C++下编译调试MongoDB“.NET研究”源码

考虑到mongodb使用了boost库源码,参考mongodb官方文档后,下载编译boost版本是1.42(时间为2010-2-2)或更新版本:boost版本1.42:http://sourceforge.net/projects/boost/files/boost/1.42.0/boost_1_42_0.zip/download 下载boost源码之后…

有了这15款编程游戏,谁都可以学编程!

1、Coding Games一边玩游戏,一边挑战编程难题。Coding games支持包括PHP、C、JavaScript在内的20多种编程语言。用户界面功能强大,可以定制。例如,你可以选择你的代码编辑器的风格: Emacs、Vim、Classic。如果你想提升编程技能&am…

毕业的那天,程序员师兄竟然让我去做这一行

给大家看一份最新的数据:(薪资表)2018年最新数据:python、大数据、人工智能从业者工资为什么人工智能行业的工资那么高?无论是科研院所,商业巨头还是初创企业,各行各业都在大力开发或者引进人工…

Python 分析《爱情公寓》电影,让我十年情怀一瞬间都喂了狗

深陷抄袭之名、诉讼纠纷的《爱情公寓》终于上映了。情怀粉们的力量不容小觑,截止到8月12,《爱情公寓》票房已经突破3.72亿大关,稳坐票房冠军的宝座,院线排片占比高达40.0%。和超高票房背道而驰的,是各大社交平台上一边…

银行背景下分库分表技术选型

业务持续增长带来的单表数据量过大,必然影响到数据库的读写性能,那到底要不要分库分表呢?阿里巴巴P3C规范给出一个推荐:【推荐】单表行数超过500万行或者单表容量超过2GB,才推荐进行分库分表。说明:如果预计…

单片机矩阵消抖延时c语言,单片机矩阵按键定时器消抖程序源码

芯片是采用的stc89c51单片机.下面是矩阵键盘的电路图,矩阵键盘是接在p2口的.下面是单片机部分的图,数码管显示等完整的原理图可以从http://www.51hei.com/f/ks51.pdf 这里下载本文引用地址:http://www.eepw.com.cn/article/201612/324612.htm下面是程序源…

资料分享 | R语言资料分享来袭

小编从大学开始,便开启资料收集功能。R作为一种统计分析软件,广泛应用于生物、医学、电商、新闻等数据相关行业,并已成为主流数据应用软件之一,经过近几年的积累和沉淀,再加上日常的深入研究,小编收集整理了…

google code for xbmc addons2

2019独角兽企业重金招聘Python工程师标准>>> http://code.google.com/p/xbmc-skin-convergence/downloads/list 转载于:https://my.oschina.net/u/174445/blog/33955

我们需要什么样的开源教育?

点击上方“开源社”关注我们| 作者:庄表伟| 编辑:沈于蓝| 设计:宋传琪‍文章缘起‍写这篇文章的原因,是和几个朋友的闲聊。再之前,是因为看到了几篇文章2020-12-18 《欢迎加入!开放原子大学首批开源讲师认证…

谷歌十年,我的认知被彻底颠覆

这个问题是提给自己的,算是对我 Google 十年的一个小结。强调“不装逼”,主要是提醒自己不要陷入下列俗套:离职后靠黑前雇主、八卦前雇主、揭秘前雇主搏出位(这条是恶行)满足大众猎奇心理吹嘘自己,贬低他人…

redis灵魂拷问:19图+11题带你面试通关

又到了金三银四跳槽季,好多同学已经开始行动了。今天我来助力一把,送出这套redis面试题,助力大家通关。1 redis为什么响应快1.1数据保存在内存中redis数据保存在内存中,读写操作只要访问内存,不需要磁盘IO。1.2.底层数…

趣图:BAT程序员的一天对比

这是一张流传网络的BAT的一天对比图:你看懂了吗?数据与算法之美用数据解决不可能长按扫码关注

教你如何用Harbor 私有镜像仓库搭建

一、Harbor是什么? Docker有个形象的比喻叫集装箱,kubernetes是舵手,而Harbor是港湾,其实是用来保存容器镜像的仓库,企业使用docker、kubernetes时,一般都需要个私有镜像仓库的,Harbor就是其中的…

接好!畅销数学界的科普书,我们免费送!

感谢一直以来的关注与支持一直以来感谢大家对超级数学建模的关注与支持!我们热爱数学,对于数学的可爱、魅力以及神秘,我们也与大家一起探索!我们也热爱分享,把每一次的数学趣味、专业知识分享给大家!此时此…

仿豆丁百度文库网页版阅读器完整解决方案

Java平台要实现类似豆丁百度文科的文档在线阅读,总体思路是讲doc docx等文件格式利用openoffice转换成pdf再用swftools转为swf。再用flexpaper组件显示swf。 此过程涉及软件(实测) openoffice3.2(window) swftools-2011-01-23-1815.exe(window) openoffice3.1.1(lin…

这表白代码让我虎躯一震!

大家都见过哪些让你虎躯一震的代码?就是瞬间让你怀疑人生的那种靠着这个代码成功脱单........那天边和自己喜欢的姑娘聊天 边刷微博,碰巧就刷到了这个图,结果当时脑袋一热就给人发过去了,但没想到对方直接就同意啦哈哈哈哈至于现在…

android cpp做成so库,android so库、jar包生成和使用

搞了很久的Android开发了,一直在使用别人(第三方的sdk),所以今天突发奇想,自己搞一个NDK项目提供给其他app使用。本篇文章就从ndk环境到SDK生成、使用一起说说。废话 不多少开始动起来吧!!一、Android studio ndk环境点…

AgileConfig - 轻量级配置中心1.2.0发布,全新的UI

AgileConfig自发布以来有个“大问题”-UI太丑。因为当初这个项目是给自己用的,连UI界面都没有,全靠手动在数据库里改配置。后来匆匆忙忙使用bootstrap3简单的码了一些界面就发布出来了,易用性上也做的不够好。对此我一直耿耿于怀。终于在过年…