色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

通過運用FPGA器件實現IPV6數據包的拆分和重新封裝

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-05-13 08:03 ? 次閱讀

參加國家“863”重大專題項目“高速密碼芯片及驗證平臺系統”的過程中,遇到了將IPV6數據包的包頭和數據部分拆開,然后在數據部分送密碼芯片進行加/解密處理,最后再將處理后的數據部分與包頭重新封裝為數據包的課題。以往對IP包進行拆裝多利用軟件實現,但本項目涉及到配合高速密碼芯片(處理速度在2Gbit/s以上)工作的問題,顯然利用軟件實現IP包的拆裝在速度上達不到要求。為此,運用FPGA(型號為Xilinx公司的XC2VP20-FF86CGB0345)來實現IPV6數據包的拆裝。該FPGA內部邏輯框圖如圖1所示。

通過運用FPGA器件實現IPV6數據包的拆分和重新封裝

其工作流程為:2.5GHz的標準IPV6數據包串行差分信號通過ROCKETIO高速通道后轉換為16位125MHz并行信號,再經信號轉換模塊進一步轉換為66位62.5MHz并行信號后進入FIFO1緩存,然后對其輸出數據進行判斷,若是報頭則送入FIFO3緩存,若是數據部分則送入FIFO2緩存,最后將FIFO2數據送往密碼芯片進行處理;經密碼芯片處理的數據首先放入FIFO4進行緩存,然后控制FIFO3和FIFO4將一個數據包的頭和數據寫入FIFO5中,重新封裝成一個完整的數據包;重新封裝的IPV6數據包經過信號轉換模塊變為16位125MHz的并行信號,并通過ROCKETIO高速通道轉換為2.5GHz高速串行差分信號送出。

可以看出,經過以上流程,實現了一個數據包的拆分和重新封裝。

1 IPV6數據包的拆分

用FPGAP實現IPV6數據包的拆分,主要是通過控制幾個FIFO的數據輸入輸出來實現的。FPGA內部的拆分單元電路的物理連接如圖2所示,其中FIFO的作用是緩存IPV6數據包,FIFO2的作用是緩存IPV6數據包的數據部分,FIFO3的作用是緩存IPV6數據包的包頭。

圖中的三個FIFO都是由Xilinx公司的開發工具ISE6.1自帶的Core IP生成的。其中FIFO1和FIFO3是同步FIFO,工作時鐘為頻率62.5MHz,輸入輸出數據寬度都是66bit;FIFO2是異步FIFO,輸入時鐘頻率為62.5MHz,輸出時鐘頻率為50MHz(密碼芯片的工作時鐘頻率為50MHz),輸入輸出數據寬度都是64bit。

通過運用FPGA器件實現IPV6數據包的拆分和重新封裝

FIFO1的輸入數據為IPV6數據包??梢钥闯觯摂祿且圆⑿械?6bit信號傳輸的,即每一時鐘周期并行傳送66bit數據,其中每個周期的高兩位(即65位和64位)為數據包的頭尾標志,這是IPV6路由器內部根據實際處理需要加上的,“10”表示一個完整數據包的第一周期,“11”表示數據包的中間內容,“01”表示一個完整數據包的最后一個周期。因為IPV6數據包的包頭是固定長度的,為40字節(等于5×64bit),故數據的前五個周期為IPV6數據包的包頭,包頭后面跟的就是數據包的數據部分。

下面討論IPV6數據包的包頭和數據部分的拆分過程。

首先判斷FIFO1輸入端數據的頭尾標志DATA(65“64)與FIFO1的滿標志FULL1,如果DATA(65”64)=“10”且FULL1=“0”,即判斷到一個完整數據包的開始且FIFO1未滿,則使FIFO1的寫使能WR_EN1有效,寫入數據;如果DATA(65“64)=“01”,好判斷到一個完整數據包結束時,則使WR_EN1無效,這樣一個完整的數據包就緩存到了FIFO1時。

當判斷到FIFO1的空標示EMPTY1=“0”,即FIFO1非空間,令FIFO1的讀使能信號RD_EN1有效,將FIFO1中的數據讀出,直到EMPTY1=“1”,即FIFO1空為止。對讀出的數據設定一計數器COUNTER1進行計數,當DONT1不為0即FIFO1輸出端有信號時開始計數。當0<COUNTER1<=5時,令FIFO3的寫使能信號WR_EN3有效,將數據包的包頭寫FIFO3緩存;當COUNTER1>5時,令WR_EN3無效,WR_EN2有效,將IPV6數據包的數據部分送FIFO2緩存,準備送密碼芯片處理,直到頭尾標志DOUT1(65”64)=“01”時,將COUNTER1清零,在判斷到COUNTER1為0后,將WR_EN2置為無效。注意:FIFO1的輸出端口是66位,FIFO2的輸入端口是64位的,故在FIFO1向FIFO2寫數據的過程中,應將FIFO1的輸出端口信號DOUT(63“0)傳送給FIFO2的輸入端口DIN2(63”-)。當判斷到FIFO2非空間,將其讀使能信號RD_EN2置為有效,即可向密碼芯片送出數據。

通過運用FPGA器件實現IPV6數據包的拆分和重新封裝

2 IPV6數據包的重新封裝

用FPGA實現IPV6數據包的重新封裝,同時是通過控制幾個FIFO的數據輸入輸出來實現的,FPGA同部的重新封裝單元電路的物理連接如圖3所示,其FIFO4的作用是緩存密碼芯片送出的加解密處理后的數據;FIFO5的作用是緩存重新封裝后的IPV6數據;FIFO3與拆分單元共用,作用是緩用IPV6數據包頭。

圖中的FIFO4和FIFO5也都是由Xilinx公司的開發工具ISE6.1自帶的Core IP生成的,其中FIFO4是異步FIFO,輸入時鐘為50MHz,輸出時鐘為62.5MHz,輸入輸出數據寬度都是66bit;FIFO5是同步FIFO,工作時鐘為62.5MHz,輸入輸出數據寬度都是66bit。

密碼芯片對數據進行加/解密處理完畢之后,在送出處理數據前,首先向外部系統發送一64bit長的連接指令,指明處理數據所用的加解密算法和數據長度。例如,在對數據進行2DES加密處理的情況下,接收指令格式(16位制)如圖4所示,其中高56位為指令編碼,低8位為將要輸出的處理數據的長度。

通過運用FPGA器件實現IPV6數據包的拆分和重新封裝

因此,在接收處理數據時,首先判斷是否有接收指令,如果有接收搦令,則其接收指令中的數據長度放寄存器中進行寄存,并設定計數器COUNTER2開始計數。當0<COUNTER2<=數據長度時,則令FIFO4的寫使能WR_EN4有效;當COUNTER2為其它值時,WR_EN4無效。當0<COUNTER2<數據長度時,將“11”寫入DIN4(65“64),將64bit處理數據寫入DIN4(63”0);當COUNTER2=數據長度時,即接收到最后一周期的處理數據時,將“01”寫入DIN4(65“64),將64bit處理數據寫入DIN4(63”0),并將COUNTER2清零。這樣,密碼芯片處理后的數據就按格式要求緩存到FIFO4中了。

這時,包頭已經緩存到FIFO3中了,處理后的數據已經按格式要求緩存到FIFO4中了,最后要做的就是控制FIFO3和FIFO4,把一個完整的IPV6數據包寫入FIFO5中。具體做法是:設定計數器COUNTER3,當FIFO3和FIFO4都非空時,COUNTER3開始計數。當COUNTER3>0時,將FIFO5的寫使能信號WR_EN5置為有效;當COUNTER3=0時,WR_EN5置為無效。當0<COUNTER3<6時,令FIFO3的讀使能RD_EN3有效,FIFO3將輸出數據DOUT3(65“0)寫入FIFO5的輸入端DIN5(65”0);當COUNTER3>l=6時,令RD_EN3無效,RD_EN4有效,將FIFO4的輸出數據DOUT4(65“0)寫入FIFO5的輸入端DIN5(65”0),直到DOUT4(65“64)=“01”時,將COUNTER3清零,RD_EN4置為無效。這樣,一個完整的IPV6數據包就重封裝在FIFO5中了,當判斷到FIFO5非空間,就可以令RD_EN5有效,向外輸出處理后的完整的IPV6數據包了。

通過運用FPGA器件實現IPV6數據包的拆分和重新封裝

從上述討論可以看出,本課題在FPGA中采用了五個FIFO,并設定了三個計數器控制這五個FIFO的輸入輸出來實現對IPV6數據包的拆分和重新封裝。總的來看,整個FPGA設計思路巧妙,電路結構簡單,達到了預期的處理速度。圖5是整個測試系統在對1024字節的IPV6數據包進行拆包、送密碼芯片加密。重裝封裝處理后測試儀控制軟件界面上顯示的收包數據統計。從該圖可以看出,整個系統對IPV6數據包的處理速度達到了2.372Gbit/s,而這樣的處理速度用軟件是不可能達到的。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21796

    瀏覽量

    605239
  • 芯片
    +關注

    關注

    456

    文章

    51155

    瀏覽量

    426302
  • 計數器
    +關注

    關注

    32

    文章

    2261

    瀏覽量

    94877
收藏 人收藏

    評論

    相關推薦

    IPv6地址是什么,IPv6的意思

    由表的長度,提高了路由器轉發數據包的速度。   三,IPv6增加了增強的組播(Multicast)支持以及對流的支持(Flow Control),這使得網絡上的多媒體IPv6的長分布式結構圖[1
    發表于 01-25 16:39

    基于IPv6的無線傳感器網絡邊界路由器有什么優點?

    基于IPv6的無線傳感器網絡協議棧適配層的設計。通過數據包分片與重組機制以及報頭壓縮機制,協議棧適配層實現IPv6數據包在IEEE 802
    發表于 04-21 08:22

    怎樣利用FPGA實現IPV6數據包的拆裝?

    怎樣利用FPGA實現IPV6數據包的拆裝?IPV6數據包的包頭和
    發表于 04-28 06:05

    基于FPGAIPV6數據包的拆裝是如何實現的?

    基于FPGAIPV6數據包的拆裝是如何實現的?
    發表于 05-28 06:23

    IPv6不能外發數據包如何解決呢

    覆蓋,變為netif_null_output_ip6,結果,IPv6不能外發數據包。解決方案:針對IPv6,將對netif->output_ip
    發表于 09-05 14:52

    一種IPv6數據包安全傳輸的實現

    在分析了現有的加密體制的基礎上,結合IPv6 數據包的特點,設計了一種保護IPv6 數據包傳輸的安全方案,該方法可以實現網絡環境下的加密傳輸
    發表于 07-30 11:57 ?15次下載

    基于IPv6的防火墻的關鍵技術與實現

    IPv6 是新一代的IP 協議。它的提出解決了當今IP 地址匱乏的問題,并引入了加密和認證機制,實現了基于網絡層的身份認證,確保了數據包的完整性和機密性,因此,可以說IPv6
    發表于 08-19 10:38 ?11次下載

    基于FPGAIPV6數據包的拆裝

    介紹了一種運用FPGAIPV6數據包的包頭和數據部分分離并重新
    發表于 06-25 17:53 ?14次下載

    移動IPV6在改進數據包發送路徑模型下性能分析

    針對現有移動IPV6數據包發送代價較高的問題,對現有移動IPV6協議性能分析模型中數據包發送路徑進行了改進,將訪問路由發送至移動節點的數據包
    發表于 01-12 10:32 ?35次下載
    移動<b class='flag-5'>IPV6</b>在改進<b class='flag-5'>數據包</b>發送路徑模型下性能分析

    IPv6中的網絡隱蔽通道技術研究

    IPv6數據包中存在保留字段、轉發時被節點忽略的字段、定義不完整字段和非關鍵字段等可隱匿信息的字段.這表明IPv6的冗余字段太多,協議設計時語法規則限定過寬,從而得出IPv6
    發表于 02-23 15:16 ?30次下載
    <b class='flag-5'>IPv6</b>中的網絡隱蔽通道技術研究

    BGP/MPLS IPv6 VPN技術白皮書

    BGP/MPLS IPv6 VPN通過業務供應商IPv4骨干網向用戶提供基于IPv6網絡的VPN業務。在這類VPN架構中,BGP與MPLS起到非常重要的作用。BGP可發布
    發表于 02-27 15:52 ?34次下載
    BGP/MPLS <b class='flag-5'>IPv6</b> VPN技術白皮書

    基于FPGAIPV6數字的分離與封裝實現

    本文介紹了一種運用FPGAIPV數據包的包頭和數據部分分離并重新
    發表于 05-21 09:17 ?1987次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>IPV6</b>數字<b class='flag-5'>包</b>的分離與<b class='flag-5'>封裝</b>的<b class='flag-5'>實現</b>

    如何用隧道搭建ipv6

    隧道,是一種在IPV4升級到IPV6期間的過渡技術??梢詫?b class='flag-5'>IPV6數據包進行封裝,通過現有的
    發表于 12-26 14:58 ?2.9w次閱讀
    如何用隧道搭建<b class='flag-5'>ipv6</b>

    基于XC2VP20—FF896CGB0345 FPGA實現IPV6數據包的拆裝

    在參與國家“863”重大專題項目“高速密碼芯片及驗證平臺系統”的過程中,遇到了將IPV6數據包的包頭和數據部分拆開,然后把數據部分送密碼芯片進行加/解密處理,最后再將處理后的
    的頭像 發表于 06-14 17:02 ?1763次閱讀
    基于XC2VP20—FF896CGB0345 <b class='flag-5'>FPGA</b><b class='flag-5'>實現</b><b class='flag-5'>IPV6</b><b class='flag-5'>數據包</b>的拆裝

    什么是IPv6隧道技術

    隧道技術應運而生,它允許IPv6數據包IPv4網絡中傳輸,為IPv6的逐步部署提供了一種過渡方案。 一、IPv6隧道技術的基本原理
    的頭像 發表于 10-30 09:17 ?497次閱讀
    主站蜘蛛池模板: 成年免费三级视频 | 护士的下面又湿又紧10P | 麻花豆传媒剧国产免费mv观看 | 精品久久99麻豆蜜桃666 | xxx粗大长欧美 | 日本妈妈在线观看中文字幕 | 中文字幕午夜福利片 | 无码成人AAAAA毛片含羞草 | 床伴在线观看免费高清完整泰剧第四集 | 99热久久视频只有精品6国产 | 日本久久黄色 | 人人碰国产免费线观看 | 老师破女学生特级毛片 | 亚洲精品无码一区二区三区四虎 | 亚洲精品免费在线 | 九九久久国产精品免费热6 九九久久国产精品大片 | 国产精品搬运 | 国产高清美女一级毛片久久 | 快播欧美大片 | 花蝴蝶高清在线视频免费观看 | 国产精品伊人 | 欧美一级黄色影院 | 国产色精品久久人妻无码看片软件 | 97精品一区二区视频在线观看 | 国产99在线视频 | 夜夜躁日日躁狠狠 | 美女被撕开胸罩狂揉大乳 | 含羞草完整视频在线播放免费 | 无码区国产区在线播放 | 女教师跟黑人男朋友激情过后 | 中文字幕日本一区 | 亚洲va在线va天堂XX xX | 老湿机一区午夜精品免费福利 | 欧美性xxx18一20 | 国产精品亚洲精品日韩电影 | 曰本少妇高潮久久久久久 | 艳鉧动漫1~6全集观看在线 | 伊人网中文字幕 | 大香伊蕉在人线国产最新 | 无码欧美XXXXX在线观看裸 | 尤物久久99国产综合精品 |