tcp的三次连接握手和四次释放握手

http://blog.csdn.net/whuslei/article/details/6667471/

这篇博客讲的很清楚。

下面我简单说明一下:三次连接握手,首先client发送请求报文,然后服务器返回,客户端在发送请求。

为什么要三次握手,两次握手不就够了吗?:三次握手是为了确保安全,client向server发送请求,server返回了以后,server不知道client有没有收到返回,所以无法确定client是否能收的到我的响应,倘若不能收到,server还有发的必要吗?对吧,所以,客户端在发一次请求,证明我收到了你的请求,我们两个的通信没有问题,可以开始通信啦~个人觉得这相当于每个人都发送接收一次试试看能不能互相收到,很简单的道理。

为什么要四次握手:首先需要知道一点,无论是客户端还是服务器,都可以取消连接,过程如下(假设为client取消):

client:我要取消连接,你长的太丑...(发送给server消息)

server:我收到了你的信息,不要我拉倒,但是取消之前还是要相互确认一下的。(随即发送给client一个回复)

server:哎呀,他之前请求的东西还没发完呢,等发完了告诉他吧...(过了一会,消息全部发送完毕),好啦,现在消息发送完啦,我也不欠你的啦,88~然后发送一条消息,

告诉client消息发送完毕

client:虽然他是个丑逼,但是还是挺负责的,我也负责吧,随即发送了一条消息告诉server,我收到了你发的消息

至此,通讯完毕。

TCP协议是不是一个很负责任的协议呢?一旦你以负责的角度去思考,TCP就很容易理解啦。

另外:TCP报文是属于IP报文数据的一部分。

IP报文分为IP报头和数据

而数据又包括TCP的报头和数据

所以,才叫做TCP/IP协议嘛!

对了,忘了说一点,建立连接的时候标志有SYN,ACK

取消连接的时候标志有FIN,ACK,ACK为1则表示发送没有问题

原文地址:https://www.cnblogs.com/yzjT-mac/p/6293343.html