在tcp/ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。
第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入syn_send狀態,等待伺服器確認;
第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器進入syn_recv狀態;
第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手。
完成三次握手,客戶端與伺服器開始傳送資料,在上述過程中,還有一些重要的概念:
未連線佇列:在三次握手協議中,伺服器維護乙個未連線佇列,該隊列為每個客戶端的syn包(syn=j)開設乙個條目,該條目表明伺服器已收到syn包,並向客戶發出確認,正在等待客戶的確認包。這些條目所標識的連線在伺服器處於syn_recv狀態,當伺服器收到客戶的確認包時,刪除該條目,伺服器進入established狀態。
backlog引數:表示未連線佇列的最大容納數目。
syn-ack 重傳次數 伺服器傳送完syn-ack包,如果未收到客戶確認包,伺服器進行首次重傳,等待一段時間仍未收到客戶確認包,進行第二次重傳,如果重傳次數超過系統規定的最大重傳次數,系統將該連線資訊從半連線佇列中刪除。注意,每次重傳等待的時間不一定相同。
筆試面試目前遇到常見的問題 tip ip的建立過程
在tcp ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。第一次握手 建立連線時,客戶端傳送syn包 syn j 到伺服器,並進入syn send狀態,等待伺服器確認 第二次握手 伺服器收到syn包,必須確認客戶的syn ack j 1 同時自己也傳送乙個syn包 syn k 即...
Java面試筆試常遇到的問題
for int j 0 jarray i 1.繼承類不同 a hashmap繼承 abstractmap b hashtable繼承dictionary 2.執行效率不同 a hashmap是非執行緒安全的,是hashtable的輕量級實現,效率較高 b hashtable是執行緒安全的,效率較低 ...
面試遇到的問題
1.mysql的乙個表,以a.b.c三個字段作為聯合索引,如果以其中的乙個字段作為查詢條件,會不會用到索引 如果以a 也就是聯合索引的第乙個索引 作為查詢條件 則會用到索引 如果以b或者c作為查詢條件 則不會用到索引 2.玩家登陸的具體流程 客戶端首先連線loginserver 從loginserv...