4:Socket 编程
你还在为TCP重传、滑动窗口、流量控制、拥塞控制发愁吗?看完图解就不愁了
====================================
前言
相信大家都知道TCP是一个可靠传输的协议,那它是如何保证可靠的呢?
为了实现可靠性传输,需要考虑很多事情,例如数据的破坏、丢包、重复以及分片顺序混乱等问题。如不能解决这些问题,也就无从谈起可靠传输。
那么,TCP是通过序列号、确认应答、重复控制、连接管理以及窗口控制等机制实现可靠性传输的。
今天,将重点介绍TCP的重传机制、滑动窗口、流量控制、拥塞控制。
超时重传
重传机制的其中一个方式,就是在发送数据时,设定个定时器, 当超过指定的时间后,没有收到对方的ACK确认应答报文,就会重发该数据,也就是我们常说的超时重传。
TCP会在以下两种情况发生超时重传:
-
.数据包丢失
-
确认应答丢失
实战!我用Wireshark让你「看得见」TCP
========================
前言
为了让大家更容易「看得见」TCP, 我搭建不少测试环境,并且数据包抓很多次,花费了不少时间,才抓到比较容易分析的数据包。接下来丢包、乱序、超时重传、快速重传、选择性确认、流量控制等等TCP的特性,都能「一览无余」
没错,我把TCP的"衣服扒光"了,就为了给大家看得清楚,嘻嘻。
TCP半连接队列和全连接队列满了会发生什么?又该如何应对?
=============================
前言
网上许多博客针对增大TCP半连接队列和全连接队列的方式如下:
-
增大TCP半连接队列的方式是增大/proc/sys/netipv4/tcp_ max_ syn. _backlog
-
增大TCP全连接队列的方式是增大listen0 函数中的backlog ;
这里先跟大家说下,上面的方式都是不准确的。
什么?我怎么知道上面的是不准确的?
很简单呀,因为我做了实验和看了TCP协议栈的内核源码,发现要增大这两个队列长度,不是简简单单增大某一个参数就可以的。
接下来,就会以实战+源码分析,带大家解密TCP半连接队列和全连接队列。
在TCP三次握手的时候,Linux 内核会维护两个队列,分别是:
-
半连接队列,也称SYN队列;
-
全连接队列,也称accepet队列;
服务端收到客户端发起的SYN请求后,内核会把该连接存储到半连接队列,并向客户端响应SYN+ACK,接着客户端会返回ACK,服务端收到第三次握手的ACK后,内核会把连接从半连接队列移除,然后创建新的完全的连接,并将其添加到accept队列,等待进程调用accept函数时把连接取出来。
面试官:换人!他连TCP这几个参数都不懂
====================
前言
TCP性能的提升不仅考察TCP的理论知识,还考察了对于操作系统提供的内核参数的理解与应用。
TCP协议是由操作系统实现,所以操作系统提供了不少调节TCP的参数。
接下来,将以三个角度来阐述提升TCP的策略,分别是:
- TCP三次握手的性能提升;
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
最后
针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。
下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)
最新整理电子书
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
JlgGqQp-1712635585849)]
最新整理电子书
[外链图片转存中…(img-4DSFrJ95-1712635585849)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-fDeiTtyz-1712635585849)]