1. 程式人生 > >PKI學習之路(二)-----------------------淺談socket

PKI學習之路(二)-----------------------淺談socket

首先為什麼要用socket?

如果沒有socket,我們傳輸資料需要藉助TCP/IP協議,不僅需要三次握手,還要友好分手,每次傳輸都要經過複雜的連線,具體傳輸過程中,也會有一大堆的問題,什麼滑動視窗,什麼累計確認,分組快取,流量控制,,,聽著就頭皮發麻,而socket就是TCP/IP的實現

講一個人:

Bill Joy 

是一個天才程式設計師,主要工作包括BSD Unix作業系統, 實現TCP/IP協議棧, vi 編輯器,c shell , NFC, SPARC處理器,jini等。

當年DARPA(美國國防部先進研究專案局)和一個叫做BBN的公司簽署了一個合同,要把TCP/IP協議加入到Berkeley Unix當中, 當研究生Bill Joy 看到BBN寫的TCP/IP實現時, 覺得非常差勁,拒絕把它加入核心, 後來乾脆捲起袖子自己實現了一個高效能的TCP/IP棧, 這個協議棧至今是網際網路的基石。

別人問他是怎麼實現這麼複雜的軟體的, 這位大神說: “很簡單啊, 你只需要看看協議, 然後把程式碼寫出來就行了”

客戶端和服務端的互動流程

 

客戶端和服務端配置一個埠號,因為同一臺機器同時執行好多個程序,那麼互動資訊就是通過埠號(相當於門牌號)去傳送,接受,這些都會被封裝再socket中

 

soket_name 客戶端ip 客戶端埠 服務端ip 服務端埠
hello_socket        

 

客戶端傳送一個hello_socket到伺服器,伺服器建立一個socket儲存這個hello_socket,然後就可以通過soket裡面的資訊,把處理結果返回給客戶端