Socket是什么,通俗易懂點說


網絡由下往上分為 物理層 、數據鏈路層 、 網絡層 、 傳輸層 、 會話層 、 表現層 和 應用層。

通過初步了解,我知道IP協議對應於網絡層,TCP協議對應於傳輸層,而HTTP協議對應於應用層。

TCP/IP協議是傳輸層協議,主要解決數據如何在網絡中傳輸,而HTTP協議是應用層協議,主要解決如何包裝數據。

關於TCP/IP和HTTP協議的關系,網絡有一段比較容易理解的介紹:

“我們在傳輸數據時,可以只使用(傳輸層)TCP/IP協議,但是那樣的話,如果沒有應用層,便無法識別數據內容。如果想要使傳輸的數據有意義,則必須使用到應用層協議。
  應用層協議有很多,比如HTTP、FTP、TELNET等,也可以自己定義應用層協議。
  WEB使用HTTP協議作應用層協議,以封裝HTTP文本信息,然后使用TCP/IP做傳輸層協議將它發到網絡上。”

什么是Socket
那么我們平時說的最多的socket是什么呢,實際上socket是對TCP/IP協議的封裝,它的出現只是使得程序員更方便地使用TCP/IP協議棧而已。socket本身並不是協議,它是應用層與TCP/IP協議族通信的中間軟件抽象層,是一組調用接口(TCP/IP網絡的API函數)

 

網絡有一段關於socket和TCP/IP協議關系的說法比較容易理解:

  “TCP/IP只是一個協議棧,就像操作系統的運行機制一樣,必須要具體實現,同時還要提供對外的操作接口。
  這個就像操作系統會提供標准的編程接口,比如win32編程接口一樣。
  TCP/IP也要提供可供程序員做網絡開發所用的接口,這就是Socket編程接口。”

HTTP是轎車,提供了封裝或者顯示數據的具體形式;
Socket是發動機,提供了網絡通信的能力。

實際上,傳輸層的TCP是基於網絡層的IP協議的,而應用層的HTTP協議又是基於傳輸層的TCP協議的,而Socket本身不算是協議,就像上面所說,它只是提供了一個針對TCP或者UDP編程的接口。

 

原文地址https://blog.csdn.net/github_34606293/article/details/78230456

 


免責聲明!

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



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