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报文的重传次数。

相关推荐
惘嘫、冋渞3 小时前
AWS同一账号下创建自定义VPC并配置不同区域的对等链接
网络·云计算·aws
云知谷5 小时前
【HTML】网络数据是如何渲染成HTML网页页面显示的
开发语言·网络·计算机网络·html
呉師傅9 小时前
关于联想ThinkCentre M950t-N000 M大师电脑恢复预装系统镜像遇到的一点问题
运维·网络·windows·电脑
代码AI弗森10 小时前
无状态的智慧:从 HTTP 到大模型的系统进化论
网络·网络协议·http
酷熊代理10 小时前
安卓手机 IP 切换指南:告别卡顿,轻松换 IP
网络·网络协议·tcp/ip·socks5
月上柳青10 小时前
快速创建无线AP热点
网络·智能路由器
K_i13411 小时前
云原生网络基础:IP、端口与网关实战
网络·ip·接口隔离原则
m0_6515939112 小时前
Netty网络架构与Reactor模式深度解析
网络·架构
大面积秃头12 小时前
Http基础协议和解析
网络·网络协议·http
我也要当昏君14 小时前
6.3 文件传输协议 (答案见原书 P277)
网络