TCP和UDP协议的区别_tcp和ip是什么意思
最近在學習WebSocket, 了解到它是采用TCP來實現異步通信, 全雙工.與Http不同的是, Http采用無狀態, 應答式的響應.因此就想知道TCP, TCP/IP, HTTP, Socket之間到底是有怎樣的關聯關系和區別, 以及全雙工通信和半雙工通信是如何實現的在網絡層.
在計算機網絡里,有兩種常見的參考模型即:OSI參考模型和TCP/IP參考模型。由此可見TCP本身是傳輸層的協議, 而TCP/IP是一種網絡參考模型。
1. OSI七層參考模型: 今天主要是用來清晰的了解網絡結構的分層。這一模型和相關的協議并沒有被使用, 但它具有普遍的意義就是對于討論網絡的體系結構中的每一層的功能是很重要的。它將服務,接口和協議的概念區分開來。每一層的接口都告訴它上面的進程如何訪問本層。而且 每層用到的對等協議是本層自己內部的事情。不影響上層。它同時支持面向連接和無連接的通信。但是傳輸層只支持面向連接的通信。
2. TCP/IP : 實用性高于七層。廣為流傳,模型本身沒有多大用處。它對服務,接口和協議沒有明確的區分, 下圖也是人們對它進行了改進,使它更像OSI.它的網絡層只支持一種面向無連接的服務, 但傳輸層同時支持TCP(面向連接)和UDP(面向無連接)兩種通信模式。
3. 面向連接和無連接的概念:
面向連接:
->服務:是指用戶首先必須先建立一個連接,然后用這個連接傳輸數據,再釋放或關閉連接.如:一個管道,發送方把數據壓入管道的一端, 接收方在另一端將它們取出來.基本保持順序.
->協議: TCP, 全雙工, 收發兩端可以同時發送和接收.連接建立需要經過3次握手, 連接斷開需要4次所致手.連接方式是點對點的, 無法做到多播.
面向無連接:
->服務:不保證傳輸的數據到達,且可能無序.每個報文都攜帶了完整的目標地址, 由系統的中間路由出去.
->協議:UDP,幾乎是直接和網絡層的IP協議通信.在兩個進程通信之前沒有握手的過程, 因此稱為無連接服務.當一端需要發送報文時, 通過UDP套接字發送報文,UDP不保證有序, 不保證一定被接收端收到.且沒有擁塞的控制.
- 從編碼角度看 TCP UDP的區別如下圖:
4.Socket
套接字(socket)是通信的基石,是支持TCP/IP協議的網絡通信的基本操作單元。它是網絡通信過程中端點的抽象表示,包含進行網絡通信必須的五種信息:連接使用的協議,本地主機的IP地址,本地進程的協議端口,遠地主機的IP地址,遠地進程的協議端口。
應用層通過傳輸層進行數據通信時,TCP會遇到同時為多個應用程序進程提供并發服務的問題。多個TCP連接或多個應用程序進程可能需要通過同一個TCP協議端口傳輸數據。為了區別不同的應用程序進程和連接,許多計算機操作系統為應用程序與TCP/IP協議交互提供了套接字(Socket)接口。應用層可以和傳輸層通過Socket接口,區分來自不同應用程序進程或網絡連接的通信,實現數據傳輸的并發服務。
套接字之間的連接過程分為三個步驟:服務器監聽,客戶端請求,連接確認。
通過下圖可以看, 實際上socket是對TCP/IP協議的封裝,Socket本身并不是協議,而是一個調用接口(API),通過Socket,我們才能使用TCP/IP協議:
5. 總結區別
| 協議 | 層次 | 描述 |
| TCP | 傳輸層 | 面向連接的可靠傳輸協議. |
| TCP/IP | 協議棧,或稱為一種網絡服務模型. | 網絡層只提供面向無連接的服務.傳輸層提供TCP和UDP兩種連接方式. |
| Sokcet | 介于傳輸層和應用層之間 | 封裝了傳輸層的TCP/IP的一組接口.為應用層提供使TCP/IP協議棧傳輸數據. |
| HTTP | 應用層 | 它是建立在TCP/IP協議之上的一種應用協議.缺省端口是80. 提供服務端和客戶的請求應答的過程. 請求結束后, 主動釋放連接. |
有用的鏈接:
https://os.mbed.com/handbook/Socket
總結
以上是生活随笔為你收集整理的TCP和UDP协议的区别_tcp和ip是什么意思的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WordPress实现彩色标签云的方法
- 下一篇: 高通驱动9008安装_高通snapdra