精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

以太網(wǎng)的心跳包組建設(shè)計方案

454398 ? 來源:FPGA開源工作室 ? 作者:FPGA開源工作室 ? 2020-09-30 10:49 ? 次閱讀

心跳包就是在客戶端和服務(wù)器間定時通知對方自己狀態(tài)的一個自己定義的命令字,按照一定的時間間隔發(fā)送,類似于心跳,所以叫做心跳包。心跳包在GPRS通信和CDMA通信的應(yīng)用方面使用非常廣泛。數(shù)據(jù)網(wǎng)關(guān)會定時清理沒有數(shù)據(jù)的路由,心跳包通常設(shè)定在30-40秒之間。所謂的心跳包就是客戶端定時發(fā)送簡單的信息給服務(wù)器端告訴它我還在而已。代碼就是每隔幾分鐘發(fā)送一個固定信息給服務(wù)端,服務(wù)端收到后回復(fù)一個固定信息如果服務(wù)端幾分鐘內(nèi)沒有收到客戶端信息則視客戶端斷開。本次設(shè)計中,心跳包時間間隔為1秒。

一、心跳包觸發(fā)器

設(shè)計一個 1 秒定時器,每隔一秒就產(chǎn)生一個心跳包觸發(fā)脈沖,用于下一步心跳包的組建。

二、心跳包粗略框架

本次以太網(wǎng)的心跳包結(jié)構(gòu)如下所示:

本次發(fā)送 64 個全為0的數(shù)據(jù),當(dāng)然這個數(shù)據(jù)是自定義的,因此心跳包總長度為118。此外目的/源 MAC 地址、目的/源 IP 地址、目的/源 port 等值可以用參數(shù)的方式先寫好。利用剛剛設(shè)計的心跳包觸發(fā)脈沖,我們就能組建這個心跳包了。表中黃色部分為后面需要校驗(yàn)的值,可以先填0進(jìn)去,后面再覆蓋掉這三處即可。代碼也沒什么說的,用參數(shù)和case語句即可。

點(diǎn)擊電腦 Win + R 鍵,輸入 cmd,再出入 ipconfig -all,按回車鍵,即可看到自己電腦的 MAC 地址等參數(shù)。

三、心跳包填充:IP校驗(yàn)和UDP校驗(yàn)

1、IP校驗(yàn)方法

IP 校驗(yàn)就是把 IP 首部 20byte 按 2byte(即 16bit)分開后相加,結(jié)果如果大于 16’hffff,就將超出 16’hffff 的部分與相加結(jié)果的低 16 位相加,直到最終結(jié)果小于 16’hffff 為止。最后把小于 16’hffff 的結(jié)果取反作為 ip_checksum。高字節(jié)在前,低字節(jié)在后,替換掉前面在心跳包中填充的 0。

(1) 校驗(yàn)和字段清0

假設(shè)有一段以太網(wǎng)包前面沒有對 IP 校驗(yàn)和字段清0,而是賦了別的值,例如 IP 首部為:45 00 00 30 80 4c 40 00 80 06 b5 2e d3 43 11 7b cb 51 15 3d,b5 2e 字段即為 IP 校驗(yàn)和字段,清0后數(shù)據(jù)就變成了:45 00 00 30 80 4c 40 00 80 06 00 00 d3 43 11 7b cb 51 15 3d。

(2) 反碼求和

4500+0030+804c+4000+8006+0000+d343+117b+cb51+153d = 34ace,將超過 16’hffff 的部分(即3)與低 16 位(即4ace)上,結(jié)果為:3+4ace=4ad1,因?yàn)?4ad1 小于 ffff,故作為 Ip_checksum 的反碼。

(3) 取反得最終結(jié)果

將 4ad1 取反得 b52e,這就是本包數(shù)據(jù)最終的 IP 校驗(yàn)和,再將 b52e 填充到對應(yīng)位置即可。

2、UDP校驗(yàn)方法

(1) 校驗(yàn)方法

UDP_checksum 計算稍微復(fù)雜一點(diǎn),需要加入 IP 偽頭部,將 IP 偽頭部、UDP 首部的 8 個 bytes 和數(shù)據(jù)包部分按 2byte(即 16bit) 分開后相加,結(jié)果如果大于16’hffff,就將超出 16’hffff 的部分與相加結(jié)果的低 16 位相加,直到最終結(jié)果小于 16’hffff 為止。最后把小于 16’hffff 的結(jié)果取反作為 UDP_checksum。高字節(jié)在前,低字節(jié)在后,替換掉前面在心跳包中填充的0。

(2) UDP結(jié)構(gòu)

UDP_checksum 的組成如圖所示。

可以看到,IP 偽頭部包含了 IP 源地址,IP 目的地址,一個字節(jié)的 0,協(xié)議號和 UDP_len ,在前面做的千兆以太網(wǎng)圖像傳輸項目中 IP 源地址,IP 目的地址,協(xié)議號都是固定的,而通過上一篇博客設(shè)計的 UDP_len 為:UDP首部 8byte + 數(shù)據(jù)長度 64byte = 8+64='h0048。在設(shè)計的時候可以先單獨(dú)將 IP 偽頭部計算出來。

3、計算的時序安排

ip_checksum 和 udp_checksum 計算完成,該數(shù)據(jù)填充的位置已經(jīng)經(jīng)過,那么就沒辦法將數(shù)據(jù)填充到原來填充 0 的位置了,但我們想要將其組成完整的以太網(wǎng)包,這一步是不可避免的,那么我們該怎么解決呢?我們可以考慮一下,建立一個足夠大的 RAM ,在計算 ip_checksum 和 udp_checksum 的同時將前面心跳包數(shù)據(jù)存儲到 RAM 中,當(dāng)這一包數(shù)據(jù)全部計算完再將 RAM 中的數(shù)據(jù)讀出。當(dāng)讀出到要填充 ip_checksum 和 udp_checksum 的位置時,將計算出的兩個值取反后填充到對應(yīng)位置即可。

4、時序圖

四、心跳包填充:CRC校驗(yàn)

1、CRC校驗(yàn)范圍

CRC校驗(yàn)另起一段,是因?yàn)橐人阃昵懊娴?ip 校驗(yàn)值和 UDP 校驗(yàn)值才行。CRC校驗(yàn)時必須先去除幀頭(即前面的7個55和1個d5),還得去掉幀尾(即后面4個數(shù)據(jù),前面我們直接在這填了0)。當(dāng) CRC 校驗(yàn)值計算完成后,即可將其填充至數(shù)據(jù)的末尾 4 位即可。

2、CRC校驗(yàn)方法

(1)CRC校驗(yàn)初始值和空閑值都設(shè)置為 32‘hffffffff,即全 1 狀態(tài)。

(2)計算結(jié)果需高低位對調(diào),因?yàn)槲覀冇嬎銜r是先從高位輸入的,所以最后高低位需要對調(diào)。

(3)最后結(jié)果取反,高低位對調(diào)后的結(jié)果再取反,即可得到 CRC 的校驗(yàn)值。

3、CRC校驗(yàn)部分代碼
always @(posedge sclk) begin
if(rst) begin
crc32_value end
else if(crc_en) begin
crc32_value[ 0] crc32_value[ 1] crc32_value[ 2] crc32_value[ 3] crc32_value[ 4] crc32_value[ 5] crc32_value[ 6] crc32_value[ 7] crc32_value[ 8] crc32_value[ 9] crc32_value[10] crc32_value[11] crc32_value[12] crc32_value[13] crc32_value[14] crc32_value[15] crc32_value[16] crc32_value[17] crc32_value[18] crc32_value[19] crc32_value[20] crc32_value[21] crc32_value[22] crc32_value[23] crc32_value[24] crc32_value[25] crc32_value[26] crc32_value[27] crc32_value[28] crc32_value[29] crc32_value[30] crc32_value[31] end
end

4、時序圖

由于這次 CRC 校驗(yàn)值是在末尾,因此不需要用到 RAM 也來得及填充。

至此,我們組建了以太網(wǎng)發(fā)送的心跳包,下一步就可以發(fā)送了。

編輯:hfy


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5385

    瀏覽量

    171162
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1367

    瀏覽量

    114544
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    1996

    瀏覽量

    61057
  • 時序
    +關(guān)注

    關(guān)注

    5

    文章

    386

    瀏覽量

    37290
  • 時序圖
    +關(guān)注

    關(guān)注

    2

    文章

    57

    瀏覽量

    22439
收藏 人收藏

    評論

    相關(guān)推薦

    MMWAVEPOEEVM以太網(wǎng)供電解決方案用戶指南

    電子發(fā)燒友網(wǎng)站提供《MMWAVEPOEEVM以太網(wǎng)供電解決方案用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 11-28 14:34 ?0次下載
    MMWAVEPOEEVM<b class='flag-5'>以太網(wǎng)</b>供電解決<b class='flag-5'>方案</b>用戶指南

    車載以太網(wǎng)與傳統(tǒng)以太網(wǎng)的區(qū)別

    車載以太網(wǎng)與傳統(tǒng)以太網(wǎng)在多個方面存在顯著的差異,這些差異主要體現(xiàn)在傳輸速率、實(shí)時性、可靠性、物理層標(biāo)準(zhǔn)、應(yīng)用場景以及技術(shù)發(fā)展等方面。
    的頭像 發(fā)表于 07-25 11:12 ?1495次閱讀

    工業(yè)以太網(wǎng)和普通以太網(wǎng)區(qū)別在哪

    工業(yè)以太網(wǎng)和普通以太網(wǎng)是兩種不同的以太網(wǎng)技術(shù),它們在設(shè)計、性能、應(yīng)用和可靠性等方面存在顯著差異。本文將詳細(xì)介紹這兩種以太網(wǎng)技術(shù)的區(qū)別。 設(shè)計差異 工業(yè)
    的頭像 發(fā)表于 06-11 10:30 ?2400次閱讀

    使用VN5620監(jiān)控記錄以太網(wǎng)總線數(shù)據(jù)#車載以太網(wǎng) #CANape

    以太網(wǎng)硬件
    北匯信息POLELINK
    發(fā)布于 :2024年06月09日 16:45:04

    車載以太網(wǎng)硬件接口VN5620設(shè)備展示與介紹#車載以太網(wǎng)

    車載以太網(wǎng)
    北匯信息POLELINK
    發(fā)布于 :2024年05月31日 10:27:03

    車載以太網(wǎng)接口VN5650使用場景介紹#車載以太網(wǎng)

    以太網(wǎng)
    北匯信息POLELINK
    發(fā)布于 :2024年05月11日 17:58:05

    FPGA學(xué)習(xí)-以太網(wǎng)的原理介紹

    以太網(wǎng)鏈路上的數(shù)據(jù)稱作以太網(wǎng)幀。以太網(wǎng)幀起始部分由前導(dǎo)碼和幀開始符組成。后面緊跟著一個以太網(wǎng)報頭,以MAC地址說明目的地址和源地址。
    的頭像 發(fā)表于 04-02 16:26 ?1579次閱讀
    FPGA學(xué)習(xí)-<b class='flag-5'>以太網(wǎng)</b>的原理介紹

    以太網(wǎng)交換芯片作用是什么

    以太網(wǎng)交換芯片是網(wǎng)絡(luò)設(shè)備中用于處理和轉(zhuǎn)發(fā)數(shù)據(jù)的關(guān)鍵組件。
    的頭像 發(fā)表于 03-22 16:37 ?979次閱讀

    以太網(wǎng)交換芯片是什么 以太網(wǎng)交換芯片的作用有哪些

    以太網(wǎng)交換芯片是一種專門設(shè)計用于處理以太網(wǎng)數(shù)據(jù)的集成電路,它是網(wǎng)絡(luò)交換機(jī)的核心組件。這種芯片負(fù)責(zé)在網(wǎng)絡(luò)中轉(zhuǎn)發(fā)數(shù)據(jù),確保數(shù)據(jù)能夠從源端口傳輸?shù)侥康亩丝凇?/div>
    的頭像 發(fā)表于 03-21 16:14 ?1783次閱讀

    數(shù)據(jù)中心市場的關(guān)鍵以太網(wǎng)解決方案

    了解數(shù)據(jù)中心市場動態(tài)的關(guān)鍵在于以太網(wǎng)解決方案。Synopsys負(fù)責(zé)產(chǎn)品管理和高性能計算IP的副總裁Michael Posner說:“以太網(wǎng)在數(shù)據(jù)中心中根深蒂固……雖然它并不廣為人知,但60%的數(shù)據(jù)中心硬件都是通過
    發(fā)表于 03-12 09:53 ?400次閱讀
    數(shù)據(jù)中心市場的關(guān)鍵<b class='flag-5'>以太網(wǎng)</b>解決<b class='flag-5'>方案</b>

    以太網(wǎng)怎么連接 以太網(wǎng)組網(wǎng)結(jié)構(gòu)分析

    以太網(wǎng)的組網(wǎng)結(jié)構(gòu)涉及多個層面和組件。首先,從網(wǎng)絡(luò)結(jié)構(gòu)的角度來看,以太網(wǎng)分為物理層、數(shù)據(jù)鏈路層和高層用戶層。其中,物理層采用特定的通信媒體,如50Ω基帶同軸電纜,實(shí)現(xiàn)數(shù)據(jù)的傳輸。數(shù)據(jù)鏈路層則負(fù)責(zé)數(shù)據(jù)的處理與轉(zhuǎn)發(fā)。
    的頭像 發(fā)表于 03-08 17:19 ?3114次閱讀
    <b class='flag-5'>以太網(wǎng)</b>怎么連接 <b class='flag-5'>以太網(wǎng)</b>組網(wǎng)結(jié)構(gòu)分析

    以太網(wǎng)交換機(jī)有何特點(diǎn)?用它怎樣組成虛擬局域網(wǎng)

    以太網(wǎng)交換機(jī)有何特點(diǎn)?用它怎樣組成虛擬局域網(wǎng)? 以太網(wǎng)交換機(jī)是一種用于組建局域網(wǎng)(LAN)的關(guān)鍵設(shè)備,它有許多特點(diǎn)和功能。為了讓文章更詳盡、
    的頭像 發(fā)表于 02-20 14:26 ?4417次閱讀

    以太網(wǎng)交換機(jī)怎么用 以太網(wǎng)交換機(jī)有什么用

    技術(shù)的網(wǎng)絡(luò)交換設(shè)備,它通過MAC地址(Media Access Control)將數(shù)據(jù)從一個接口轉(zhuǎn)發(fā)到另一個接口。以太網(wǎng)交換機(jī)使用存儲轉(zhuǎn)發(fā)或者直通轉(zhuǎn)發(fā)的方式進(jìn)行數(shù)據(jù)交換,保證數(shù)據(jù)能夠正確地到達(dá)目的地。存儲轉(zhuǎn)發(fā)是指交換機(jī)接收到整個數(shù)據(jù)
    的頭像 發(fā)表于 02-02 11:41 ?3025次閱讀

    科普科普以太網(wǎng)的定義、種類以及晶振在以太網(wǎng)上的應(yīng)用

    科普科普以太網(wǎng)的定義、種類以及晶振在以太網(wǎng)上的應(yīng)用? 以太網(wǎng)是一種用于局域網(wǎng)通信的傳輸技術(shù),它是一種在計算機(jī)網(wǎng)絡(luò)中常用的傳輸協(xié)議,用于將數(shù)據(jù)從一個節(jié)點(diǎn)傳輸?shù)搅硪粋€節(jié)點(diǎn)。本文將詳細(xì)介紹
    的頭像 發(fā)表于 01-24 16:11 ?1022次閱讀

    以太網(wǎng)交換技術(shù)講解

    當(dāng)前園區(qū)網(wǎng)大多使用交換機(jī)組網(wǎng),使用交換機(jī)組建的網(wǎng)絡(luò)管理非常靈活,可以根據(jù)同一部門或者具有相同管理要求的需要創(chuàng)建虛擬局域網(wǎng)(Vlan)。那么園區(qū)內(nèi)的交換機(jī)是如何進(jìn)行數(shù)據(jù)交換的?不同部門之間是如何進(jìn)行隔離的?今天這篇文章,將通過對
    的頭像 發(fā)表于 12-11 10:30 ?923次閱讀
    <b class='flag-5'>以太網(wǎng)</b>交換技術(shù)講解