既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
第二次握手:服务端返回一个ACK(对客户端连接请求的应答)+SYN(表示服务端发起连接请求),并且包含服务端的一个初始序列号seq=0,同时返回一个确认号ack=1
第三次握手:客户端给服务端返回一个ACK(对服务端连接请求的应答),并更新自己的序列号seq=1,返回一个确认号ack=1
Wireshark分析握手过程
这是我发起连接请求后抓到的数据包
第一次握手:
可以看到,客户端发起一个SYN请求,初始序列号为0
第二次握手
服务端返回SYN+ACK,并且包含服务端的一个初始序列号seq=0,同时返回一个确认号ack=1
第三次握手
客户端返回一个ACK,并且返回一个确认号ack=1,并且将自己的序列号seq更新为1
到此,TCP三次握手就结束了。客户端与服务端之间已经成功建立起连接。
3、TCP数据传输过程分析
我们常说TCP是可靠性的传输协议,那么它是如何实现可靠性的数据传输呢,就是通过序列号和确认应答提高可靠性。
我们从客户端往服务端发送了两次数据,第一次发送了一个字符串"hello",第二次发送了一个字符串"word"。首先客户端发送“hello”时,初始序列号seq为1,服务端接收到数据后,会给一个应答,表示我已经收到了消息,并且这个应答号ack = seq + “接收到的数据长度”,客户端再继续发送时,序列号更新为服务端的应答号的值。
下面我们就抓包看下这个过程。
客户端分别向服务器发送了两次消息,第一次发送了一个字符串“hello”,第二次发送了字符串"word"。
我先从客户端往服务器发送一个字符串 “hello”,我们可以看下,大小为6个字节。
可以看下初始序列号seq为1
然后看下服务器返回了什么,服务器作了一个应答ack=7,表示接受到了客户端的信息
再看下第二次发送字符串"word"的情况,序列号seq更新为上一次服务端的应答号ack,变为7
看下服务端的应答,确认号ack为12
4、TCP四次挥手分析
TCP四次挥手示意图
第一次挥手:客户端发起一个FIN,表示客户端希望断开连接。
第二次挥手:服务端返回一个ACK,表示对客户端断开请求的应答。
第三次挥手:服务端发起一个FIN,表示服务端希望断开连接。
第四次挥手:客户端返回一个ACK,表示对服务端断开请求的应答。
理论上挥手是需要四次的,但抓包分析时,只抓到了三次挥手过程,第二次挥手和第三次挥手合并为一次了。
第一次挥手
客户端发起一个FIN请求(表示客户端希望断开连接),序列号seq=12,应答号ack=23。注意这里的应答是上一次数据通信过程中的应答。
第二次,第三次挥手
服务端返回一个ACK(表示对客户端断开请求的应答) + FIN(表示服务端希望发起断开请求),应答号ack=13,序列号seq=23
第四次挥手
客户端返回一个ACK(表示对服务端断开请求的应答),应答号ack=24,序列号seq=13
收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
.net/topics/618679757)**
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!