tcp協議相關問題答疑

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,表示我這裏發生了非正常關閉。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章