国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JavaEE】應(yīng)用層自定義協(xié)議及UDP協(xié)議

這篇具有很好參考價(jià)值的文章主要介紹了【JavaEE】應(yīng)用層自定義協(xié)議及UDP協(xié)議。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

【JavaEE】應(yīng)用層自定義協(xié)議及UDP協(xié)議

  • 博主簡(jiǎn)介:想進(jìn)大廠(chǎng)的打工人
  • 博主主頁(yè):@xyk:
  • 所屬專(zhuān)欄:?JavaEE初階

本篇文章將為大家介紹應(yīng)用層中UDP協(xié)議~~

在應(yīng)用層這里,雖然存在一些現(xiàn)有的協(xié)議(HTTP),但是也有很多情況,需要程序猿自定制協(xié)議,對(duì)于自定制協(xié)議來(lái)說(shuō),就是個(gè)很簡(jiǎn)單的事情~~那么怎么理解這件事情?


目錄

文章目錄

一、應(yīng)用層協(xié)議(自定義組織格式)

1.1 如何約定自定義協(xié)議

二、UDP格式

2.1 UDP報(bào)文的格式


一、應(yīng)用層協(xié)議(自定義組織格式)

應(yīng)用層在大多數(shù)情況下,可能需要程序猿自定義協(xié)議來(lái)約定~

什么是自定義組織協(xié)議?

比如說(shuō):qq發(fā)一個(gè)消息,構(gòu)成一個(gè)應(yīng)用層的數(shù)據(jù)報(bào)

【JavaEE】應(yīng)用層自定義協(xié)議及UDP協(xié)議

此處只是模擬一下qq的數(shù)據(jù)報(bào)格式,真實(shí)的qq采取的數(shù)據(jù)報(bào)可能更加復(fù)雜

約定應(yīng)用層數(shù)據(jù)報(bào),數(shù)據(jù)格式,就是在自定義協(xié)議

1.1 如何約定自定義協(xié)議

約定:

1.要傳輸哪些信息(根據(jù)需求走的)

【JavaEE】應(yīng)用層自定義協(xié)議及UDP協(xié)議

2.確定數(shù)據(jù)按照啥樣的格式來(lái)組織(隨意約定的)

網(wǎng)絡(luò)上傳輸?shù)?,本質(zhì)上都是 0101,視為二進(jìn)制的字符串~~

需要把上述這些信息整合成一個(gè)字符串~~

【JavaEE】應(yīng)用層自定義協(xié)議及UDP協(xié)議?只要發(fā)送方按照這套格式來(lái)組織數(shù)據(jù),接收方按照這套格式來(lái)解析數(shù)據(jù),兩者能對(duì)上,這樣的格式就是可行的~~~

常見(jiàn)組織格式:

  1. 分隔符
    • 以空格、回車(chē)…分割
    • 以分號(hào)…表示結(jié)束

實(shí)際開(kāi)發(fā)會(huì)使用一些現(xiàn)成的格式:

  1. xml
    • html是特殊的xml格式
    • html標(biāo)簽名和含義都是固定的,是我們需要遵守的
    • 【JavaEE】應(yīng)用層自定義協(xié)議及UDP協(xié)議

標(biāo)簽的形式:< XXX > … </ XXX>

2.json

【JavaEE】應(yīng)用層自定義協(xié)議及UDP協(xié)議

  • 以{ }作為標(biāo)識(shí)

  • 內(nèi)部有多個(gè)鍵值對(duì),每個(gè)鍵值對(duì)之間用逗號(hào)分割

  • key與值之間使用冒號(hào)分割

    • key必須是字符串,
    • 值可以是數(shù)組,字符串,數(shù)字甚至是另一個(gè)json

二、UDP格式

2.1 UDP報(bào)文的格式

【JavaEE】應(yīng)用層自定義協(xié)議及UDP協(xié)議

?實(shí)際的格式不是這樣子的,這樣只是為了計(jì)算機(jī)網(wǎng)絡(luò)的教材方便印刷~~~

【JavaEE】應(yīng)用層自定義協(xié)議及UDP協(xié)議

載荷中存儲(chǔ)的是一個(gè)完整的應(yīng)用層數(shù)據(jù)報(bào)~

【JavaEE】應(yīng)用層自定義協(xié)議及UDP協(xié)議

每個(gè)端口號(hào) 在UDP報(bào)文里,占兩個(gè)字節(jié)~~

其實(shí)端口號(hào)的取值范圍 0 -> 65535

< 1024 的端口號(hào),稱(chēng)為“知名端口號(hào)”,給一些名氣大的服務(wù)器預(yù)留的端口~~

比如:http :80,ssh : 22,ftp:21,

  • “端口0”并不正式存在。 它被定義為無(wú)效的端口號(hào)。

至于“專(zhuān)屬座位”有什么用

  • 服務(wù)器一般端口號(hào)不需要怎么改變,所以保持在一個(gè)端口號(hào)是個(gè)正常的抉擇
  • 不然每次你都要去查這個(gè)常用的服務(wù)器端口號(hào)是多少~

【JavaEE】應(yīng)用層自定義協(xié)議及UDP協(xié)議

2字節(jié) 表示的范圍 0 -> 65535 => 64KB(64KB - 1B),表示一個(gè)UDP報(bào)文最大長(zhǎng)度就是 64 KB?。。。ń疲?/p>

  • 代表UDP正文最大就是64KB大而已
  • 不是說(shuō)只能傳一個(gè)“65535”大小的整數(shù)~
  • 而是65535字節(jié)的數(shù)據(jù)量!

時(shí)代不同,現(xiàn)在64KB很小了,一個(gè)表情包都能幾MB了~

  • 但是如果要擴(kuò)大這個(gè)限制,那么我們就要升級(jí)UDP系統(tǒng),全世界主機(jī)太多了,用的都不是一樣的操作系統(tǒng),有windows,linux,mac
  • 只有都升級(jí),才能通訊,這不現(xiàn)實(shí)~

要傳輸大數(shù)據(jù)

  1. 把一個(gè)大的數(shù)據(jù)拆分為多個(gè)數(shù)據(jù)部分,使用多個(gè)UDP數(shù)據(jù)報(bào)來(lái)傳輸~~
  2. 不用UDP,直接用TCP去傳輸 ,TCP就沒(méi)有限制~

2.2 校驗(yàn)和:

網(wǎng)絡(luò)傳輸并非那么穩(wěn)定,可能會(huì)出現(xiàn)誤差

  • 我們傳遞的數(shù)據(jù)本質(zhì)是01…,而我們用高低電平表示01

【JavaEE】應(yīng)用層自定義協(xié)議及UDP協(xié)議

難免會(huì)有一些干擾,例如強(qiáng)磁場(chǎng)(太陽(yáng)黑子)

這樣就會(huì)導(dǎo)致一些高電平轉(zhuǎn)變?yōu)榈碗娖剑碗娖睫D(zhuǎn)變?yōu)楦唠娖?/p>

【JavaEE】應(yīng)用層自定義協(xié)議及UDP協(xié)議

  • 那么校驗(yàn)和的存在,就相當(dāng)于定下了一個(gè)標(biāo)準(zhǔn)
    • 滿(mǎn)足這個(gè)標(biāo)準(zhǔn),數(shù)據(jù)不一定對(duì);但是不滿(mǎn)足這個(gè)標(biāo)準(zhǔn),這個(gè)數(shù)據(jù)肯定錯(cuò)
    • 而這個(gè)校驗(yàn)和,要是中間數(shù)據(jù)發(fā)生01轉(zhuǎn)變,大概率是對(duì)不上的
    • 可能校驗(yàn)和跟數(shù)據(jù)發(fā)生突變后,還對(duì)上了。很極端的情況

比如:去市場(chǎng)買(mǎi)菜

需要買(mǎi)西紅柿,雞蛋,茄子,芹菜,一共四樣

如果買(mǎi)到的菜少于或者多于四樣,100%是錯(cuò)的!

但是如果手里的菜是四樣,也不一定是對(duì)的,可能是錯(cuò)誤的~


為了讓校驗(yàn)和能夠識(shí)別率更高一些,計(jì)算的時(shí)候通常會(huì)以數(shù)據(jù)內(nèi)容作為參數(shù)來(lái)進(jìn)行計(jì)算.

數(shù)據(jù)內(nèi)容發(fā)生變化,校驗(yàn)和也會(huì)變化~~

?帶有內(nèi)容的校驗(yàn)和:
【JavaEE】應(yīng)用層自定義協(xié)議及UDP協(xié)議

【JavaEE】應(yīng)用層自定義協(xié)議及UDP協(xié)議

發(fā)送方把這一串?dāng)?shù)據(jù)發(fā)給接收方,接收方收到的數(shù)據(jù),既有載荷,也有校驗(yàn)和sum1

接受方就可以按照載荷按照同樣的算法,再計(jì)算一邊校驗(yàn)和,得到了sum2

對(duì)于sum1和sum2是否相同,如果不相同,數(shù)據(jù)一定出現(xiàn)了問(wèn)題?。?/p>

udp這里使用的是CRC算法,是一個(gè)簡(jiǎn)單粗暴的算法,大家可以自行了解~~

UDP協(xié)議還是相對(duì)簡(jiǎn)單,下一篇我們介紹TCP協(xié)議~~~~文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-459563.html

到了這里,關(guān)于【JavaEE】應(yīng)用層自定義協(xié)議及UDP協(xié)議的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Netty自定義應(yīng)用層協(xié)議逃不開(kāi)的粘包和拆包處理

    Netty自定義應(yīng)用層協(xié)議逃不開(kāi)的粘包和拆包處理

    導(dǎo)致一次發(fā)送的數(shù)據(jù)被分成多個(gè)數(shù)據(jù)包進(jìn)行傳輸,或者多次發(fā)送的數(shù)據(jù)被粘成一個(gè)數(shù)據(jù)包進(jìn)行傳輸 使用TCP進(jìn)行數(shù)據(jù)傳輸時(shí),TCP是一種有序的字節(jié)流,其中是一個(gè)一個(gè)的數(shù)據(jù)報(bào)文發(fā)送到系統(tǒng)的緩沖區(qū)中。因此在發(fā)送端和接收端之間無(wú)法保證數(shù)據(jù)的分割和邊界。這就可能導(dǎo)致數(shù)據(jù)

    2023年04月23日
    瀏覽(31)
  • 根據(jù)源碼,模擬實(shí)現(xiàn) RabbitMQ - 網(wǎng)絡(luò)通訊設(shè)計(jì),自定義應(yīng)用層協(xié)議,實(shí)現(xiàn) BrokerServer (8)

    根據(jù)源碼,模擬實(shí)現(xiàn) RabbitMQ - 網(wǎng)絡(luò)通訊設(shè)計(jì),自定義應(yīng)用層協(xié)議,實(shí)現(xiàn) BrokerServer (8)

    目錄 一、網(wǎng)絡(luò)通訊協(xié)議設(shè)計(jì) 1.1、交互模型 1.2、自定義應(yīng)用層協(xié)議 1.2.1、請(qǐng)求和響應(yīng)格式約定 ?編輯 1.2.2、參數(shù)說(shuō)明 1.2.3、具體例子 1.2.4、特殊栗子 1.3、實(shí)現(xiàn) BrokerServer 1.3.1、屬性和構(gòu)造 1.3.2、啟動(dòng) BrokerServer 1.3.3、停止 BrokerServer 1.3.4、處理每一個(gè)客戶(hù)端連接 1.3.5、讀取請(qǐng)求

    2024年02月10日
    瀏覽(20)
  • 【網(wǎng)絡(luò)應(yīng)用層協(xié)議】【HTTP】詳解HTTP與HTTPS、POST 請(qǐng)求與 GET請(qǐng)求 、TCP與UDP、cookie和session的區(qū)別

    目錄 1. HTTP和HTTPS的區(qū)別 2. POST 請(qǐng)求與 GET 請(qǐng)求區(qū)別 3. TCP與UDP的區(qū)別 4. cookie和session的區(qū)別

    2024年04月14日
    瀏覽(38)
  • 常見(jiàn)應(yīng)用層協(xié)議端口號(hào)及簡(jiǎn)介【HTTP80、FTP20(數(shù)據(jù)連接)21(控制連接)、POP3 110、DNS 53、TFTP文件傳輸協(xié)議 69】、http無(wú)狀態(tài)、http的壓縮傳輸

    常見(jiàn)應(yīng)用層協(xié)議端口號(hào)及簡(jiǎn)介【HTTP80、FTP20(數(shù)據(jù)連接)21(控制連接)、POP3 110、DNS 53、TFTP文件傳輸協(xié)議 69】、http無(wú)狀態(tài)、http的壓縮傳輸

    目錄 一、常見(jiàn)應(yīng)用層協(xié)議 我們先看一下其常用協(xié)議的端口號(hào): HTTP(hypertext transfer protocol)超文本傳輸協(xié)議(80) HTTPS(secure hypertext transfer protocol)安全文本傳輸協(xié)議(443) FTP(file transfer protocol)文件傳輸協(xié)議(21) TELNET(terminal NETwork)遠(yuǎn)程登錄(端口號(hào)23) SMTP簡(jiǎn)單郵件

    2023年04月08日
    瀏覽(27)
  • 應(yīng)用層協(xié)議 HTTP

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

    我們已經(jīng)學(xué)過(guò) TCP/IP , 已然知道數(shù)據(jù)能從客戶(hù)端進(jìn)程經(jīng)過(guò)路徑選擇跨網(wǎng)絡(luò)傳送到服務(wù)器端進(jìn)程。 我們還需要知道的是,我們把數(shù)據(jù)從 A 端傳送到 B 端, TCP/IP 解決的是順豐的功能,而兩端還要對(duì)數(shù)據(jù)進(jìn)行加工處理或者使用,所以我們還需要一層協(xié)議,不關(guān)心通信細(xì)節(jié),關(guān)心應(yīng)用

    2024年02月06日
    瀏覽(24)
  • 應(yīng)用層協(xié)議——https

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

    HTTP 協(xié)議內(nèi)容都是按照?本的?式明?傳輸?shù)模@就導(dǎo)致在傳輸過(guò)程中出現(xiàn)?些被篡改的情況。HTTPS 也是?個(gè)應(yīng)?層協(xié)議,是在 HTTP 協(xié)議的基礎(chǔ)上引?了?個(gè)加密層。HTTPS的端口號(hào)是443。 它是在應(yīng)用層和傳輸層間加了一個(gè)軟件層,當(dāng)進(jìn)行網(wǎng)絡(luò)傳輸時(shí),從上而下就是在加密,從

    2024年02月12日
    瀏覽(18)
  • 應(yīng)用層協(xié)議——http

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

    雖然我們說(shuō),應(yīng)用層協(xié)議是我們自己定的,但實(shí)際上,已經(jīng)有一些現(xiàn)成的,又非常好用的應(yīng)用層協(xié)議,供我們直接參考使用。HTTP(超文本傳輸協(xié)議)就是其中之一。 平時(shí)我們俗稱(chēng)的 “網(wǎng)址” 其實(shí)就是說(shuō)的 URL: 這里的登錄信息現(xiàn)在已經(jīng)隱藏起來(lái),改成例如手機(jī)登錄、微信登錄

    2024年02月15日
    瀏覽(18)
  • 【網(wǎng)絡(luò)】應(yīng)用層——HTTP協(xié)議

    【網(wǎng)絡(luò)】應(yīng)用層——HTTP協(xié)議

    ??作者:一只大喵咪1201 ??專(zhuān)欄:《網(wǎng)絡(luò)》 ??格言: 你只管努力,剩下的交給時(shí)間! 上篇文章中,本喵帶著大家對(duì)HTTP有了一個(gè)初步的認(rèn)識(shí),今天就來(lái)詳細(xì)講解一下這個(gè)應(yīng)用層協(xié)議。 如上圖所示的 url (網(wǎng)址),里面包含有 / 以及 ? 等字符。 像這樣的字符,已經(jīng)被url當(dāng)做 特殊

    2024年02月15日
    瀏覽(26)
  • 【網(wǎng)絡(luò)】應(yīng)用層——HTTPS協(xié)議

    【網(wǎng)絡(luò)】應(yīng)用層——HTTPS協(xié)議

    ??作者:一只大喵咪1201 ??專(zhuān)欄:《網(wǎng)絡(luò)》 ??格言: 你只管努力,剩下的交給時(shí)間! 前面本喵講解并演示了HTTP協(xié)議,在比較 POST 和 GET 方法的時(shí)候,本喵說(shuō)這兩個(gè)方法都不安全,雖然 POST 的提交的表單內(nèi)容在請(qǐng)求正文中,無(wú)法在地址的 url 中看到,但是它仍然是不安全的。

    2024年02月14日
    瀏覽(26)
  • 【網(wǎng)絡(luò)原理】應(yīng)用層協(xié)議 與 傳輸層協(xié)議

    【網(wǎng)絡(luò)原理】應(yīng)用層協(xié)議 與 傳輸層協(xié)議

    ?個(gè)人主頁(yè):bit me?? ?當(dāng)前專(zhuān)欄:Java EE初階?? 我們自己寫(xiě)的應(yīng)用程序就是在應(yīng)用層 雖然應(yīng)用層里面有一些現(xiàn)成的協(xié)議,但是在實(shí)際工作中也會(huì)存在 自定義應(yīng)用層協(xié)議 (發(fā)明協(xié)議? 協(xié)議就是約定,約定好客戶(hù)端和服務(wù)器按照啥樣的格式來(lái)傳輸數(shù)據(jù) ) 那么應(yīng)用層協(xié)議如何

    2023年04月20日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包