TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協議/網際協議)是指能夠在多個不同網絡間實現信息傳輸的協議簇。
01
TCP/IP協議簇
TCP/IP協議不僅僅指的是TCP和IP兩個協議,而是指一個由FTP、SMTP、TCP、UDP、IP等協議構成的協議簇, 只是因為在TCP/IP協議中TCP協議和IP協議最具代表性,所以被稱之為TCP/IP協議。
計算機網絡體系結構分層
02
數據單位
包、幀、數據包、段、消息。
以上五個術語都用來表述數據的單位,大致區(qū)分如下:
① 包可以說是全能性術語;
② 幀用于表示數據鏈路層中包的單位;
③ 數據包是 IP 和 UDP 等網絡層以上的分層中包的單位;
④ 段則表示 TCP 數據流中的信息;
⑤ 消息是指應用協議中數據的單位。
每個分層中,都會對所發(fā)送的數據附加一個首部,在這個首部中包含了該層必要的信息,如發(fā)送的目標地址以及協議相關信息。通常,為協議提供的信息為包首部,所要發(fā)送的內容為數據。在下一層的角度看,從上一層收到的包全部都被認為是本層的數據。
此外,還需了解IP、MAC、端口。
IP 地址:用來識別 TCP/IP 網絡中互連的主機和路由器。
MAC:識別同一鏈路中不同的計算機。
端口:端口號用來識別同一臺計算機中進行通信的不同應用程序。因此,它也被稱為程序地址。
03
數據傳輸過程
協議棧中數據傳輸的過程:
① 應用程序處理
首先應用程序會進行編碼處理,這些編碼相當于 OSI 的表示層功能;編碼轉化后,郵件不一定馬上被發(fā)送出去,這種何時建立通信連接何時發(fā)送數據的管理功能,相當于 OSI 的會話層功能。
② TCP 模塊的處理
TCP 根據應用的指示,負責建立連接、發(fā)送數據以及斷開連接。TCP 提供將應用層發(fā)來的數據順利發(fā)送至對端的可靠傳輸。為了實現這一功能,需要在應用層數據的前端附加一個 TCP 首部。
③ IP 模塊的處理
IP 將 TCP 傳過來的 TCP 首部和 TCP 數據合起來當做自己的數據,并在 TCP 首部的前端加上自己的 IP 首部。IP 包生成后,參考路由控制表決定接受此 IP 包的路由或主機。
從 IP 傳過來的 IP 包對于以太網來說就是數據。給這些數據附加上以太網首部并進行發(fā)送處理,生成的以太網數據包將通過物理層傳輸給接收端。
⑤ 網絡接口(以太網驅動)的處理
主機收到以太網包后,首先從以太網包首部找到 MAC 地址判斷是否為發(fā)送給自己的包,若不是則丟棄數據。如果是發(fā)送給自己的包,則從以太網包首部中的類型確定數據類型,再傳給相應的模塊,如 IP、ARP 等。這里的例子則是 IP 。
⑥ IP 模塊的處理
IP 模塊接收到數據后也做類似的處理。從包首部中判斷此 IP 地址是否與自己的 IP 地址匹配,如果匹配則根據首部的協議類型將數據發(fā)送給對應的模塊,如 TCP、UDP。這里的例子則是 TCP。另外,對于有路由器的情況,接收端地址往往不是自己的地址,此時,需要借助路由控制表,在調查應該送往的主機或路由器之后再進行轉發(fā)數據。
⑦ TCP 模塊的處理
在 TCP 模塊中,首先會計算一下校驗和,判斷數據是否被破壞。然后檢查是否在按照序號接收數據。最后檢查端口號,確定具體的應用程序。數據被完整地接收以后,會傳給由端口號識別的應用程序。
⑧ 應用程序的處理
接收端應用程序會直接接收發(fā)送端發(fā)送的數據。通過解析數據,展示相應的內容。
04
TCP與UDP協議
TCP/IP 中有兩個具有代表性的傳輸層協議:TCP 和 UDP。
TCP 是面向連接的、可靠的流協議。流就是指不間斷的數據結構,當應用程序采用 TCP 發(fā)送消息時,雖然可以保證發(fā)送的順序,但還是猶如沒有任何間隔的數據流發(fā)送給接收端。TCP 為提供可靠性傳輸,實行“順序控制”或“重發(fā)控制”機制。此外還具備“流控制(流量控制)”、“擁塞控制”、提高網絡利用率等眾多功能。
UDP 是不具有可靠性的數據包協議。細微的處理它會交給上層的應用去完成。在 UDP 的情況下,雖然可以確保發(fā)送消息的大小,卻不能保證消息一定會到達。因此,應用有時會根據自己的需要進行重發(fā)處理。
TCP 和 UDP 的優(yōu)缺點無法簡單地、絕對地去做比較:TCP 用于在傳輸層有必要實現可靠傳輸的情況;而在一方面,UDP 主要用于那些對高速傳輸和實時性有較高要求的通信或廣播通信。TCP 和 UDP 應該根據應用的目的按需使用。
通過 IP 地址、端口號、協議號進行通信識別:
① 和 ② 的通信是在兩臺計算機上進行的。它們的目標端口號相同,都是80。這里可以根據源端口號加以區(qū)分。
③ 和 ① 的目標端口號和源端口號完全相同,但它們各自的源 IP 地址不同。
此外,當 IP 地址和端口號全都一樣時,我們還可以通過協議號來區(qū)分(TCP 和 UDP)。
-
協議
+關注
關注
2文章
615瀏覽量
40664 -
IP
+關注
關注
5文章
1837瀏覽量
154317 -
TCP
+關注
關注
8文章
1413瀏覽量
82593
發(fā)布評論請先 登錄
rtthread網絡接口設備 輕量級tcp/ip 堆棧 這兩個沖突嗎?
GraniStudio : TCP/IP(Socket)協議深度剖析

生物制藥自動化升級:Modbus TCP與Ethernet/IP協議轉換實踐

51+單片機TCP-IP+協議棧ZLIP源碼
EtherCAT轉modbus TCP借協議轉換網關模塊打通倍福PLC與上位機鏈路

評論