幫助文檔
一.通信協(xié)議概述:
1.定義:
通信設(shè)備雙方通過(guò)共同遵從一組約定,從而使數(shù)據(jù)可在網(wǎng)絡(luò)上進(jìn)行相互傳輸。
打個(gè)比方,不同國(guó)家不同母語(yǔ)的兩個(gè)人,如果要實(shí)現(xiàn)交流,就必須以大家都熟悉的一種通用語(yǔ)言來(lái)交流,比如英語(yǔ)。同樣數(shù)據(jù)的格式只有一致,通信雙方才能正常傳輸。
2.通信協(xié)議層次劃分:
國(guó)際上通用的劃分有tcp/ip四層模型和osi七層模型兩種,TCP/UDP協(xié)議在兩種模型中對(duì)應(yīng)如下:
osi七層模型
TCP/IP四層模型
二、TCP/UDP通信協(xié)議
1.概念
TCP、UDP是最常用的傳輸協(xié)議,同屬于傳輸層,不同之處在于:
TCP(Transmission Control Protocol傳輸控制協(xié)議):是一種面向連接的、可靠的、基于字節(jié)流的通信協(xié)議;主要傳輸數(shù)據(jù)較大、可靠性要求較高的;
UDP(User Datagram Protocol用戶(hù)數(shù)據(jù)報(bào)協(xié)議)是一種無(wú)連接的通信,不能保證數(shù)據(jù)包被發(fā)送到目標(biāo)地址;主要是傳輸少量數(shù)據(jù);
打個(gè)比方:TCP連接就像打電話,用戶(hù)撥特定的號(hào)碼,對(duì)方在線并拿起電話,然后雙方進(jìn)行通話,通話完畢之后再掛斷,整個(gè)過(guò)程是一個(gè)相互聯(lián)系缺一不可的過(guò)程;
而UDP連接就像發(fā)短信,用戶(hù)要發(fā)送短信給對(duì)方,只要輸入對(duì)方的手機(jī)號(hào)碼即可發(fā)送,并不需要先連接對(duì)方。
2.三次握手
TCP作為一個(gè)可靠連接需要經(jīng)過(guò)3次“對(duì)話”,即我們常說(shuō)的“三次握手”:
第一次握手:建立連接時(shí),客戶(hù)端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn);
第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶(hù)的SYN(ack=j+1),同時(shí)自己也發(fā)送一個(gè)SYN包(syn=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài);
第三次握手:客戶(hù)端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶(hù)端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手.
完成三次握手,客戶(hù)端與服務(wù)器開(kāi)始傳送數(shù)據(jù)
UDP是面向非連接的,所以在服務(wù)端與客戶(hù)端通信之前,不需要經(jīng)過(guò)三次握手這個(gè)過(guò)程。
3.TCP/UDP對(duì)比
二.佰馬科技相關(guān)產(chǎn)品通信模式的選擇
佰馬科技提供的無(wú)線工業(yè)級(jí)無(wú)線DTU和工業(yè)級(jí)無(wú)線路由器作為透?jìng)鳟a(chǎn)品,支持TCP、UDP、MODBUS、MQTT等主流常用的協(xié)議,本章節(jié)通過(guò)實(shí)測(cè)重點(diǎn)對(duì)比TCP、UDP兩種傳輸協(xié)議在DTU、路由器上傳輸時(shí)數(shù)據(jù)格式的差異性,對(duì)于如何實(shí)現(xiàn)連接以及可靠性不做對(duì)比測(cè)試。
佰馬工業(yè)級(jí)無(wú)線DTU傳輸模式支持TCP、UDP協(xié)議:
1)TCP:包括FTCP、HTCP、CTCP、TCPSVR;
2)UDP:包括NUDP、HUDP、CUDP、UDPSVR;
其中:CTCP 、CUDP屬于數(shù)據(jù)純透?jìng)?,即不帶任何心跳包和注?cè)包,如果要帶,必須自定義設(shè)置。其余都帶有心跳包和注冊(cè)包。
以佰馬BMD100-A為例,將GPRS工作模式設(shè)置成FTCP,連接上服務(wù)器,可以觀察到服務(wù)器收到了BMD100發(fā)送的心跳包和數(shù)據(jù)包123。如下圖所示:
同樣以佰馬BMD100-A為例,將GPRS工作模式設(shè)置成CTCP,連接上服務(wù)器,可以觀察到服務(wù)器只收到BMD100發(fā)送的數(shù)據(jù)123,而沒(méi)有心跳包。如下圖所示:
同樣以佰馬BMD100-A為例,將GPRS工作模式設(shè)置成NUDP,連接上服務(wù)器,可以觀察到服務(wù)器收到了BMD100發(fā)送的心跳包和數(shù)據(jù)。
佰馬Baimatech,集M2M產(chǎn)品研發(fā)、IoT平臺(tái)服務(wù)、國(guó)際化運(yùn)營(yíng)于一體,讓我們聯(lián)接,共創(chuàng)未來(lái)