03-02 06—10


6、TCP和UDP的區別?為何基於tcp協議的通信比基於udp協議的通信更可靠?

# 答案:
# TCP和UDP的區別?
'''
1、TCP面向連接(如打電話要先撥號建立連接);UDP是無連接的,即發送數據之前不需要建立連接
2、TCP提供可靠的服務。也就是說,通過TCP連接傳送的數據,無差錯,不丟失,不重復,且按序到達;UDP盡最大努力交付,即不保證可靠交付
3、TCP面向字節流,實際上是TCP把數據看成一連串無結構的字節流;UDP是面向報文的
UDP沒有擁塞控制,因此網絡出現擁塞不會使源主機的發送速率降低(對實時應用很有用,如IP電話,實時視頻會議等)
4、每一條TCP連接只能是點到點的;UDP支持一對一,一對多,多對一和多對多的交互通信
5、TCP首部開銷20字節;UDP的首部開銷小,只有8個字節
6、TCP的邏輯通信信道是全雙工的可靠信道,UDP則是不可靠信道
'''

# 為何基於tcp協議的通信比基於udp協議的通信更可靠?
'''
tcp:可靠 對方給了確認收到信息,才發下一個,如果沒收到確認信息就重發
udp:不可靠 一直發數據,不需要對方回應
'''

7、什么是局域網和廣域網?

# 答案:
'''
兩者范圍不一樣:
		局域網就是在固定的一個地理區域內由2台以上的電腦用網線和其他網絡設備搭建而成的一個封閉的計算機組,范圍在幾千米以內;
		廣域網是一種地域跨度非常大的網絡集合,范圍在幾十公里到幾千公里。

兩者的IP地址設置不一樣:
		局域網里面,必須在網絡上有一個唯一的IP地址,這個IP地址是唯一的,在另外一個局域網,這個IP地址仍然能夠使用。
		廣域網上的每一台電腦(或其他網絡設備)都有一個或多個廣域網IP地址,而且不能重復。
'''

8.什么是socket?簡述基於tcp協議的套接字通信流程。

# 答案:
'''
		Socket是應用層與TCP/IP協議族通信的中間軟件抽象層,它是一組接口。在設計模式中,Socket其實就是一個門面模式,它把復雜的TCP/IP協議族隱藏在Socket接口后面,對用戶來說,一組簡單的接口就是全部。

服務端:
		創建socket對象,綁定ip端口bind(),  設置最大鏈接數listen(),  accept()與客戶端的connect()創建雙向管道, send(), recv(),close()

客戶端:
		創建socket對象,connect()與服務端accept()創建雙向管道, send(),recv(),close()
'''

9.什么是粘包? socket中造成粘包的原因是什么? 哪些情況會發生粘包現象?

# 答案:
'''
粘包:
		數據粘在一起,主要因為:接收方不知道消息之間的界限,不知道一次性提取多少字節的數據造成的數據量比較小,時間間隔比較短,就合並成了一個包,這是底層的一個優化算法(Nagle算法)
'''

10.IO多路復用的作用?

# 答案:
'''
		I/O多路復用是用於提升效率,單個進程可以同時監聽多個網絡連接IO。

舉例:
		通過一種機制,可以監視多個文件描述符,一旦描述符就緒(讀就緒和寫就緒),能通知程序進行相應的讀寫操作,I/O多路復用避免阻塞在io上,原本為多進程或多線程來接收多個連接的消息變為單進程或單線程保存多個socket的狀態后輪詢處理。
'''


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM