python网络通信协议_Python网络概述:协议与体系结构的运用
網絡中存在多臺主機,為保證主機間能順利通訊,且通信雙方可以獲取到準確、有效的數據,應制訂一組用于數據傳輸的規則,這組規則就是協議。
協議需要預先制定,同時,為確保網絡通訊過程中對各種事件的應對能“有法可依”,協議應面面俱到。但網絡間的通信需要經歷復雜的過程,一段復雜過程中的各項操作會出現各種各樣的結果,為復雜過程的多種結果也會是復雜的。為了簡化協議,人們考慮按照通信過程中各項工作的性質,將工作分為不同層次,并為每一層制定各自的協議。
制定協議時為網絡間通信過程所劃分的層次通常稱為計算機網絡的體系結構。下面先對網絡體系結構進行講解,再基于體系結構中的層次介紹常用的網絡協議。
1. 網絡體系結構
計算機網絡中常見的體系結構有OSI(Open System Interconnect,開放式系統互聯模型)和TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協議/互聯網協議模型)。
OSI由國際標準協會ISO制定,共分為七層,由上而下依次為應用層、表示層、會話層、傳輸層、網絡層、數據鏈路層和物理層,雖然OSI由ISO制定,但其實用性較差,并未得到廣泛應用。
在OSI誕生時,因特網已實現了全世界的基本覆蓋,因此市面上應用最廣泛的體系結構為因特網中使用的TCP/IP體系結構,該結構包含四層,分別為應用層、傳輸層、網際層和網絡接口層。
此外,在計算機網絡中通常以一種包含五層協議的體系結構來講解各層之間的功能與聯系,這種體系結構結合OSI和TCP/IP的優點,分為應用層、傳輸層、網絡層、數據鏈路層和物理層。
以上三種體系結構中各層的對應關系如圖1所示。
圖1 計算機網絡體系結構
五層協議體系結構中各層的功能分別如下:
(1)物理層。物理層是計算機體系結構的最底層,它為設備之間的數據傳輸提供可靠的環境。
(2)數據鏈路層。數據鏈路層簡稱鏈路層,該層將從網絡層獲取的數據報組裝成幀,在網絡結點之間以幀為單位傳輸數據。
(3)網絡層。為分組交換網上的不同主機提供通信服務,在進行通信時,將從傳輸層獲取的報文段或數據報封裝成分組或包,數據或包通常稱為數據報。
(4)傳輸層。為應用進程提供連接服務,實現連接兩端進程的會話。
(5)應用層。為應用進程提供服務,定義了應用進程間通信和交互的規則。
2. 協議
計算機網絡通信基于TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協議/互聯網協議),TCP/IP實際上并不是協議,而是協議族,它由多種協議構成,包括TCP協議、UDP協議、IP協議等等,其中TCP、UDP協議應用在傳輸層;IP協議應用在網絡層。
(1)TCP協議
TCP協議即傳輸控制協議(Transmission Control Protocol),該協議是一種面向連接的、可靠的、基于字節流的傳輸協議。在傳遞數據之前,收發雙方會先通過一種被稱為“三次握手”的協商機制使通信雙方建立連接,為數據傳輸做好準備。為了防止報文段丟失,TCP會給每個數據段一個序號,使接收端按序號順序接收數據。若接收端正常接收到報文段,向發送端發送一個確認信息;若發送端在一定的時延后未接收到確認信息,便假設報文段已丟失,并重新向接收端發送對應報文段。此外,TCP協議中定義了一個校驗函數,用于檢測發送和接收的數據,防止產生數據錯誤。
通信結束后,通信雙方經過“四次握手”關閉連接。因為TCP連接是全雙工的(全雙工指交換機在發送數據的同時也能夠接收數據,兩者同步進行,類似語音通話,雙方在說話的同時也能夠聽到對方的聲音),所以每個方向必須單獨關閉連接,即連接的一端需先發送關閉信息到另一端,當關閉信息發送后,發送關閉信息的一端不會再發送信息,但另一端仍可向該端發送信息。
(2)UDP協議
UDP協議即用戶數據報協議(User Datagram Protocol),它是一種無連接的傳輸層協議。 UDP的收發雙方不存在連接,當按照UDP協議傳輸數據時,發送方使用套接字文件發送數據報給接收方,之后可立即使用同一個套接字發送其它數據報給另一個接收方;同樣的,接收方也可以通過相同的套接字接收由多個發送方發來的數據。
UDP不對數據報進行編號,它不保證接收方以正確的順序接收到完整的數據,但會將數據報的長度隨數據發送給接收方。雖然UDP面向無連接的通信,不能如TCP般很好地保證數據的完整性和正確性,但UDP處理速度快,耗費資源少,因此在對數據完整性要求低、對傳輸效率要求高的應用中一般使用UDP協議傳輸數據。
(3)IP協議
IP協議的兩個基本功能為尋址和分段。傳輸層的數據封裝完成后沒有直接發送到接收方,而是先遞達網絡層;網絡層又在原數據報前添加IP首部,封裝成IP數據報,并解析數據報中的目的地址,為其選擇傳輸路徑,將數據報發送到接收方,IP協議中這種選擇道路的功能稱為路由功能。此外,IP協議可重新組裝數據報,改變數據報的大小,以適應不同網絡對包大小的要求。需要說明的是,IP協議不提供端到端或結點到結點的確認,只檢測報頭中的校驗碼,不提供可靠的傳輸服務。
雖然各層使用的協議互不相同,但協議通常都由如下3個部分組成:
(1)待交互數據的結構和格式;
(2)進行交互的方式,包括數據的類型、對數據的處理動作等;
(3)事件實現順序的說明。
一組完整的協議不僅需要考慮通信雙方在正常情況下的動作,還應考慮到通信時可能出現的異常,并對異常情況下通信雙方的動作做出規定。
猜你喜歡:
總結
以上是生活随笔為你收集整理的python网络通信协议_Python网络概述:协议与体系结构的运用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不知道该如何挑选合适的瓷砖?
- 下一篇: vue.js2.0 新手开发_VueJs