日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

UDP 協(xié)議校驗(yàn)和計(jì)算

 bling小興星 2019-09-03

UDP 協(xié)議不具備差錯(cuò)恢復(fù)機(jī)制,但能通過校驗(yàn)和判斷網(wǎng)絡(luò)傳輸是否出現(xiàn)丟包。UDP 的校驗(yàn)和由三部分內(nèi)容求和得到,分別是偽首部、首部以及數(shù)據(jù)報(bào)文,如下圖所示

為了弄清楚這些字段究竟是什么東西,下面我們使用 wireshark 來抓取一個(gè) UDP 包來詳細(xì)分析。為了制造這個(gè) UDP 包,使用如下代碼來向某 ip 地址發(fā)送一段數(shù)據(jù)(這個(gè) ip 不一定非得實(shí)際存在,我們只需要觀察基于 UDP 協(xié)議封裝的數(shù)據(jù),所以只要能被 wireshark 獲取就行)

import java.io.IOException;import java.net.*;/**
 * Created by wangx on 2017/10/19.
 */public class Client {private DatagramSocket socket;public Client() throws SocketException {socket = new DatagramSocket();}public void run() throws IOException {InetAddress ip = InetAddress.getByName("11.111.111.111");String message = "hello UDP";byte[] buffer = message.getBytes();DatagramPacket sendPacket = new DatagramPacket(buffer, buffer.length, ip, 12345);socket.send(sendPacket);}public static void main(String[] args) throws IOException {new Client().run();}}

在運(yùn)行之前,啟動(dòng) wireshark 捕獲,之后找到 Destination 欄為 11.111.111.111 的 UDP 行,類似于下圖所示

然后找到這個(gè) UDP 包的詳細(xì)信息

以及這段信息的十六進(jìn)制表示

有了以上這些內(nèi)容,剩下的就是對(duì)照著最開始的圖表來尋找各個(gè)參數(shù)的值了( wireshark 一個(gè)十分好用的功能就是點(diǎn)選上面的人類可讀內(nèi)容,其十六進(jìn)制值會(huì)在下面高亮顯示)。我用下表來表示

keyhumanhex
Source192.168.1.106c0a8 016a
Destination11.111.111.1110b6f 6f6f
ProtocolUDP(17)11
Length1711
Source Port63549f83d
Destination Port123453039
Length1711
Checksum0xb12db12d
Datahello UDP6865 6c6c 6f20 5544 5000

然后就可以開始著手校驗(yàn)和的計(jì)算了,但在這之前還應(yīng)注意,上表中有一項(xiàng) Checksum ,這是發(fā)送方根據(jù)發(fā)送內(nèi)容計(jì)算出來校驗(yàn)和,接受方需要根據(jù)收到的內(nèi)容重新計(jì)算一遍校驗(yàn)和,然后再對(duì)比兩者。所以在接收方計(jì)算時(shí)應(yīng)該忽略這里 Checksum 項(xiàng)。

校驗(yàn)和的計(jì)算規(guī)則很簡(jiǎn)單,就是將上表中所有的 16 進(jìn)制數(shù)加起來,之后取反碼。有一點(diǎn)需要注意的是,如果遇到最高位進(jìn)位,那么需要對(duì)結(jié)果進(jìn)行回卷,意思是

簡(jiǎn)單來說,就是將要進(jìn)的那一位加到尾部,上面是以二進(jìn)制演示的,對(duì)于16進(jìn)制同樣適用。

詳情查看原文

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多