当前位置: 首页 > news >正文

《TCP/IP网络编程》阅读笔记--Timewait状态和Nagle算法

1--Timewait状态

        对于服务器端/客户端,当一端结束连接时,会向另一端发送 FIN 消息;两端的在经过四次挥手过程后,其 Socket 不会马上消除,而是会处于一个 Time-wait 状态的阶段,此时 Socket 拥有的端口号并没有得到释放,因此不能使用相同的端口号

        只有先断开连接的(先发送 FIN 消息)的主机才会经过 Time-wait 状态

        通过 setsockopt() 函数来更改 SO_REUSEADDR 的状态(设置为TRUE)可以将处于 Time-wait 状态的 Socket 端口号重新分配给新的 Socket,具体代码参考:代码实例

2--Nagle算法

        Nagle 算法可以防止数据包过多而导致的网络过载问题,其应用于 TCP 层;

        Nagle 算法规定:只有收到前一数据的 ACK 消息时,Nagle 算法才会发送下一数据;

        一般情况下,不使用 Nagle 算法可以提高传输速度,当传输大文件时可以禁用 Nagle 算法,通过 setsockopt() 函数来设置 TCP_NODELAYTrue禁用 Nagle 算法

// 禁用 Nagle 算法
int opt_val = 1;
setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (void*)&opt_val, sizeof(opt_val));// 查看 Nagle 状态
int opt_val;
socklen_t opt_len;
opt_len = sizeof(opt_val);
getsockopt(sock, IPPROTO_TCP, TCP_NPDELAY, (void*) &opt_val, &opt_len);

http://www.lryc.cn/news/158484.html

相关文章:

  • Python常用IDE选择与安装
  • Docker从认识到实践再到底层原理(三)|Docker在Centos7环境下的安装和配置
  • Jmeter系列-Jmeter面板介绍和常用配置(2)
  • 2023高教社杯数学建模D题思路分析 - 圈养湖羊的空间利用率
  • 自动部署工具PM2
  • 软考高级系统架构设计师系列案例考点专题三:数据库系统考点梳理及精讲
  • 【 XXL-JOB】 XXL-JOB任务分片
  • RK3568开发笔记-SATA接口调试
  • 异步编程 - 09 Spring框架中的异步执行_@Async注解异步执行原理源码解析
  • django-项目
  • 红日靶场五(vulnstack5)渗透分析
  • 掌握Gitflow的一些进阶用法
  • 算法随笔:各种经典最短路算法的简要比较总结
  • concrt140.dll怎么下载,concrt140.dll修复工具(修复精灵下载)一键修复问题
  • 自行实现字符串转浮点数函数atof()
  • Windows平台Fortran编程入门
  • 05-Mysql夺命三连问:什么是索引下推?什么是索引覆盖?什么是回表?【Java面试总结】
  • 晨启,MSP430开发板,51开发板,原理图,PCB图
  • Notepad++ 的安装及配置
  • ✔ ★算法基础笔记(Acwing)(一)—— 基础算法(20道题)【java版本】
  • 简单记录下gin中使用中间件记录操作日志
  • 基于Matlab利用IRM和RRTstar实现无人机路径规划(附上源码+数据+说明+报告+PPT)
  • uniapp使用@microsoft/signalr(报错“ReferenceError: require is not defined“)
  • CloudCompare 二次开发(9)——半径滤波
  • ElementUI浅尝辄止29:Breadcrumb 面包屑
  • ABB MPRC086444-005数字输入模块
  • stable diffusion实践操作-常见lora模型介绍
  • kubeadm 安装k8s
  • 选择最适合您的Bug管理软件:市场比较与推荐
  • Spring MVC的常用注解及用法