什麼是Socket?Socket協議的形象描述

2021-04-13 14:02:06 字數 1351 閱讀 4167

socket的英文原義是「孔」或「插座」。在這裡作為4bds unix的程序通訊機制,取後一種意義。socket非常類似於**插座。以乙個國家級**網為例。**的通話雙方相當於相互通訊的2個程序,區號是它的網路位址;區內乙個單位的交換機相當於一台主機,主機分配給每個使用者的局內號碼相當於socket號。任何使用者在通話之前,首先要占有一部**機,相當於申請乙個socket;同時要知道對方的號碼,相當於對方有乙個固定的socket。然後向對方撥號呼叫,相當於發出連線請求(假如對方不在同一區內,還要撥對方區號,相當於給出網路位址)。對方假如在場並空閒(相當於通訊的另一主機開機且可以接受連線請求),拿起**話筒,雙方就可以正式通話,相當於連線成功。雙方通話的過程,是一方向**機發出訊號和對方從**機接收訊號的過程,相當於向socket傳送資料和從socket接收資料。通話結束後,一方掛起**機相當於關閉socket,撤消連線。

在**系統中,一般使用者只能感受到本地**機和對方**號碼的存在,建立通話的過程,話音傳輸的過程以及整個**系統的技術細節對他都是透明的,這也與socket機制非常相似。socket利用網間網通訊設施實現程序通訊,但它對通訊設施的細節毫不關心,只要通訊設施能提供足夠的通訊能力,它就滿足了。

至此,我們對socket進行了直觀的描述。抽象出來,socket實質上提供了程序通訊的端點。程序通訊之前,雙方首先必須各自建立乙個端點,否則是沒有辦法建立聯絡並相互通訊的。正如打**之前,雙方必須各自擁有一台**機一樣。在網間網內部,每乙個socket用乙個半相關描述:

(協議,本地位址,本地埠)

乙個完整的socket有乙個本地唯一的socket號,由作業系統分配。

最重要的是,socket 是面向客戶/伺服器模型而設計的,針對客戶和伺服器程式提供不同的socket 系統呼叫。客戶隨機申請乙個socket (相當於乙個想打**的人可以在任何一台入網**上撥號呼叫),系統為之分配乙個socket號;伺服器擁有全域性公認的 socket ,任何客戶都可以向它發出連線請求和資訊請求(相當於乙個被呼叫的**擁有乙個呼叫方知道的**號碼)。

socket利用客戶/伺服器模式巧妙地解決了程序之間建立通訊連線的問題。伺服器socket 半相關為全域性所公認非常重要。讀者不妨考慮一下,兩個完全隨機的使用者程序之間如何建立通訊?假如通訊雙方沒有任何一方的socket 固定,就好比打**的雙方彼此不知道對方的**號碼,要通話是不可能的。

-----

在internet上有很多這樣的主機,這些主機一般執行了多個服務軟體,同時提供幾種服務。每種服務都開啟乙個socket,並繫結到乙個埠上,不同的埠對應於不同的服務。socket正如其英文原意那樣,象乙個多孔插座。一台主機猶如布滿各種插座的房間,每個插座有乙個編號,有的插座提供220伏交流電, 有的提供110伏交流電,有的則提供有線電視節目。 客戶軟體將插頭插到不同編號的插座,就可以得到不同的服務。  

初識Socket Socket總結 一

要想理解socket首先得熟悉一下tcp ip協議族,tcp ip transmission control protocol internet protocol 即傳輸控制協議 網間協議,定義了主機如何連入網際網路及資料如何再它們之間傳輸的標準,從字面意思來看tcp ip是tcp和ip協議的合稱,...

什麼是LVM 什麼是LV 什麼是VG

lvm logicl volume manager 邏輯卷管理器,通過使用邏輯卷管理器對硬碟儲存裝置進行管理,可以實現硬碟空間的動態劃分和調整。一 基本概念 1 物理卷 pv physical volume 物理卷在邏輯卷管理中處於最底層,它可以是實際物理硬碟上的分割槽,也可以是整個物理硬碟。2 捲...

什麼是IaaS?什麼是PaaS?什麼是SaaS?

最近有朋友問我,什麼是iaas?什麼是paas?什麼是saas?他們又有什麼分別?其實,雲計算發展到今天,這些當年看似新穎的概念,已經快爛大街了,從業者早就對這些概念習以為常,但是圈外人卻依然是丈二和尚摸不著頭腦。今天我就來為圈外人士來解答一下,什麼是iaas,什麼是paas,什麼是saas。先來說...