精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

糟糕的應(yīng)用層通信協(xié)議設(shè)計

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
去年和今年分別參與了兩個公司的項目,這兩個項目都涉及到了通信方面的程序設(shè)計,或者是以太網(wǎng)絡(luò)通信,或者是串口通信。凡是通信就必須要有通信協(xié)議,個人認(rèn)為協(xié)議的設(shè)計是個非常嚴(yán)肅的工作,需要理解業(yè)務(wù)需求和掌握基本的協(xié)議設(shè)計知識。但是從這兩個項目來看,其協(xié)議的設(shè)計可以說是 糟糕到了極點。下面就其糟糕的設(shè)計之處予以批判。

去年和今年分別參與了兩個公司的項目,這兩個項目都涉及到了通信方面的程序設(shè)計,或者是以太網(wǎng)絡(luò)通信,或者是串口通信。凡是通信就必須要有通信協(xié)議,個人認(rèn)為協(xié)議的設(shè)計是個非常嚴(yán)肅的工作,需要理解業(yè)務(wù)需求和掌握基本的協(xié)議設(shè)計知識。但是從這兩個項目來看,其協(xié)議的設(shè)計可以說是 糟糕到了極點。下面就其糟糕的設(shè)計之處予以批判。

1 糟糕設(shè)計之一:消息格式“包頭+數(shù)據(jù)+包尾”

與UDP不同,TCP通信屬于流式通信,沒有消息邊界,所以需要應(yīng)用層自行對報文進(jìn)行界定分離。實際項目1中,包頭為{{兩個字節(jié),包尾為}}兩個字節(jié),例如{{t=123}}。其格式為:

開始邊界+消息1+結(jié)束邊界+開始邊界+消息2+結(jié)束邊界+開始邊界+消息3+結(jié)束邊界+....

由于TCP是安全的傳輸層協(xié)議,除非特別需要,應(yīng)用層無需再做校驗。消息邊界只需要一個標(biāo)識即可,基本格式為:

消息1+邊界+消息2+邊界+消息3+邊界+...

無論從節(jié)約網(wǎng)絡(luò)帶寬,還是從簡化報文解析代碼,***種設(shè)計都是非常的愚蠢!

無獨有偶,項目2中基于串口的通信應(yīng)用層協(xié)議也采用了這種設(shè)計格式。

當(dāng)問其設(shè)計人員為何如此設(shè)計時,說一直就是這么設(shè)計的,自己也不知道這么設(shè)計的原因,還美滋滋地說一直沒有什么問題,真想揍他一拳。

2 糟糕設(shè)計之二:用結(jié)構(gòu)體代碼而不是文本描述消息結(jié)構(gòu)

項目2中,根本無協(xié)議的描述文本,只有一個包含結(jié)構(gòu)體定義的頭文件供協(xié)議的使用者參考。

通信就會涉及到多個機器,所以通信協(xié)議必須要能跨平臺。而我們知道

struct A
{
char x;
int y;
};

在不同編譯器,不同平臺,不同編譯選項下會有不同的二進(jìn)制布局。況且協(xié)議使用者也可能看不懂C系語言代碼。更搞笑的是,頭文件中竟然沒有強制結(jié)構(gòu)體單字節(jié)對齊。

問到協(xié)議的設(shè)計者設(shè)計思路時,說我們公司一直這樣啊,一直沒問題啊。之所以沒有問題,是因為使用這個協(xié)議的所有機器都是同一CPU型號,同一開發(fā)環(huán)境,同一操作系統(tǒng)。

3 糟糕設(shè)計之三:傳送二進(jìn)制浮點數(shù)

浮點數(shù)的二進(jìn)制格式并不是只有一種,不同平臺采用不同的方式存放。這要比大端小端的整數(shù)差別更加嚴(yán)重。所以跨平臺傳送二進(jìn)制浮點數(shù)是非常不安全的。而在項目2中,消息中大量使用了二進(jìn)制浮點數(shù)。

要傳送浮點數(shù),通常有兩種解決方式:

文本化。也就是傳送描述浮點數(shù)的字符串,我們知道字符串是完全跨平臺的,尤其是在UTF-8這樣全球統(tǒng)一字符編碼的情況下。

轉(zhuǎn)換為整數(shù)。例如1.2,可以用整數(shù)12代替,只是要規(guī)定單位為0.1即可。

4 糟糕設(shè)計之三:大量備用字段

項目二的消息結(jié)構(gòu)體類似如下:

struct A
{
char name[16];
int age;
int spare1;
short spare2;
short spare3;
int spare4;
};

大量的備用字段充斥在結(jié)構(gòu)體中。少量的備用字段可以理解,如此大量的后備力量,真是深遠(yuǎn)謀慮啊。真不知道協(xié)議使用者在看到spare時會不會吐。如果真的需要這么多備用字段,完全可以重新定義一個消息結(jié)構(gòu)了。

5 糟糕設(shè)計之四:照貓畫虎的握手和校驗

握手和校驗是保證安全完整通信的基本手段,但是其實現(xiàn)卻非常不簡單,看看TCP的實現(xiàn)代碼就知道了,需要考慮各種異常情況。項目二中串口設(shè)備和主機之間照貓畫虎地定義了一個握手協(xié)議。開機后 設(shè)備向主機一直發(fā)送AA,主機收到AA后向設(shè)備發(fā)送AA,設(shè)備收到AA后向主機發(fā)送55,主機收到55后向設(shè)備發(fā)送55。這個簡單的握手存在很多問題,隨便說幾個:

完全沒有必要握手。一般的串口設(shè)備無需知道主機的工作狀態(tài),主機如果想了解設(shè)備狀態(tài),發(fā)個詢問報文即可。

如果主機發(fā)送AA后程序退出,那么串口設(shè)備永遠(yuǎn)也等不到來自主機的55。

如果主機中途關(guān)掉,在運行時可能收到來自串口設(shè)備的AA,而此時的AA其實只是消息報文的一個字節(jié),而不是握手信號。

只要仔細(xì)想想,還有很多類似的情況需要處理。而且實際使用過程中,確實發(fā)生了上面的情況,致使必須重啟串口設(shè)備或主機。

還是項目2中,基于UDP的應(yīng)用層協(xié)議自行設(shè)計了校驗。其實這也無可厚非,比如著名的tftp就是這樣的協(xié)議。只是設(shè)計者考慮不周,各種問題頻出,最終的結(jié)果是這些校驗字段根本就沒有實際使用,白白浪費了網(wǎng)絡(luò)帶寬。需要說明的是,這個協(xié)議的設(shè)計者還是國內(nèi)很大的一家公司,當(dāng)然是國企,你懂的

責(zé)任編輯:何妍 來源: CSDN博客
相關(guān)推薦

2010-06-11 14:25:08

通信協(xié)議

2010-06-25 14:43:46

通信協(xié)議

2024-01-08 09:08:53

2010-06-09 10:25:18

SET應(yīng)用層協(xié)議

2010-06-21 17:58:06

2010-06-13 17:46:47

2010-06-25 15:22:16

2010-06-13 17:51:16

SET應(yīng)用層協(xié)議

2023-10-12 19:37:50

通信協(xié)議HTTP

2010-06-28 15:52:17

2010-06-09 10:28:20

2010-06-09 12:20:34

網(wǎng)絡(luò)通信協(xié)議層

2010-06-11 14:31:08

通信協(xié)議

2022-12-02 14:42:37

2016-11-29 15:22:47

協(xié)議應(yīng)用層安全層

2014-06-27 10:04:55

網(wǎng)絡(luò)協(xié)議ipv4IP

2017-08-17 17:48:06

2010-06-09 11:38:37

傳輸層通信協(xié)議

2024-11-27 13:01:22

應(yīng)用層領(lǐng)域?qū)?/a>對接層

2010-06-09 10:43:54

廣義網(wǎng)協(xié)議
點贊
收藏

51CTO技術(shù)棧公眾號

奇米成人av国产一区二区三区| 精品国产百合女同互慰| 一本色道婷婷久久欧美| av在线免费在线观看| 激情综合电影网| 亚洲欧美一区二区三区久久| 亚洲精品永久视频| 美女露胸视频在线观看| 国产精品伦一区| 国产伦精品一区二区三区照片 | 欧美人成在线| 日韩经典中文字幕| 亚洲综合20p| 日本免费一区二区三区四区| 亚洲欧美电影一区二区| 欧美在线激情| 成人免费观看在线视频| 青青草91视频| 欧美一二三视频| 午夜爱爱毛片xxxx视频免费看| 亚洲精品国产setv| 日韩一区二区电影在线| 九色91popny| 91美女主播在线视频| 国产精品久久久久久久久免费丝袜| 国产99午夜精品一区二区三区| 波多野结衣黄色| 中文精品在线| 欧美理论电影在线播放| 懂色av粉嫩av浪潮av| 日本午夜精品| 精品成人私密视频| 日本女人黄色片| 欧美男男gaygay1069| 日本福利一区二区| 国产肥臀一区二区福利视频| 欧美韩日亚洲| 亚洲视频 欧洲视频| 午夜精品福利一区二区| 婷婷丁香一区二区三区| 国产成人av影院| 91天堂在线观看| 中文字幕免费播放| 日韩国产精品久久久久久亚洲| 性色av一区二区三区红粉影视| 黄色片在线观看网站| 久久亚洲专区| 色婷婷综合久久久久中文字幕1| 少妇人妻好深好紧精品无码| 亚洲人成网亚洲欧洲无码| 日韩第一页在线| 日本黄色录像片| 久久精品国产亚洲5555| 精品久久一二三区| 超碰caoprom| 成人动漫视频| 亚洲级视频在线观看免费1级| 国产亚洲精品成人a| 亚洲天堂中文字幕在线观看| 日韩欧美国产精品一区| 乱码一区二区三区| 国产美女撒尿一区二区| 日韩av在线精品| www.自拍偷拍| 亚洲亚洲免费| 尤物精品国产第一福利三区 | 日本免费久久高清视频| 一级片免费在线播放| 久久成人亚洲| 日韩美女在线观看一区| 在线观看黄色国产| 极品少妇xxxx精品少妇| 91在线免费看网站| 黄色a在线观看| a亚洲天堂av| 欧美在线播放一区| 麻豆传媒视频在线| 亚洲午夜激情网站| 日本在线视频www| 国产精品天堂蜜av在线播放| 欧美丰满一区二区免费视频| 日韩高清一二三区| 婷婷综合成人| 日韩在线视频网站| 国产在线视频二区| 日韩精品国产精品| 亚洲一区二区三区sesese| 丰满人妻一区二区三区无码av| 99久久精品国产网站| 欧美日韩在线一二三| 欧美96在线| 精品毛片网大全| 亚洲一区二区三区四区五区xx| 国产精品1区在线| 日韩高清中文字幕| 国产极品美女在线| 免费视频一区二区三区在线观看| 国产剧情久久久久久| 刘亦菲毛片一区二区三区| 国产亚洲美州欧州综合国| 天堂av免费看| 极品美女一区| 日韩女优电影在线观看| 欧美大波大乳巨大乳| 欧美精品偷拍| 国产精品久久久久久av| 亚洲国产精品久久久久爰性色| 久久精品视频免费| 欧美这里只有精品| 亚洲欧洲美洲av| 日韩欧美中文字幕精品| www.黄色在线| 在线播放亚洲| 91久久精品国产91久久性色| 青梅竹马是消防员在线| 一级做a爱片久久| 中文字幕第80页| 豆花视频一区二区| 久久香蕉国产线看观看网| 波多野结衣啪啪| 成人av在线网站| 天天操天天干天天玩| 欧美一级二级视频| 亚洲欧美在线看| 久久久精品视频免费| 精品亚洲aⅴ乱码一区二区三区| 久久久久久草| 都市激情国产精品| 精品久久久久久久人人人人传媒| 99久久精品久久亚洲精品| 视频一区视频二区中文字幕| 精品国产二区在线| 国产偷倩在线播放| 日韩欧美国产系列| 一区二区视频免费看| 精品影视av免费| 亚洲一区二区三区加勒比| 国产经典一区| 亚洲欧美自拍一区| 国产又黄又猛又粗又爽| 高清日韩电视剧大全免费| 浴室偷拍美女洗澡456在线| 免费日韩成人| 久久精品一区中文字幕| 夜夜狠狠擅视频| 中文字幕精品综合| 久久婷婷综合色| 日韩成人a**站| 国产精品久久久久久久久久东京| 国产特黄在线| 欧美日韩在线三级| 少妇太紧太爽又黄又硬又爽小说| 日韩1区2区3区| 翔田千里亚洲一二三区| 欧美国产视频| 美女av一区二区三区| 亚洲第一黄色片| 亚洲电影中文字幕在线观看| 免费啪视频在线观看| 亚洲麻豆视频| 免费在线国产精品| 日韩高清在线| 日韩中文字幕网| 国产高潮在线观看| 亚洲va在线va天堂| 蜜桃av免费看| 蜜臀av一区二区| 一二三在线视频| 白嫩白嫩国产精品| 91国语精品自产拍在线观看性色 | 国产裸体舞一区二区三区| 自拍自偷一区二区三区| 国产精品久久久亚洲| 老司机午夜在线| 精品999在线播放| 91精品国产高清一区二区三密臀| 国产精品乱码一区二区三区软件| 老司机久久精品| 国内综合精品午夜久久资源| 欧美不卡三区| 日韩一区二区三区四区五区| 欧美情侣性视频| 免费黄色片在线观看| 欧美日本一区二区| 亚洲国产精品午夜在线观看| 欧美激情中文字幕| 亚洲熟女一区二区三区| 日韩福利电影在线| 久久www视频| 国产亚洲第一伦理第一区| 国产在线拍偷自揄拍精品| √8天堂资源地址中文在线| 最近2019年日本中文免费字幕| 国产黄色一区二区| 一本到不卡免费一区二区| 一级黄色片日本| 91色九色蝌蚪| 天天操夜夜操很很操| 丝袜亚洲精品中文字幕一区| 国产传媒久久久| 成人情趣视频网站| 韩日午夜在线资源一区二区 | 成人av福利| 亚洲奶大毛多的老太婆| 精品国产伦一区二区三| 在线观看网站黄不卡| 久久久综合久久| 国产精品国产三级国产普通话三级 | 久久国产精品99久久久久久老狼 | 色在线免费观看| 久久国产天堂福利天堂| chinese偷拍一区二区三区| 亚洲国产精品系列| 国产精品一二三四五区| 在线观看国产一区二区| www成人在线| 亚洲综合偷拍欧美一区色| 四虎国产成人精品免费一女五男| av午夜一区麻豆| 国产调教打屁股xxxx网站| 美国三级日本三级久久99| 久草青青在线观看| 亚洲国产第一| 久久久久久久香蕉| 综合日韩在线| 一区中文字幕在线观看| 凹凸成人精品亚洲精品密奴| 久久国产精品亚洲va麻豆| 97品白浆高清久久久久久| 亚洲伊人久久大香线蕉av| 国产亚洲精彩久久| 国产精品mp4| 性爽视频在线| 2018日韩中文字幕| 77thz桃花论族在线观看| 欧美激情亚洲一区| 污视频网站免费在线观看| 欧美理论电影在线播放| 伊人春色在线观看| 欧美成人免费在线视频| 中文av资源在线| 久久久国产成人精品| 日本中文在线观看| 久久精品视频亚洲| 免费的黄网站在线观看| 日日骚久久av| 毛片av在线| 欧美精品在线免费| 天堂av最新在线| 欧美激情视频在线免费观看 欧美视频免费一 | 乱子伦一区二区| 欧美日韩一区二区高清| 轻点好疼好大好爽视频| 在线观看日韩av电影| 国内精品在线观看视频| 久久精品道一区二区三区| 日韩 欧美 高清| 免费高清在线视频一区·| 欧美国产日韩另类 | 熟女少妇一区二区三区| 久久久久久久久久久99999| 中文字幕网站在线观看| 中文字幕一区二区在线观看| 午夜剧场免费在线观看| 一区二区三区久久| 国产精品suv一区二区69| 精品久久在线播放| 亚洲国产无线乱码在线观看| 91麻豆精品国产91久久久| av网站在线观看免费| 亚洲精美色品网站| av资源网在线观看| 美女少妇精品视频| а√在线天堂官网| 国产精品久久久av| 国产视频一区二| 久久99精品国产99久久| 俺要去色综合狠狠| 国产一区二区三区乱码| 亚洲在线网站| 日韩在线一区视频| www.亚洲在线| 超碰人人干人人| 亚洲自拍偷拍综合| 中文字幕在线观看视频免费| 欧美一区二区视频在线观看2020| 日本xxxxwww| 最近2019免费中文字幕视频三| 羞羞污视频在线观看| 日本道色综合久久影院| av日韩一区| 久久综合伊人77777麻豆| 国产精品久久久久久影院8一贰佰| 阿v天堂2018| 久久福利资源站| 亚洲av无码一区二区三区网址| 国产精品久久久久久亚洲伦| 国产无遮挡又黄又爽| 欧美三级乱人伦电影| 五月激情婷婷网| 久久激情视频久久| 色综合一本到久久亚洲91| 成人羞羞视频免费| 日韩av久操| 成人在线免费在线观看| 国产成人精品一区二区三区四区 | 8x8x成人免费视频| 91看片淫黄大片一级在线观看| 日韩影院一区二区| 欧美中文字幕一区| 色噜噜在线播放| 久久久极品av| 日本精品裸体写真集在线观看| 国产伦精品一区二区三区照片| 999久久久91| 无码日韩人妻精品久久蜜桃| 成人av免费在线观看| 国产一区二区播放| 欧美色手机在线观看| 免费在线黄色影片| 97超碰蝌蚪网人人做人人爽| 免费欧美网站| 欧美 另类 交| 美女国产一区二区三区| 波多野结衣a v在线| 精品动漫一区二区三区| 韩国av永久免费| 欧美大片欧美激情性色a∨久久| 欧美亚洲二区| 亚洲精品一品区二品区三品区 | 亚洲激情在线播放| 91国内精品视频| 伊人伊成久久人综合网小说| 怡红院成人在线| 欧美日韩综合另类| 久久黄色网页| 国产精品九九九九九| 日韩欧美黄色动漫| 精品久久av| 国产999在线观看| 欧美男gay| 日韩一级免费在线观看| 欧美国产日韩精品免费观看| 无码人妻精品一区二区蜜桃色欲| 亚洲免费一在线| 亚洲伦理影院| 亚洲国产另类久久久精品极度| 视频在线在亚洲| 网爆门在线观看| 欧美精品久久久久久久久老牛影院| 最新97超碰在线| 成人免费大片黄在线播放| 性欧美69xoxoxoxo| 国产老头和老头xxxx×| 一区二区成人在线| 香蕉av一区二区三区| 亲子乱一区二区三区电影 | 国产91精品精华液一区二区三区| 欧美人妻精品一区二区三区| 日韩精品综合一本久道在线视频| 久久免费电影| 久久久综合香蕉尹人综合网| 老司机午夜免费精品视频| 手机毛片在线观看| 欧美精选午夜久久久乱码6080| caoporm免费视频在线| 国产精品果冻传媒潘| 午夜在线一区二区| 在线观看亚洲大片短视频| 欧美一区二区精品久久911| 天堂av资源在线观看| 欧美欧美一区二区| 激情综合网天天干| 久久久精品99| 亚洲欧美999| 精品69视频一区二区三区| 人妻互换免费中文字幕| 久久精品欧美一区二区三区不卡| 一区二区视频免费| 欧美黑人极品猛少妇色xxxxx| 日韩av三区| 中文字幕线观看| 精品久久久免费| 精品176二区| 激情视频在线观看一区二区三区| 天堂av在线一区| 久久免费精彩视频| 国产小视频91| 波多野结衣一区二区三区免费视频| 成人小视频在线看| 亚洲欧美另类在线| 久草在线青青草| 99在线看视频| 奇米影视在线99精品| 国产午夜福利片| 久久艳片www.17c.com| 久久精品国产亚洲高清剧情介绍| 欧美一性一乱一交一视频| 欧美特大特白屁股xxxx| 在线一区亚洲|