tcp会无限次重传吗

tcp作为面向连接的,可靠的,字节流。最终要的特点就是可靠,其中重传又是保证可靠的重要前提。那么当tcp发送数据之后,收不到ack的情况下,会无限次重传吗。不会

cat /proc/sys/net/ipv4/tcp_retries1

3

cat /proc/sys/net/ipv4/tcp_retries2

15

root@tegra-ubuntu:/xdata/wyl#

tcp_retries1和tcp_retries2,类似于一次警告,二次罚款。重传次数超过tcp_retries1时不会放弃重传,直到超过tcp_retries2时,才会真正放弃重传。

/proc/sys/net/ipv4/tcp_retries1:

超过这个次数,tcp会将信息报告给网络层,网络层会进行一些操作,比如缓存的更新等。

/proc/sys/net/ipv4/tcp_retries2:

超过这个次数,tcp会放弃重传,然后通过函数tcp_write_err将套接字的状态置错误。socket状态置为错误之后,针对这个socket的阻塞调用,比如read,epoll_wait等便会返回,但是返回值表示错误。

cpp 复制代码
static void sock_def_error_report(struct sock *sk)
{
	struct socket_wq *wq;

	rcu_read_lock();
	wq = rcu_dereference(sk->sk_wq);
	if (skwq_has_sleeper(wq))
		wake_up_interruptible_poll(&wq->wait, EPOLLERR);
	sk_wake_async_rcu(sk, SOCK_WAKE_IO, POLL_ERR);
	rcu_read_unlock();
}

在代码中,用tcp_retries1和tcp_retries2来判断是否超时,在函数retransmits_timed_out中判断是否超时。

/proc/sys/net/ipv4/tcp_syn_retries:

在建立连接的阶段,syn报文的重传次数。

/proc/sys/net/ipv4/tcp_synack_retries:

在建立连接阶段,syn-ack报文的重传次数。

相关推荐
winfreedoms4 分钟前
VMware 桥接模式无法联网:从 DHCPDISCOVER 到静态 IP 的完整排障实战
网络协议·tcp/ip·ubuntu·桥接模式·vmware·嵌入式学习
JAVA面经实录91723 分钟前
网络编程基础(Java Web/分布式前置·完整版)(十一)
java·前端·网络
Shadow(⊙o⊙)32 分钟前
Linux网络部分——TCP服务端、客户端架构分析多进程、多线程、线程池
c++·tcp/ip·架构
記億揺晃着的那天12 小时前
NAS 内网域名访问为什么需要浏览器授权
网络·nginx·js·nas
chunmiao303212 小时前
DeepSeek V4-Pro 正式版上线,API 8月17日起分时调价
网络·安全
迪康Defender14 小时前
AI 重构终端安全运营:智能分析中枢 AI Insight 模块架构与落地场景深度解析
运维·网络·人工智能·其他·安全·重构·架构
0x5315 小时前
Java网络编程(二)
java·服务器·网络
西安景驰电子17 小时前
《PTP精确时间协议系列》第一篇:从原理到应用,全面解读IEEE 1588
linux·运维·服务器·开发语言·网络·windows·php
Bruce_Liuxiaowei17 小时前
基于微步在线威胁情报的公网 IP 攻击迹象监测:threatbook_query 脚本全解析与 BruceSec 平台整合实践
数据库·tcp/ip·安全·网络安全·智能体
ZGi.ai17 小时前
多模型回答不稳定:路由规则与评测方法
网络·人工智能·大模型评测·多模型·模型路由·zgi·模型网关