
本文共 1034 字,大约阅读时间需要 3 分钟。
文章目录
Q1:tcp和udp有什么区别?
A1:tcp比udp可靠,它提供的是面向连接、可靠的数据流传输,且有超时重发的功能,而udp则相反。面向连接,通俗的说,就是会确保把数据从一个应用程序传送到另一个应用程序(在确保连接之后才会传数据),而不面向连接,就是指只负责发送,不管你收不收得到,所以udp是不可靠的。
Q2:tcp的三次握手过程是怎样的?
q1:先了解ACK、SYN、Seq是什么?
a1:
SYN(synchronous) 建立连接标志
ACK(acknowledgement ) 确认标志
acknowledge number(确认号码)(=客户端的seq+1)
seq(随机生成的32位的二进制数)
注意:ack和ACK是不一样的,ack是确认序号,是随机产生的,ACK是确认标志,ACK=1时表示确认收到客户端发的信息;
SYN=1时表示请求连接
A2:
三次握手:顾名思义,三次通信,有来有往。
第一次握手:客户端会发送SYN=1到服务端,并随机产生seq=12345的数据包到服务器,服务端由syn=1这个位码可以知道客户端请求与其建立连接;
第二次握手:服务端收到请求后要确认连接信息,它想让客户端知道它已经收到了客户端的信息,就会向客户端发送ack number=(客户端的seq+1),SYN=1,ACK=1,随机产生seq=53421的包;
第三次握手:客户端收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ACK是否为1,若正确,客户端会再发送ack number=(服务端的seq+1),ACK=1,服务端收到后确认seq值与ACK=1则连接建立成功。
通俗地讲:完成第二次握手之后,客户端就可以知道服务端与它连接成功了,但是此时服务端还不知道客户端有没有收到它的“回信”,所以就需要第三次握手,才能确保双方连接成功,也就是客户端在收到服务器的SYN+ACK包后向服务器发送ACK,完成第三次握手;
三次握手也体现了tcp的可靠性(确保双方连接成功)。
Q3:为什么不能两次握手?
A3:由Q2可知,如果只有两次握手,服务端就不知道客户端有没有收到它的“回信”,就不能确保双方已经连接成功,所以就需要三次握手;
Q4:四次挥手是怎样的呢?握手变成挥手了?
A4:顾名思义,握手:见面时就握手,从而建立连接,挥手:聊完了就挥手拜拜咯,进而断开连接。
能理解三次握手应该就可以理解四次挥手了~
发表评论
最新留言
关于作者
