面試題目:網絡通信

目錄

題目一:TCP/IP四層模型是什麼?

題目二:UDP與TCP的區別?

題目三:三次握手與四次揮手是什麼?

題目四:TCP和UDP的應用場景是什麼?

題目五:常見的socket有3種類型是什麼?


題目一:TCP/IP四層模型是什麼?

答:應用層,傳輸層,網絡層,數據鏈路層。

題目二:UDP與TCP的區別?

1,TCP是面向有連接型;UDP是面向無連接型;

2,TCP是一對一傳輸,;UDP支持一對一、一對多、多對一和多對多的交互通信;

3,TCP是面向字節流的,即把應用層傳來的報文看成字節流,將字節流拆分成大小不等的數據塊,並添加TCP首部;UDP是面向報文的,對應用層傳下來的報文不拆分也不合並,僅添加UDP首部;

4,TCP支持傳輸可靠性的多種措施,包括保證包的傳輸順序、重發機制、流量控制和擁塞控制;UDP僅提供最基本的數據傳輸能力。

題目三:三次握手與四次揮手是什麼?

1,三次握手:

第一次握手,主機A發送同步報文段(SYN)請求建立連接。

第二次握手,主機B接收到連接請求,向主機A回覆ACK,同時主機B也發送自己的請求建立連接(SYN)。

第三次握手,主機A針對主機B的SYN回覆應答ACK。

2,四次揮手:

第一次揮手,當主機A發送數據完畢後,發送結束報文段(FIN)。

第二次揮手,主機B收到FIN報文後,向主機A發送一個確認序號ACK(爲了防止這段時間對方重傳FIN報文)。

第三次揮手,主機B準備關閉連接,向主機A發送一個FIN結束報文段。

第四次揮手,主機A收到FIN結束報文段後,進入TIME_WAIT狀態,並向主機B發送ACK表示連接徹底釋放。

注:TIME_WAIT狀態存在的理由,A不能保證最後的ACK能達到B, 所以, 還應該觀望一段時間, 護送一段時間。 如果最後的ACK丟失, 那麼B顯然收不到,  B於是發起了重傳FIN的操作, 此時如果A處於CLOSED的狀態, 就沒辦法給對端發ACK了(實際是發RST), 嗚呼哀哉。 所以A應該等一段時間, 這段時間就是所謂的TIME_WAIT,

題目四:TCP和UDP的應用場景是什麼?

1,TCP:當對網絡通訊質量有要求的時候,比如整個數據要準確無誤的傳輸給對方。常見的協議:HTTP(超文本傳輸協議),HTTPS,FTP(文件傳輸協議),POP(用於接收郵件),SMTP(郵件傳送協議)等。

2,UDP:當強調傳輸性能而不是傳輸的完整性,要求網絡通訊速度能儘量的快。常見的協議:DNS(域名解析),SNMP(網絡管理協議),TFTP(簡單文件傳輸協議)等。

題目五:常見的socket有3種類型是什麼?

1,流式socket(SOCK_STREAM):提供一種面向連接,可靠的數據傳輸服務。該服務保證數據能夠實現無差錯,無重複發送,並按順序接收。

2,數據包socket(SOCK_DGRAM):提供一種無連接的服務。該服務並不能保證數據傳輸的可靠性,數據有可能在傳輸過程中丟失或出現數據重複,且無法保證順序地接收到數據。

3,原始套接字(SOCK_RAW):主要用於一些協議的開發,可以進行比較底層的操作。

歡迎訂閱公衆號【從零開始學無線】,一起學習交流!

                                                                   

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