所有的东西难道不是一句请求一句回答就能办到的事情么??
nono!
tcp为什么要三次握手
“a传给b一个syn包,因为网络的问题延迟了,那么a就会重新传一个,b收到了之后就算连接好了,
但是如果那个延迟的syn包到达了b,b就会认为这是一次新的连接,会等待这个新连接传来数据
但事实是这个只是一个被丢弃的连接,永远不会和b有结果,
所以第三次的握手就是为了确认这个连接的真假”
为什么是四次挥手
首先客户端会有两个fin_wait状态,第一次是为了等服务端的对连接请求的回应,
第二次是为了让服务端把数据传完,
传完之后呢,显然不能完事
time_wait的作用
有一个细节就是服务端能不能收到客户端的ack,如果收不到会重新发fin包,这个时候客户端要是closed就不好了
这是理由之一。
还有一个是客户端与服务端之间会有很多被丢弃的包,因为种种原因没有到达客户端,总不能下次连接的时候又出现趴,那不是就混乱了么,所以time_wait=2sml 这个是一个包在网络里面最长的存活时间,过了这个时间就不能在作妖了。