學習Python基礎--------7網路編程

來源:互聯網
上載者:User

標籤:code   大學   虛擬   編程   目的   建立   系統   ipv6   訊息   

通訊端

  通訊端是電腦網路資料結構,它體現了通訊節點概念,在任何類型的通訊開始之前,網路應用程式必須建立通訊端,可以將它比作電話插孔,沒有他將無法通訊。

  通訊端最早是加利福尼亞大學的伯克利版本UNIX(UNIX BSD)通訊端稱為bokeli通訊端或BSD通訊端。通訊端最初是為同一主機上的應用程式建立的,使主機上啟動並執行一個程式(又名一個進程)和另一個運行程式進行通訊。這就是所謂的進程通訊,有兩種的通訊端類型:基於檔案和面向網路的

  UNIX通訊端是第一個通訊端家族,並擁有家族名字  AF_UNIX,他代表地址家族:UNIX

  因為兩個進程運行在同一台電腦上,所以這些通訊端基於檔案,這就意味著檔案系統支援他們的底層基礎結構,這就能夠說得通了,因為檔案是一個運行在同一主機上的多個進程之間的常量。

  第二種類型的通訊端是面向網路的,它有自己的家族名稱AF_INET,或者家族:網際網路  。另一個家族AF_INET6用於第6版網際網路協議(IPV6)定址

連線導向通訊端與無串連通訊端

1.連線導向通訊端

  連線導向通訊端意味著通訊之前必須先建立一個串連,例如使用電話系統給朋友打電話。這種類型的通訊我們稱為虛擬電路或流通訊端。

  面對串連的通訊提供序列化的,可靠的和不重複的資料交付,而沒有記錄邊界,這基本意味著每條資訊可以拆分成多個片段,並且每一段資訊片段都能確保能夠到達目的地,然後將它按順序組合在一起,最後完整訊息傳遞給正在等待的應用。

  實現這種類型的主要協議是傳輸控制通訊協定TCP,為了建立TCP通訊端,必須使用SOCK_STREAM作為套位元組類型。TCP通訊端的名字SOCK_STREAM基於流通訊端的其中一種表示。因為這些通訊端(AF_INET)的網路版使用網際網路協議IP來搜尋網路中的主機,所以整個系統結合這兩種協議(TCP和IP來進行)

2.不需連線的通訊端

不需連線的通訊端被稱為資料報類型的通訊端,通訊不用建立串連,傳輸無法保證重複性,循序性,可靠性,可以整體發送。它成本低廉效能更好。

  實現這種連線類型的主要協議是使用者資料包通訊協定UDP。為了建立UDP通訊端,必需使用SOCK_DGRAM作為通訊端類型,因為這些通訊端也是用網際網路協議來尋找網路主機,所以有個更普通的名字UDP/IP

另外還有

socket.SOCK_RAW     #原始通訊端,普通的通訊端無法處理ICMP、IGMP等網路報文,而SOCK_RAW可以;其次,SOCK_RAW也可以處理特殊的IPv4報文;此外,利用原始通訊端,可以通過IP_HDRINCL通訊端選項由使用者構造IP頭。

socket.SOCK_RDM  #是一種可靠的UDP形式,即保證交付資料報但不保證順序。SOCK_RAM用來提供對原始協議的低級訪問,在需要執行某些特殊操作時使用,如發送ICMP報文。SOCK_RAM通常僅限於進階使用者或管理員啟動並執行程式使用。

一個簡單的本地

 

學習Python基礎--------7網路編程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.