一種基于用戶數據報協議(udp)的控制命令傳輸方法、發送端和接收端的制作方法
【技術領域】
[0001]本發明涉及數據傳輸領域,更具體地,涉及一種基于用戶數據報協議(UDP)的控制命令傳輸方法、發送端和接收端。
【背景技術】
[0002]隨著社會財富的積累以及生活節奏的加快,人們對優秀快捷的生活品質提出更高的要求。動聽的音樂則是生活中不可缺少的一部分。音響作為音樂的發生源,被廣泛利用在生活,工作,學習,娛樂中。在音箱的多房間(Mult1-Room)播放模式下,因為存在播放主從關系,播放的主音箱需要把當前的播放信息傳輸給播放的從音箱,所以就需要實時可靠的傳輸。基于用戶數據報協議(UDP)的傳輸一直以來都被行業所采用,而基于UDP的數據傳輸方式是面向非連接的,發送方不需要跟接收方進行任何的協商,就將數據發出。在接收時,接收方的UDP不會給發送方ACK確認,從而會導致接收方過于繁忙而down機的情況。因此UDP雖具有效率高的優點,但其安全性和可靠性較差、易發生丟包現象。
[0003]本發明的發明人認識到,現有的數據傳輸方法中還沒有針對UDP的上述缺陷有針對性地在小數據控制指令傳輸過程中解決其安全性和可靠性較差的問題。
【發明內容】
[0004]本發明的一個目的是提供一種基于UDP的進行小數據控制指令可靠傳輸的新技術方案。
[0005]根據本發明的一個方面,提供一種基于用戶數據報協議(UDP)的控制命令傳輸方法,包括如下步驟:
[0006]S1.發送端基于用戶數據包協議向接收端發送控制命令包;
[0007]S2.接收端成功接收到所述控制命令包后基于用戶數據包協議向發送端發送ACK包。
[0008]優選地,所述步驟S1還包括發送端將唯一標識每一個控制命令包的命令標識附加在所述控制命令包中,以供發送;以及
[0009]所述步驟S2還包括接收端將與所接收的控制命令包相一致的命令標識附加在所述ACK包中,以供發送。
[0010]優選地,所述發送端與一個或多個接收端為點對點發送,所述步驟S1包括:獲取接收端的IP地址或IP地址列表,并向一個或多個接收端IP地址發送控制命令包;所述步驟S2包括:獲取與接收到的控制命令包相對應的發送端的IP地址,并向該地址發送ACK包。
[0011]優選地,在點對點發送中,所述方法還包括:S3.當發送端在預定的時間內收到接收端發送的ACK包時,判定命令發送成功,當發送端在預定的時間內未收到接收端發送的ACK包時,重新向該接收端發送所述控制命令包;以及
[0012]S4.當發送端在向接收端發送所述控制命令包N次后均未接收到ACK包時,判定命令向該接收端發送失敗。
[0013]優選地,所述發送端與接收端為廣播或組播發送,所述步驟S1還包括發送端將組標識附加在所述控制命令包中,以供發送;以及
[0014]所述步驟S2還包括接收端將與所接收的控制命令包相一致的組標識附加在所述ACK包中,以供發送。
[0015]優選地,在廣播或組播發送中,所述步驟S1還包括:獲取廣播或組播組地址,并以廣播或組播方式發送控制命令包;所述步驟S2包括:組內接收到所述控制命令包的各接收端獲取與接收到的控制命令包相對應的發送端的IP地址或廣播或組播組地址,并向該地址或所述廣播或組播組地址發送ACK包。
[0016]優選地,在廣播或組播發送中,所述方法還包括:S3.當發送端在預定的時間內收到全部接收端發送的ACK包時,判定命令發送成功,當發送端在預定的時間內未收到全部接收端發送的ACK包時,重新廣播或組播發送所述控制命令包;以及S4.當發送端在廣播或組播發送所述控制命令包N次后仍未接收到全部接收端發送的ACK包,判定命令向未成功接收的接收端發送失敗。
[0017]根據本發明的另一個方面,提供一種基于用戶數據報協議(UDP)的控制命令發送端,包括設置在所述發送端之中的發送模塊和接收模塊,所述發送模塊,用于基于用戶數據包協議向接收端發送控制命令包,所述接收模塊,用于接收來自接收端的基于用戶數據包協議的ACK包。
[0018]優選地,所述發送模塊,還用于將唯一標識每一個控制命令包的命令標識附加在所述控制命令包中,以供發送。
[0019]優選地,所述發送模塊,還用于向一個或多個接收端進行點對點發送,獲取接收端的IP地址或IP地址列表,并向該一個或多個接收端IP地址發送控制命令包;以及所述發送模塊,還用于當在預定的時間內未收到接收端發送的ACK包時,重新向該接收端發送所述控制命令包;以及所述接收模塊,還用于當在預定的時間內收到接收端發送的ACK包時,判定命令發送成功,以及當在向接收端發送所述控制命令包N次后均未接收到ACK包時,判定命令向該接收端發送失敗。
[0020]優選地,所述發送模塊,還用于向多個接收端進行廣播或組播發送,將組標識附加在所述控制命令包中,以供發送。所述發送模塊,還用于獲取廣播組或組播組地址,并以廣播或組播方式發送控制命令包。所述發送模塊,還用于當在預定的時間內未收到全部接收端發送的ACK包時,重新廣播或組播發送所述控制命令包;以及所述接收模塊,還用于當在預定的時間內收到全部接收端發送的ACK包時,判定命令發送成功,以及當發送端在廣播或組播發送所述控制命令包N次后仍未接收到全部接收端發送的ACK包,判定命令向未成功接收的接收端發送失敗。
[0021]根據本發明的再一個方面,提供一種基于用戶數據報協議(UDP)的控制命令接收端,包括設置在所述接收端之中的發送模塊和接收模塊,所述接收模塊,用于接收來自發送端的控制命令包;所述發送模塊,用于向發送端發送ACK包。
[0022]優選地,所述發送模塊,還用于將與所接收的控制命令包相一致的命令標識附加在所述ACK包中,以供發送。
[0023]優選地,所述發送模塊,還用于在點對點發送時,獲取與接收到的控制命令包相對應的發送端的IP地址或IP地址列表,并向該地址或地址列表發送ACK包。
[0024]優選地,所述發送模塊,還用于在廣播或組播發送時,獲取與所接收的控制命令包相一致的組標識附加在所述ACK包中,以及獲取與接收到的控制命令包相對應的發送端的IP地址或廣播或組播組地址,并向該地址或所述廣播或組播組地址發送ACK包。
[0025]本發明的發明人發現,在現有技術中,尚未出現針對UDP的上述缺陷有針對性地在小數據控制指令傳輸過程中解決其安全性和可靠性較差的的技術。因此,本發明所要實現的技術任務或者所要解決的技術問題是本領域技術人員從未想到的或者沒有預期到的,故本發明是一種新的技術方案。
[0026]另外,本領域技術人員應當理解,盡管現有技術中存在許多問題,但是,本發明的每個實施例或權利要求的技術方案可以僅在一個或幾個方面進行改進,而不必同時解決現有技術中或者【背景技術】中列出的全部技術問題。本領域技術人員應當理解,對于一個權利要求中沒有提到的內容不應當作為對于該權利要求的限制。
[0027]通過以下參照附圖對本發明的示例性實施例的詳細描述,本發明的其它特征及其優點將會變得清楚。
【附圖說明】
[0028]被結合在說明書中并構成說明書的一部分的附圖示出了本發明的實施例,并且連同其說明一起用于解釋本發明的原理。
[0029]圖1示出了根據本發明的一個實施例的基于用戶數據報協議(UDP)的控制命令傳輸流程的示意圖;
[0030]圖2示出了根據本發明的一個實施例的控制命令包結構的示意圖;
[0031]圖3示出了根據本發明的一個實施例的ACK包結構的示意圖;
[0032]圖4示出了根據本發明的一個實施例的發送端和接收端的框圖以及以點對點方式傳輸控制命令的示意圖;
[0033]圖5示出了根據本發明的一個實施例的發送端和接收端的框圖以及以廣播或組播方式傳輸控制命令的示意圖。
【具體實施方式】
[0034]現在將參照附圖來詳細描述本發明的各種示例性實施例。應注意到:除非另外具體說明,否則在這些實施例中闡述的部件和步驟的相對布置、數字表達式和數值不限制本發明的范圍。
[0035]以下對至少一個示例性實施例的描述實際上僅僅是說明性的,決不作為對本發明及其應用或使用的任何限制。
[0036]對于相關領域普通技術人員已知的技術、方法和設備可能不作詳細討論,但在適當情況下,所述技術、方法和設備應當被視為說明書的一部分。
[0037]在這里示出和討論的所有例子中,任何具體值應被解釋為僅僅是示例性的,而不是作為限制。因此,示例性實施例的其它例子可以具有不同的值。
[0038]應注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步討論。
[0039]根據本發明的一個實施例的控制命令傳輸方法應用在嵌入式硬件平臺上,設計并實現命令的可靠性實時傳輸。基于用戶數據報協議(UDP)將命令實時傳送給每一個接收端。本發明的