TCP,IP,HTTP,SOCKET的介紹以及它們這間的區別和聯系技術提升了嗎

【TCP,IP,HTTP,SOCKET的介紹以及它們這間的區別和聯系技術提升了嗎】小編在這段時間遇到好多廣大網友的咨詢 , 今天免費分享一下關于電腦系統和電腦操作教程的知識大全 , 這篇文字是關于TCP,IP,HTTP,SOCKET的介紹以及它們這間的區別和聯系技術提升了嗎的文字 , 歡迎大金仔細閱讀 , 如果不懂請多多關注我們網址陸續更新更多更全面的電腦教程 。
TCP,IP,HTTP,SOCKET區別和聯系
網絡由下往上分為: 對應
物理層--
數據鏈路層--
網絡層-- IP協議
傳輸層-- TCP協議
會話層--
表示層和應用層-- HTTP協議
socket
則是對TCP/IP協議的封裝和應用(程序員層面上) 。 也可以說 , TPC/IP協議是傳輸層協議 , 主要解決數據 如何在網絡中傳輸 , 而HTTP是應用層協議 , 主要解決如何包裝數據 。 關于
我們在傳輸數據時 , 可以只使用(傳輸層)TCP/IP協議 , 但是那樣的話 , 如 果沒有應用層 , 便無法識別數據內容 , 如果想要使傳輸的數據有意義 , 則必須使用到應用層協議 , 應用層協議有很多 , 比如HTTP、FTP、TELNET等 , 也 可以自己定義應用層協議 。 WEB使用HTTP協議作應用層協議 , 以封裝HTTP文本信息 , 然后使用TCP/IP做傳輸層協議將它發到網絡上 。
我們平時說的最多的socket是什么呢 , 實際上socket是對TCP/IP協議的封裝 , Socket本身并不是協議 , 而是一個調用接口(API) , 通過Socket , 我們才能使用TCP/IP協議 。 實際上 , Socket跟TCP/IP協議沒有必然的聯系 。 Socket編程接口在設計的時候 , 就希望也能適應其他的網絡協議 。 所以說 , Socket的出現 只是使得程序員更方便地使用TCP/IP協議棧而已 , 是對TCP/IP協議的抽象 , 從而形成了我們知道的一些最基本的函數接口 , 比如create、 listen、connect、accept、send、read和write等等 。 網絡有一段關于socket和TCP/IP協議關系的說法比較容易理 解:
TCP/IP只是一個協議棧 , 就像操作系統的運行機制一樣 , 必須要具體實現 , 同時還要提供對外的操作接口 。 這個就像操作系統會提供標準的編程接口 , 比如win32編程接口一樣 , TCP/IP也要提供可供程序員做網絡開發所用的接口 , 這就是Socket編程接口 。
總結一些基于基于TCP/IP協議的應用和編程接口的知識 , 也就是剛才說了很多的 HTTP和Socket 。
CSDN上有個比較形象的描述:HTTP是轎車 , 提供了封裝或者顯示數據的具體形式;Socket是發動機 , 提供了網絡通信的能力 。
實際上 , 傳輸層的TCP是基于網絡層的IP協議的 , 而應用層的HTTP協議又是基于傳輸層的TCP協議的 , 而Socket本身不算是協議 , 就像上面所說 , 它只是提供了一個針對TCP或者UDP編程的接口 。
下面是一些經常在筆試或者面試中碰到的重要的概念 , 特在此做摘抄和總結 。
一 。 什么是TCP連接的三次握手
第一次握手:客戶端發送syn包(syn=j)到服務器 , 并進入SYN_SEND狀態 , 等待服務器確認;
第二次握手:服務器收到syn包 , 必須確認客戶的SYN(ack=j+1) , 同時自己也發送一個SYN包(syn=k) , 即SYN+ACK包 , 此時服務器進入SYN_RECV狀態;
第三次握手:客戶端收到服務器的SYN+ACK包 , 向服務器發送確認包ACK(ack=k+1) , 此包發送完畢 , 客戶端和服務器進入ESTABLISHED狀態 , 完成三次握手 。
握手過程中傳送的包里不包含數據 , 三次握手完畢后 , 客戶端與服務器才正式開始傳送數據 。 理想狀態下 , TCP連接一旦建立 , 在通信雙方中的任何一方主動關閉 連接之前 , TCP 連接都將被一直保持下去 。 斷開連接時服務器和客戶端均可以主動發起斷開TCP連接的請求 , 斷開過程需要經過四次握手(過程就不細寫了 , 就是服務器和客 戶端交互 , 最終確定斷開)
二 。 利用Socket建立網絡連接的步驟
建立Socket連接至少需要一對套接字 , 其中一個運行于客戶端 , 稱為ClientSocket  , 另一個運行于服務器端 , 稱為ServerSocket 。

推薦閱讀