1、为什么要学习?——市场动向分析
-
市场背景:
对于这几年的互联网市场,越来越多的市场需求导致人才输出渠道更加丰富,五花八门的教育机构培训班, 学校对互联网人才的培养同样会显得越来越重视 -
问题分析:
那么,越来越多的人才的出现必将给我们学员带来更大的挑战,怎么增大在互联网市场的竞争力
-
解决方案: 从宏观的角度来讲我们首先必须增加自我个体的价值和特色
-
总结:
在学习框架知识的同时,我们应该注重高级知识的学习,让高级篇幅成为自己的特色,从而在压力巨大的 市场中脱颖而出。作为网络知识的一大环节,TCP知识的学习将会给你的知识体系带来特色。显然,TCP知识以及成为大厂选拔人才中常常会涉猎到的加分项。
三次握手讲解地址:https://blog.csdn.net/weixin_42083036/article/details/103349451
2、TCP 状态码分析
- SYN 请求同步码 由请求端发出
- ACK 状态确认码 一般由请求接收端发出
- FIN 结束码 两者都能
3、四次挥手图解
四次挥手过程分析
A:“喂,我不说了 (FIN)。”A->FIN_WAIT1
B:“我知道了(ACK)。等下,上一句还没说完。Balabala…..(传输数据)”B->CLOSE_WAIT | A->FIN_WAIT2
B:”好了,说完了,我也不说了(FIN)。”B->LAST_ACK
A:”我知道了(ACK)。”A->TIME_WAIT | B->CLOSED
A等待2MSL,保证B收到了消息,否则重说一次”我知道了”,A->CLOSED
4、TCP 三次握手、四次挥手十一种状态
- CLOSED
- LISTEN
- SYN-SENT
- SYN-RCVD
- ESTAB-LISTEN
- FIN_WAIT1
- CLOSE_WAIT
- FIN_WAIT2
- LAST_ACK
- TIME-WAIT
第十一种特殊状态:CLOSING
这种状态在实际情况中应该很少见,属于一种比较罕见的例外状态。正常情况下,当一方发送FIN报文后,按理来说是应该先收到(或同时收到)对方的ACK报文,再收到对方的FIN报文。但是CLOSING 状态表示一方发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文。什么情况下会出现此种情况呢?那就是当双方几乎在同时close()一个SOCKET的话,就出现了双方同时发送FIN报文的情况,这是就会出现CLOSING 状态,表示双方都正在关闭SOCKET连接。
常见面试题
【问题1】为什么连接的时候是三次握手,关闭的时候却是四次握手?
答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,“你发的FIN报文我收到了”。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。