TCP面试相关总结,蚂蚁金服产品经理面试流程

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

持续时间未2MSL,一个数据包在网络中的最长生存时间为MSL。

假设最后客户端回复的ACK丢失,服务器端会在超时时间到来时,重传最后一个FIN包

5、超时重传和快速重传

超时重传:当超时时间到达时,发送方还未收到对端的ACK确认,就重传该数据包

快速重传:当后面的序号先到达,如接收方接收到了1、 3、 4,而2没有收到,就会立即向发送方重复发送三次ACK=2的确认请求重传。如果发送方连续收到3个相同序号的ACK,就重传该数据包。而不用等待超时

7、TCP选项有哪些

TCP首部选项字段多达40B,一些常用的字段有:

1)选项结束字段(EOP,0x00),占1B,一个报文段仅用一次。放在末尾用于填充,用途是说明:首部已经没有更多的消息,应用数据在下一个32位字开始处

2)无操作字段(NOP, 0x01),占1B,也用于填充,放在选项的开头

3)MSS(最大报文段长度),格式如下:种类(1B,值为2),长度(1B,值为4),数值(2B)

用于在连接开始时确定MSS的大小,如果没有确定,就用默认的(一般实现是536B)

4)窗口扩大因子,格式如下:种类(1B,值为3),长度(1B,值为3),数值(1B)

新窗口值 = 首部窗口值 * 2的(扩大因子)次方

当通信双方认为首部的窗口值还不够大的时候,在连接开始时用这个来定义更大的窗口。仅在连接开始时有效。一经定义,通信过程中无法更改。

5)时间戳(应用测试RTT和防止序号绕回)

6)允许SACK和SACK选项

10、三次握手过程中有哪些不安全性

1)伪装的IP向服务器发送一个SYN请求建立连接,然后服务器向该IP回复SYN和ACK,但是找不到该IP对应的主机,当超时时服务器收不到ACK会重复发送。当大量的攻击者请求建立连接时,服务器就会存在大量未完成三次握手的连接,服务器主机backlog被耗尽而不能响应其它连接。即SYN泛洪攻击

防范措施:

1、降低SYN timeout时间,使得主机尽快释放半连接的占用

2、采用SYN cookie设置,如果短时间内连续收到某个IP的重复SYN请求,则认为受到了该IP的攻击,丢弃来自该IP的后续请求报文

3、在网关处设置过滤,拒绝将一个源IP地址不属于其来源子网的包进行更远的路由

11、TCP和UDP的区别

TCP是有连接的,两台主机在进行数据交互之前必须先通过三次握手建立连接;而UDP是无连接的,没有建立连接这个过程

TCP是可靠的传输,TCP协议通过确认和重传机制来保证数据传输的可靠性;而UDP是不可靠的传输

TCP还提供了拥塞控制、滑动窗口等机制来保证传输的质量,而UDP都没有

TCP是基于字节流的,将数据看做无结构的字节流进行传输,当应用程序交给TCP的数据长度太长,超过MSS时,TCP就会对数据进行分段,因此TCP的数据是无边界的;而UDP是面向报文的,无论应用程序交给UDP层多长的报文,UDP都不会对数据报进行任何拆分等处理,因此UDP保留了应用层数据的边界

12、有哪些应用层协议是基于TCP的,哪些是基于UDP的

TCP: FTP、HTTP、Telnet、SMTP、POP3、HTTPS

UDP:DNS、SNMP、NFS

TCP可靠传输的实现:

1.以字节为单位的滑动窗口

发送窗口的位置有窗口前沿和后沿的位置共同决定。发送窗口后沿的变化情况有两种,即不动(没有收到新的确认)和前移(收到了新的确认)。

描述一个发送窗口的状态需要三个指针:P1,P2,P3。

小于P1的是已发送并已收到确认的部分,而大于P3的是不允许发送的部分。

P3-P1=A的发送窗口

P2-P1=已发送但尚未收到确认的字节数

P3-P2=允许发送但当前尚未发送的字节数(称为可用窗口)

假如发送方发送31,32,33,接受方收到序号为32,33的数据,序号31的数据没有收到(也许丢失了,也许滞留在网络中的某处)。请注意,B只能对按序到达的数据中的最高序号给出确认,因此B发送的确认报文段的确认号仍然是31,而不能是32或者33。

对于32,33这种未按序到达的数据会暂存在接收窗口中。

还有一种可能性,就是发送窗口内所有的数据都已正确到达B,B也早已做出确认,但是不幸的是,所有的这些确认都滞留在网络中。为了保证可靠传输,A只能认为B还没有收到这些数据。于是,A在经过一段时间后(由超时计时器控制)就重传这部分数据,重新设置超时计时器,直到收到B的确认为止。如果A收到确认号落在发送窗口中,那么A就可以使发送窗口继续向前滑动、

强调一下三点:

1.虽然A的发送窗口是根据B的接收窗口设置的,但在同一时刻,A的发送窗口并不总是和B的接收窗口一样大。发送方A还可能根据网络当时的拥塞情况适当减小自己的发送窗口的数值。

最后

Java架构进阶面试及知识点文档笔记

这份文档共498页,其中包括Java集合,并发编程,JVM,Dubbo,Redis,Spring全家桶,MySQL,Kafka等面试解析及知识点整理

image

Java分布式高级面试问题解析文档

其中都是包括分布式的面试问题解析,内容有分布式消息队列,Redis缓存,分库分表,微服务架构,分布式高可用,读写分离等等!

image

互联网Java程序员面试必备问题解析及文档学习笔记

image

Java架构进阶视频解析合集

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
024b (备注Java)**
[外链图片转存中…(img-dyFuW01S-1713428329949)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值