欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

udp協(xié)議簡介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2021年02月19日 11:06:29   作者:goodboy  
這篇文章主要為大家詳細(xì)介紹了udp協(xié)議簡介的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

1.UDP簡要介紹

UDP是傳輸層協(xié)議,和TCP協(xié)議處于一個(gè)分層中,但是與TCP協(xié)議不同,UDP協(xié)議并不提供超時(shí)重傳,出錯(cuò)重傳等功能,也就是說其是不可靠的協(xié)議。

2.UDP協(xié)議頭

UDP端口號(hào)

由于很多軟件需要用到UDP協(xié)議,所以UDP協(xié)議必須通過某個(gè)標(biāo)志用以區(qū)分不同的程序所需要的數(shù)據(jù)包。端口號(hào)的功能就在于此,例如某一個(gè)UDP程序A在系統(tǒng)中注冊(cè)了3000端口,那么,以后從外面?zhèn)鬟M(jìn)來的目的端口號(hào)為3000的UDP包都會(huì)交給該程序。端口號(hào)理論上可以有2^16這么多。因?yàn)樗拈L度是16個(gè)bit

UDP檢驗(yàn)和

這是一個(gè)可選的選項(xiàng),并不是所有的系統(tǒng)都對(duì)UDP數(shù)據(jù)包加以檢驗(yàn)和數(shù)據(jù)(相對(duì)TCP協(xié)議的必須來說),但是RFC中標(biāo)準(zhǔn)要求,發(fā)送端應(yīng)該計(jì)算檢驗(yàn)和。

UDP檢驗(yàn)和覆蓋UDP協(xié)議頭和數(shù)據(jù),這和IP的檢驗(yàn)和是不同的,IP協(xié)議的檢驗(yàn)和只是覆蓋IP數(shù)據(jù)頭,并不覆蓋所有的數(shù)據(jù)。UDP和TCP都包含一個(gè)偽首部,這是為了計(jì)算檢驗(yàn)和而攝制的。偽首部甚至還包含IP地址這樣的IP協(xié)議里面都有的信息,目的是讓UDP兩次檢查數(shù)據(jù)是否已經(jīng)正確到達(dá)目的地。如果發(fā)送端沒有打開檢驗(yàn)和選項(xiàng),而接收端計(jì)算檢驗(yàn)和有差錯(cuò),那么UDP數(shù)據(jù)將會(huì)被悄悄的丟掉(不保證送達(dá)),而不產(chǎn)生任何差錯(cuò)報(bào)文。

UDP長度

UDP可以很長很長,可以有65535字節(jié)那么長。但是一般網(wǎng)絡(luò)在傳送的時(shí)候,一次一般傳送不了那么長的協(xié)議(涉及到MTU的問題),就只好對(duì)數(shù)據(jù)分片,當(dāng)然,這些是對(duì)UDP等上級(jí)協(xié)議透明的,UDP不需要關(guān)心IP協(xié)議層對(duì)數(shù)據(jù)如何分片,下一個(gè)章節(jié)將會(huì)稍微討論一些分片的策略。

IP分片

IP在從上層接到數(shù)據(jù)以后,要根據(jù)IP地址來判斷從那個(gè)接口發(fā)送數(shù)據(jù)(通過選路),并進(jìn)行MTU的查詢,如果數(shù)據(jù)大小超過MTU就進(jìn)行數(shù)據(jù)分片。數(shù)據(jù)的分片是對(duì)上層和下層透明,而數(shù)據(jù)也只是到達(dá)目的地還會(huì)被重新組裝,不過不用擔(dān)心,IP層提供了足夠的信息進(jìn)行數(shù)據(jù)的再組裝。

在IP頭里面,16bit識(shí)別號(hào)唯一記錄了一個(gè)IP包的ID,具有同一個(gè)ID的IP片將會(huì)被重新組裝;而13位片偏移則記錄了某IP片相對(duì)整個(gè)包的位置;而這兩個(gè)表示中間的3bit標(biāo)志則標(biāo)示著該分片后面是否還有新的分片。這三個(gè)標(biāo)示就組成了IP分片的所有信息,接受方就可以利用這些信息對(duì)IP數(shù)據(jù)進(jìn)行重新組織(就算是后面的分片比前面的分片先到,這些信息也是足夠了)。
因?yàn)榉制夹g(shù)在網(wǎng)絡(luò)上被經(jīng)常的使用,所以偽造IP分片包進(jìn)行流氓攻擊的軟件和人也就層出不窮。

可以用Trancdroute程序來進(jìn)行簡單的MTU偵測。請(qǐng)參看教材。

UDP和ARP之間的交互式用

這是不常被人注意到的一個(gè)細(xì)節(jié),這是針對(duì)一些系統(tǒng)地實(shí)現(xiàn)來說的。當(dāng)ARP緩存還是空的時(shí)候。UDP在被發(fā)送之前一定要發(fā)送一個(gè)ARP請(qǐng)求來獲得目的主機(jī)的MAC地址,如果這個(gè)UDP的數(shù)據(jù)包足夠大,大到IP層一定要對(duì)其進(jìn)行分片的時(shí)候,想象中,該UDP數(shù)據(jù)包的第一個(gè)分片會(huì)發(fā)出一個(gè)ARP查詢請(qǐng)求,所有的分片都輝等到這個(gè)查詢完成以后再發(fā)送。事實(shí)上是這樣嗎?
結(jié)果是,某些系統(tǒng)會(huì)讓每一個(gè)分片都發(fā)送一個(gè)ARP查詢,所有的分片都在等待,但是接受到第一個(gè)回應(yīng)的時(shí)候,主機(jī)卻只發(fā)送了最后一個(gè)數(shù)據(jù)片而拋棄了其他,這實(shí)在是讓人匪夷所思。這樣,因?yàn)榉制臄?shù)據(jù)不能被及時(shí)組裝,接受主機(jī)將會(huì)在一段時(shí)間內(nèi)將永遠(yuǎn)無法組裝的IP數(shù)據(jù)包拋棄,并且發(fā)送組裝超時(shí)的ICMP報(bào)文(其實(shí)很多系統(tǒng)不產(chǎn)生這個(gè)差錯(cuò)),以保證接受主機(jī)自己的接收端緩存不被那些永遠(yuǎn)得不到組裝的分片充滿。

ICMP源站抑制差錯(cuò)

當(dāng)目標(biāo)主機(jī)的處理速度趕不上數(shù)據(jù)接收的速度,因?yàn)榻邮苤鳈C(jī)的IP層緩存會(huì)被占滿,所以主機(jī)就會(huì)發(fā)出一個(gè)“我受不了”的一個(gè)ICMP報(bào)文。

UDP服務(wù)器設(shè)計(jì)

UDP協(xié)議的某些特性將會(huì)影響我們的服務(wù)器程序設(shè)計(jì),大致總結(jié)如下:

1.關(guān)于客戶IP和地址:服務(wù)器必須有根據(jù)客戶IP地址和端口號(hào)判斷數(shù)據(jù)包是否合法的能力(這似乎要求每一個(gè)服務(wù)器都要具備)
2.關(guān)于目的地址:服務(wù)器必須要有過濾廣播地址的能力。
3.關(guān)于數(shù)據(jù)輸入:通常服務(wù)器系統(tǒng)的每一個(gè)端口號(hào)都會(huì)和一塊輸入緩沖區(qū)對(duì)應(yīng),進(jìn)來的輸入根據(jù)先來后到的原則等待服務(wù)器的處理,所以難免會(huì)出現(xiàn)緩沖區(qū)溢出的問題,這種情況下,UDP數(shù)據(jù)包可能會(huì)被丟棄,而應(yīng)用服務(wù)器程序本身并不知道這個(gè)問題。
4.服務(wù)器應(yīng)該限制本地IP地址,就是說它應(yīng)該可以把自己綁定到某一個(gè)網(wǎng)絡(luò)接口的某一個(gè)端口上。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • git fetch與git pull的區(qū)別詳解

    git fetch與git pull的區(qū)別詳解

    這篇文章主要介紹了git fetch與git pull的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • git ssh 配置多個(gè)賬戶的方法

    git ssh 配置多個(gè)賬戶的方法

    這篇文章主要介紹了git ssh 配置多個(gè)賬戶的方法,需要的朋友可以參考下
    2017-10-10
  • 教你JVM怎么使用native memory

    教你JVM怎么使用native memory

    這篇文章主要為大家介紹了JVM怎么使用native memory原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Chrome 調(diào)試技巧(小結(jié))

    Chrome 調(diào)試技巧(小結(jié))

    這篇文章主要介紹了Chrome 調(diào)試技巧(小結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • 程序員編程從初級(jí)到中級(jí)的10個(gè)秘訣

    程序員編程從初級(jí)到中級(jí)的10個(gè)秘訣

    在一封與TechRepublic會(huì)員交流的郵件當(dāng)中,他提到了面向程序員的博客、文章及雜志分成兩類:面向初學(xué)者類(“hello world”這種類型的教程)以及面向?qū)<翌悾∕SDN雜志)。
    2011-02-02
  • 關(guān)于使用mvn deploy命令將本地jar包上傳到maven私服的問題(收藏)

    關(guān)于使用mvn deploy命令將本地jar包上傳到maven私服的問題(收藏)

    這篇文章主要介紹了使用mvn deploy命令將本地jar包上傳到maven私服,分享本篇教程可以幫助多數(shù)朋友少走彎路,本文具有很好的收藏價(jià)值,需要的朋友可以參考下
    2022-03-03
  • vsCode中配置setings.json的技巧

    vsCode中配置setings.json的技巧

    本文給大家分享的是一個(gè)在vsCode中配置好的setings.json的樣例,可以給大家一個(gè)參考,有需要的小伙伴可以來看下
    2020-01-01
  • VsCode配置ssh免密遠(yuǎn)程連接服務(wù)器的實(shí)現(xiàn)步驟

    VsCode配置ssh免密遠(yuǎn)程連接服務(wù)器的實(shí)現(xiàn)步驟

    現(xiàn)在,可以在VSCode中直接通過SSH連接到服務(wù)器,而無需每次輸入密碼,本文主要介紹了VsCode配置ssh免密遠(yuǎn)程連接服務(wù)器的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • IDEA配置GIT的詳細(xì)教程

    IDEA配置GIT的詳細(xì)教程

    這篇文章主要介紹了IDEA配置GIT的詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • ChatGPT如何寫好Prompt編程示例詳解

    ChatGPT如何寫好Prompt編程示例詳解

    這篇文章主要為大家介紹了ChatGPT如何寫好Prompt編程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03

最新評(píng)論