一.通信協議概述:
1.定義:
通信設備雙方通過共同遵從一組約定,從而使數據可在網絡上進行相互傳輸。
打個比方,不同國家不同母語的兩個人,如果要實現交流,就必須以大家都熟悉的一種通用語言來交流,比如英語。同樣數據的格式只有一致,通信雙方才能正常傳輸。
2.通信協議層次劃分:
國際上通用的劃分有tcp/ip四層模型和osi七層模型兩種,TCP/UDP協議在兩種模型中對應如下:
osi七層模型
TCP/IP四層模型
二、TCP/UDP通信協議
1.概念
TCP、UDP是最常用的傳輸協議,同屬于傳輸層,不同之處在于:
TCP(Transmission Control Protocol傳輸控制協議):是一種面向連接的、可靠的、基于字節流的通信協議;主要傳輸數據較大、可靠性要求較高的。
UDP(User Datagram Protocol用戶數據報協議)是一種無連接的通信,不能保證數據包被發送到目標地址;主要是傳輸少量數據,安全性與可靠性較比TCP低。
打個比方:TCP連接就像打電話,用戶撥特定的號碼,對方在線并拿起電話,然后雙方進行通話,通話完畢之后再掛斷,整個過程是一個相互聯系缺一不可的過程;
而UDP連接就像發短信,用戶要發送短信給對方,只要輸入對方的手機號碼即可發送,并不需要先連接對方。
2.三次握手
TCP作為一個可靠連接需要經過3次“對話”,即我們常說的“三次握手”:
**次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;
第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;
第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手.
完成三次握手,客戶端與服務器開始傳送數據
UDP是面向非連接的,所以在服務端與客戶端通信之前,不需要經過三次握手這個過程。
3.TCP/UDP對比
佰馬科技工業級無線DTU傳輸模式支持TCP、UDP協議:
(1)TCP:包括FTCP、HTCP、CTCP、TCPSVR;
(2)UDP:包括NUDP、HUDP、CUDP、UDPSVR;
其中:CTCP 、CUDP屬于數據純透傳,即不帶任何心跳包和注冊包,如果要帶,必須自定義設置。其余都帶有心跳包和注冊包。
資訊來源:https://www.baimatech.com
|