java解析tcp包 TCP中已有SO_KEEPALIVE選項,為什么還要在應用層加入心跳包機制?
TCP中已有SO_KEEPALIVE選項,為什么還要在應用層加入心跳包機制?應用層不能使用TCP層的頭,因為在應用層可以看到的是傳輸層的數(shù)據(jù)部分。有時應用層需要維護與服務器的弱鏈接,例如半小時刷新。雖
TCP中已有SO_KEEPALIVE選項,為什么還要在應用層加入心跳包機制?
應用層不能使用TCP層的頭,因為在應用層可以看到的是傳輸層的數(shù)據(jù)部分。有時應用層需要維護與服務器的弱鏈接,例如半小時刷新。雖然傳輸層可以始終保持連接狀態(tài),但服務器有時承受不起長連接的負擔,最好通過應用層來完成。當網絡擁塞時,連接過程很容易超時和中斷。TCP通過設置keepalive來調節(jié)重傳數(shù)據(jù)的頻率。
事實上,下級可以執(zhí)行的功能是上級所需要的。