看圖說話:
OSI七層與TCP/IP五層對應關係:
下面的圖表試圖顯示不一樣的TCP/IP和其餘的協議在最初OSI模型中的位置:
7 | 應用層 | 例如HTTP、SMTP、FTP、Telnet |
6 | 表示層 | 例如XDR |
5 | 會話層 | 例如TLS、SSH、RPC、Winsock、BSD sockets |
4 | 傳輸層 | 例如TCP、UDP |
3 | 網絡層 | 例如IP、IPX、ARP |
2 | 數據鏈路層 | 例如IEEE、PPP |
1 | 物理層 | 例如線路、光纖、 |
socket和http的區別:
Http協議:簡單的對象訪問協議,對應於應用層。Http協議是基於TCP連接的。
tcp協議:對應於傳輸層
ip協議:對應與網絡層
TCP/IP是傳輸層協議,主要解決數據如何在網絡中傳輸;而Http是應用層協議,主要解決如何包裝數據。php
Socket是對TCP/IP協議的封裝,Socket自己並非協議,而是一個調用接口(API),經過Socket,咱們才能使用TCP/IP協議。服務器
Http鏈接:http鏈接就是所謂的短鏈接,及客戶端向服務器發送一次請求,服務器端相應後鏈接即會斷掉。網絡
socket鏈接:socket鏈接及時所謂的長鏈接,理論上客戶端和服務端一旦創建鏈接,則不會主動斷掉;可是因爲各類環境因素可能會是鏈接斷開,好比說:服務器端或客戶端主機down了,網絡故障,或者二者之間長時間沒有數據傳輸,網絡防火牆可能會斷開該連接已釋放網絡資源。因此當一個socket鏈接中沒有數據的傳輸,那麼爲了位置連續的鏈接須要發送心跳消息,具體心跳消息格式是開發者本身定義的。
socket