面試題之六

2021-06-28 21:58:45 字數 402 閱讀 3789

什麼是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狀態 完成三次握手.

握手過程中傳送包裡不包含資料, 在通訊雙方中的任何一方主動關閉連線之前, tcp連線將一直保持下去. 斷開連線時, 伺服器和客戶端均可以主動發起斷開tcp連線的請求, 斷開過程需要經過四次握手

Google面試題(六)

題目 對現在的stack 棧 資料結構進行改進,加乙個min 功能,使之能在常數,即o 1 時間內給出棧中的最小值。可對push 和pop 函式進行修改,但要求其時間複雜度都只能是o 1 分析 要使pop,push,min都是o 1 所以肯定要犧牲點空間 思路 1 在stack的資料結構中加兩個個字...

iOS 面試題(六)

回答person的retaincount值,並解釋為什麼 person per person alloc init self.person per 1 或者2 看物件用什麼屬性修飾,person類物件在建立的時候引用計數加1,若用 assign類不會使引用計數加1的屬性修飾 person的retai...

C 面試題(六)

1 判斷乙個字串是否是回文,例如 level 解析 根據題目要求,可以從單詞兩端進行遍歷比較。1 計算要比較的單詞字串長度,如level長度是5,則需要比較兩次。2 第一次比較,看第乙個和最後乙個字元是否相同,3 第二次比較,第二個符和倒數第二個字元比較是否相同。如下 cpp 檔案 include ...