更新時間:2020-08-20 16:06:06 來源:動力節(jié)點 瀏覽2967次
1. TC P和UDP的區(qū)別
tcp:面向連接的傳輸控制協(xié)議,具有高可靠性,確保傳輸數(shù)據(jù)的正確性,有驗證重發(fā)機制,因此不會出現(xiàn)丟失或者亂序。
upd:是無連接的數(shù)據(jù)報服務(wù),不對數(shù)據(jù)報進行檢查與修改,無須等待對方的應(yīng)答,會出現(xiàn)分組丟失,重復(fù),亂序,但具有較好的事實性,UPD段結(jié)構(gòu)比TCP的段結(jié)構(gòu)簡單,因此網(wǎng)絡(luò)開銷也小。
2. tcp連接建立的時候三次握手,斷開連接的4次握手的具體過程
建立連接采用的3次握手協(xié)議,具體是指:
*第一次握手是客戶端connect連接到server
*第二次server accept(接收)client的請求之后,向client(客戶)端發(fā)送一個消息,相當于說我都準備好了,你連接上我了
*第三次就是client向server發(fā)送的,就是對第二次握手消息的確認。之后,client和server就開始通訊了。
斷開連接的四次握手,具體如下:
*斷開連接的一端發(fā)送close請求是第一次握手
*另外一端接收到斷開的連接的請求之后需要對close進行確認,發(fā)送一個消息,這是第二次握手
*發(fā)送完確認消息之后,還要向?qū)Χ税l(fā)送close消息,要關(guān)閉對對端的連接,這是第三次握手
*而且最初發(fā)送斷開連接的一端接收到消息之后,進入到一個很重要的狀態(tài),time_wait狀態(tài),這個狀態(tài)也是面試官經(jīng)常問道的問題,最后一次握手是最初發(fā)送斷開連接的一端接收到消息之后。對消息的確認。
3. 什么是同步?什么是異步?
同步:
如果有多個任務(wù)或者事件要發(fā)生,這些任務(wù)或者事件必須逐個地進行,一個事件或者任務(wù)的執(zhí)行會導(dǎo)致整個流程的暫時等待,這些事件沒有辦法并發(fā)的執(zhí)行。
異步:
如果有多個任務(wù)或者事件發(fā)生,這些事件都可以并發(fā)的執(zhí)行,一個事件或者任務(wù)不會導(dǎo)致整個流程的暫時等待。
事實上同步和異步是一個非常廣的概念,他們的重點在于多個任務(wù)和事件發(fā)生時,一個事件的發(fā)生或執(zhí)行是否會導(dǎo)致整個流程的暫時等待,一般來說可以通過多線程的方式來實現(xiàn)異步,但是千萬不要將多線程和異步畫上符號,異步只是一個宏觀上的模式,采用多線程來實現(xiàn)異步的一種手段,并且通過多進程也可以實現(xiàn)異步
同步和異步著重點在于多個任務(wù)的執(zhí)行過程中一個任務(wù)的執(zhí)行是否會導(dǎo)致整個流程的暫時等待。
以上就是動力節(jié)點java培訓(xùn)機構(gòu)的小編針對“常見的Java網(wǎng)絡(luò)編程面試題”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。