TCP和UDP和IP和HTTP和socket
一、計算機網絡的兩種模型
在計算機網絡里,有兩種常見的參考模型即:OSI參考模型和TCP/IP參考模型。TCP本身是傳輸層的協議, 而TCP/IP是一種網絡參考模型。
1.?OSI七層參考模型:
? ? ? 主要是用來清晰的了解網絡結構的分層。這一模型和相關的協議并沒有被使用, 但它具有普遍的意義就是對于討論網絡的體系結構中的每一層的功能。它將服務,接口和協議的概念區分開來。每一層的接口都告訴它上面的進程如何訪問本層。而且每層用到的對等協議是本層自己內部的事情,不影響上層。它同時支持面向連接和無連接的通信,但是傳輸層只支持面向連接的通信。
2.?TCP/IP?模型:
? ? ? 分為四層協議,分別為鏈路層,網絡層,傳輸層,應用層。它對服務,接口和協議沒有明確的區分,下圖也是人們對它進行了改進,使它更像OSI。它的網絡層只支持一種面向無連接的服務, 但傳輸層同時支持TCP(面向連接)和UDP(面向無連接)兩種通信模式。
二、TCP和UDP的區別和聯系
1. 從理論看區別:
TCP是面向連接的,在傳輸數據前必須建立連接,傳輸完成后必須關閉連接。且連接建立需要經過3次握手, 連接斷開需要4次揮手。連接方式是點對點的, 無法做到多播。
UDP面向無連接,當一端需要發送報文時, 通過UDP套接字發送報文,UDP不保證有序, 不保證一定被接收端收到,且沒有擁塞的控制。
2. 從編碼上區別:
?
二、TCP和IP的區別和聯系
1. TCP協議:
傳輸控制協議(Transmission Control Protocal),是一種基于IP協議的傳輸層協議。主要特點是3次握手建立連接,4次揮手斷開連接。
2. IP協議:
因特網協議(Internet Protocol),位于網絡層,IP協議規定了數據傳輸時的基本單元(數據包)和格式,IP協議還定義了數據包的遞交辦法和路由選擇。
總結:整個網絡中的傳輸流程是,IP層接收由更低層(網絡接口層例如以太網設備驅動程序)發來的數據包,并把該數據包發送到更高層—TCP層;相反,IP層也把從TCP接收來的數據包傳送到更低層。也就是,IP提供基本的數據傳送,而高層的TCP對這些數據包做進一步加工,如提供端口號等等。
三、HTTP和socket
1. HTTP協議:
HTTP協議是應用層協議,HTTP協議是hypertexttransferprotocol(超文本傳輸協議)的簡寫。它是建立在TCP/IP協議之上的一種應用協議。
用于定義WEB瀏覽器和服務器之間交換數據的過程,客戶端連上web服務器后,若想獲得web服務器中的某個資源,需遵守一定的通訊格式,HTTP協議用于定義客戶端與web服務器通訊的格式。
2. socket:
? ? ? 套接字(socket)是通信的基石,是支持TCP/IP協議的網絡通信的基本操作單元。它是網絡通信過程中端點的抽象表示,包含進行網絡通信必須的五種信息:連接使用的協議,本地主機的IP地址,本地進程的協議端口,遠地主機的IP地址,遠地進程的協議端口。?
? ? ??創建Socket連接時,可以指定使用的傳輸層協議,Socket可以支持不同的傳輸層協議(TCP或UDP)。
? ? ?
3. 區分:?
? ? ?Socket只是操作系統提供給應用程序進行網絡通信的抽象API。Socket是對TCP/IP協議的封裝,Socket本身并不是協議,而是一個調用接口(API),通過Socket,我們才能使用TCP/IP協議。Socket連接中,點對點的兩方是平等的,服務器也可以主動直接將數據傳送給客戶端。就是所謂的長連接,理論上客戶端和服務器端一旦建立起連接,在通信雙方中的任何一方主動關閉連接之前,不會主動斷掉。
? ? ?HTTP是基于TCP的應用層協議。大部分情況下,一次HTTP請求的完成經過了建立TCP鏈接->客戶端發送報文->服務端返回報文->服務端或客戶端關閉此連接這個過程,由于每次都要建立連接,并在完成一次請求響應后關閉連接,所以大家稱為“短連接”。若雙方建立的是HTTP連接,則服務器需要等到客戶端發送一次請求后才能將數據傳回給客戶端,因此,客戶端定時向服務器端發送連接請求,不僅可以保持在線,同時也是在“詢問”服務器是否有新的數據,如果有就將數據傳給客戶端。
HTTP是轎車,提供了封裝或者顯示數據的形式,是一種格式;socket是發動機,提供了網絡通信的能力,是一套接口。
?
?
?
?
轉載于:https://www.cnblogs.com/kikis/p/10710959.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的TCP和UDP和IP和HTTP和socket的全部內容,希望文章能夠幫你解決所遇到的問題。