1.为什么四次挥手而不是三次挥手?为何不能像握手时候一样server把ack和fin(syn)用同一步发过去?
答:原因是挥手第二步(server给client发ack)之时,server这边可能还有数据没有对外传输完。所以等传输完了再进行第三步(给client发fin)。
2.何种情况会产生rst?
答:我把它分为两类,一种是client给server发push时,server已经在这之前接受过fin的ack已经至少半关闭了无法对外传数据了,于是这种对于push的ack就无法发回来,就返回client一个rst;另一种是client给server尚未传输完数据就关闭了,此时不会正常发fin,而是发一个rst给server,表示我这里发生了非正常关闭。