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