中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

廈門做企業(yè)網(wǎng)站站長收錄

廈門做企業(yè)網(wǎng)站,站長收錄,臨汾做網(wǎng)站公司,濟(jì)南網(wǎng)站制作開通文章目錄 1 前言2 簡介2 .1 什么是ARP?2.2 ARP的優(yōu)點(diǎn)2.3 ARP工作原理2.4 ARP應(yīng)用場景 3 WIZnet以太網(wǎng)芯片4 ARP網(wǎng)絡(luò)設(shè)置示例概述以及使用4.1 流程圖4.2 準(zhǔn)備工作核心4.3 連接方式4.4 主要代碼概述4.5 結(jié)果演示 5 注意事項(xiàng)6 相關(guān)鏈接 1 前言 隨著網(wǎng)絡(luò)安全越來越受到重…

文章目錄

  • 1 前言
  • 2 簡介
    • 2 .1 什么是ARP?
    • 2.2 ARP的優(yōu)點(diǎn)
    • 2.3 ARP工作原理
    • 2.4 ARP應(yīng)用場景
  • 3 WIZnet以太網(wǎng)芯片
  • 4 ARP網(wǎng)絡(luò)設(shè)置示例概述以及使用
    • 4.1 流程圖
    • 4.2 準(zhǔn)備工作核心
    • 4.3 連接方式
    • 4.4 主要代碼概述
    • 4.5 結(jié)果演示
  • 5 注意事項(xiàng)
  • 6 相關(guān)鏈接

1 前言

??隨著網(wǎng)絡(luò)安全越來越受到重視,ARP攻擊防護(hù)軟件的市場需求也在不斷增加。ARP還提供了去中心化的應(yīng)用分發(fā)解決方案,包括代碼完全開源、訂單互相開放以及利潤共享等。這些特點(diǎn)使得ARP在未來的發(fā)展中具有廣闊的應(yīng)用前景。

??W5100S/W5500是一款集成全硬件 TCP/IP 協(xié)議棧的嵌入式以太網(wǎng)控制器,同時(shí)也是一顆工業(yè)級以太網(wǎng)控制芯片。本教程將介紹W5100S/W5500以太網(wǎng)DHCP應(yīng)用的基本原理、使用步驟、應(yīng)用實(shí)例以及注意事項(xiàng),幫助讀者更好地掌握這一技術(shù)。

2 簡介

2 .1 什么是ARP?

??ARP(Address Resolution Protocol)是地址解析協(xié)議,是根據(jù)IP地址獲取物理地址的一個(gè)TCP/IP協(xié)議。它用于將網(wǎng)絡(luò)中的IP地址解析為具體的硬件地址(MAC地址)。在計(jì)算機(jī)網(wǎng)絡(luò)中,當(dāng)一臺主機(jī)需要發(fā)送數(shù)據(jù)包給另一臺主機(jī)時(shí),它需要知道目標(biāo)主機(jī)的MAC地址。然而,在大多數(shù)情況下,主機(jī)只知道目標(biāo)主機(jī)的IP地址,因此需要使用ARP協(xié)議來將IP地址轉(zhuǎn)換為MAC地址。

2.2 ARP的優(yōu)點(diǎn)

??ARP的優(yōu)點(diǎn)主要包括:

  1. 可以將IP地址解析為以太網(wǎng)MAC地址,從而方便網(wǎng)絡(luò)設(shè)備之間的通信。
  2. ARP表項(xiàng)學(xué)習(xí)和ARP報(bào)文處理的限制、檢查等措施能夠保證網(wǎng)絡(luò)設(shè)備的安全性。
  3. ARP的簡單、易用性。

2.3 ARP工作原理

在這里插入圖片描述

ARP的工作原理可以概括為以下幾點(diǎn):

  1. 每臺主機(jī)都會在自己的ARP緩沖區(qū)中建立一個(gè)ARP列表(地址轉(zhuǎn)換表),以存儲IP地址與MAC地址的對應(yīng)關(guān)系。
  2. 當(dāng)源主機(jī)需要發(fā)送數(shù)據(jù)到目的主機(jī)時(shí),首先會檢查自己的ARP列表,看是否已存在目的主機(jī)的IP地址對應(yīng)的MAC地址。如果存在,就直接將數(shù)據(jù)包發(fā)送到該MAC地址;如果不存在,就會向本地網(wǎng)段發(fā)起一個(gè)ARP請求的廣播包,查詢目的主機(jī)對應(yīng)的MAC地址。
  3. ARP請求數(shù)據(jù)包中會包含源主機(jī)的IP地址、硬件地址,以及目的主機(jī)的IP地址。網(wǎng)絡(luò)中的所有主機(jī)收到這個(gè)ARP請求后,會檢查數(shù)據(jù)包中的目的IP地址是否與自己的IP地址一致。
  4. 如果源主機(jī)一直沒有收到ARP響應(yīng)數(shù)據(jù)包,表示ARP查詢失敗。如果源主機(jī)收到ARP響應(yīng)數(shù)據(jù)包,就會將獲得的目的主機(jī)的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息開始數(shù)據(jù)的傳輸。

2.4 ARP應(yīng)用場景

ARP協(xié)議在很多網(wǎng)絡(luò)場景中都有應(yīng)用,最常見的應(yīng)用場景包括:

  1. 網(wǎng)絡(luò)通信:在局域網(wǎng)中,ARP協(xié)議可以幫助計(jì)算機(jī)通過IP地址獲取其對應(yīng)的MAC地址,從而實(shí)現(xiàn)計(jì)算機(jī)之間的通信。
  2. 路由選擇:ARP協(xié)議可以幫助路由器找到目標(biāo)設(shè)備的MAC地址,這在路由選擇方面非常有用。
  3. 交換機(jī)學(xué)習(xí)MAC地址:交換機(jī)可以通過ARP協(xié)議學(xué)習(xí)到每臺計(jì)算機(jī)的MAC地址,并建立MAC地址表,從而可以直接轉(zhuǎn)發(fā)數(shù)據(jù)包,提高局域網(wǎng)的通信效率。

3 WIZnet以太網(wǎng)芯片

WIZnet 主流硬件協(xié)議棧以太網(wǎng)芯片參數(shù)對比

ModelEmbedded CoreHost I/FTX/RX BufferHW SocketNetwork Performance
W5100STCP/IPv4, MAC & PHY8bit BUS, SPI16KB4Max.25Mbps
W6100TCP/IPv4/IPv6, MAC & PHY8bit BUS, Fast SPI32KB8Max.25Mbps
W5500TCP/IPv4, MAC & PHYFast SPI32KB8Max 15Mbps
  1. W5100S/W6100 支持 8bit數(shù)據(jù)總線接口,網(wǎng)絡(luò)傳輸速度會優(yōu)于W5500。
  2. W6100 支持IPV6,與W5100S 硬件兼容,若已使用W5100S的用戶需要支持IPv6,可以Pin to Pin兼容。
  3. W5500 擁有比 W5100S更多的 Socket數(shù)量以及發(fā)送與接收緩存。

4 ARP網(wǎng)絡(luò)設(shè)置示例概述以及使用

4.1 流程圖

??程序的運(yùn)行框圖如下所示:

在這里插入圖片描述

4.2 準(zhǔn)備工作核心

軟件

  • Visual Studio Code
  • WIZnet UartTool

硬件

  • W5100SIO模塊 + RP2040 樹莓派Pico開發(fā)板 或者 WIZnet W5100S-EVB-Pico開發(fā)板
  • Micro USB 接口的數(shù)據(jù)線
  • TTL 轉(zhuǎn) USB
  • 網(wǎng)線

4.3 連接方式

  • 通過數(shù)據(jù)線連接PC的USB口(主要用于燒錄程序,也可以虛擬出串口使用)

  • 通過TTL串口轉(zhuǎn)USB,連接UART0 的默認(rèn)引腳:

    • RP2040 GPIO0(UART0 TX) <----> USB_TTL_RX
    • RP2040 GPIO1(UART0 RX) <----> USB_TTL_TX
  • 使用模塊連接RP2040 進(jìn)行接線時(shí)

    • RP2040 GPIO16 <----> W5100S MISO
    • RP2040 GPIO17 <----> W5100S CS
    • RP2040 GPIO18 <----> W5100S SCK
    • RP2040 GPIO19 <----> W5100S MOSI
    • RP2040 GPIO20 <----> W5100S RST
  • 通過PC和設(shè)備都通過網(wǎng)線連接路由器LAN口

4.4 主要代碼概述

??我們使用的是WIZnet官方的ioLibrary_Driver庫。該庫支持的協(xié)議豐富,操作簡單,芯片在硬件上集成了TCP/IP協(xié)議棧,該庫又封裝好了TCP/IP層之上的協(xié)議,我們只需簡單調(diào)用相應(yīng)函數(shù)即可完成協(xié)議的應(yīng)用。

第一步:arp_run.c文件中加入對應(yīng)的.h文件。

第二步:定義DHCP配置需要的宏。

第三步:網(wǎng)絡(luò)信息的配置,開啟DHCP模式。

第四步:編寫定時(shí)器回調(diào)處理函數(shù),用于 DHCP 1s滴答定時(shí)器處理函數(shù)。

第五步:主函數(shù)先是定義了一個(gè)定時(shí)器結(jié)構(gòu)體參數(shù)用來觸發(fā)定時(shí)器回吊函數(shù),對串口和SPI進(jìn)行初始化,然后寫入W5100S的網(wǎng)絡(luò)配置參數(shù),初始化DHCP后開始DHCP獲取IP,獲取到就打印獲取到的IP,獲取次數(shù)超過最大獲取次數(shù)時(shí)就使用靜態(tài)IP,然后主循環(huán)發(fā)起ARP請求,所需參數(shù)是socket的號、緩存buff、以及目標(biāo)IP。獲取到就答應(yīng)目標(biāo)IP的MAC地址。

#include <stdio.h>
#include "pico/stdlib.h"
#include "pico/binary_info.h"
#include "hardware/spi.h"#include "wizchip_conf.h"
#include "bsp_spi.h"
#include "dhcp.h"     // Use dhcp
#include "socket.h"   // Use socket
#include "arp.h"      // Use arp#define SOCKET_ID 0                      // Socket number
#define ETHERNET_BUF_MAX_SIZE (1024 * 2) // Send and receive cache size
#define DHCP_RETRY_COUNT 5               // DHCP retry times/*** @brief   Timer callback processing function, used for dhcp timing processing* @param   repeating :Timer structure* @return  bool*/
bool repeating_timer_callback(struct repeating_timer *t);/*** @brief   Initialization of chip network information* @param   conf_info :Static configuration information* @return  none*/
void network_init(wiz_NetInfo *conf_info);/* Network information to be configured. */
wiz_NetInfo net_info = {.mac = {0x00, 0x08, 0xdc, 0x1e, 0xed, 0x2e}, // Configured MAC address.ip = {192, 168, 1, 10},                     // Configured IP address.sn = {255, 255, 255, 0},                    // Configured subnet mask.gw = {192, 168, 1, 1},                      // Configured gateway.dns = {8, 8, 8, 8},                         // Configured domain address.dhcp = NETINFO_DHCP};                       // Configured dhcp model,NETINFO_DHCP:use dhcp; NETINFO_STATIC: use static ip.static uint8_t ethernet_buf[ETHERNET_BUF_MAX_SIZE] = {0,
};                                           // Send and receive cachestatic uint8_t destip[4]={192, 168, 1, 2};  // udp destination ip
static uint8_t dest_ip[4] = {192, 168, 1, 2}; // UDP IP address
static uint8_t breakout_flag = 0;         // Define the DHCP acquisition flagint main()
{struct repeating_timer timer; // Define the timer structurewiz_NetInfo get_info;/* MCU init */stdio_init_all();     // Initialize the main control peripheralwizchip_initialize(); // Initialize the chip interface/*dhcp init*/DHCP_init(SOCKET_ID, ethernet_buf);                                   // DHCP initializationadd_repeating_timer_ms(1000, repeating_timer_callback, NULL, &timer); // Add DHCP 1s Tick Timer handlerprintf("wiznet chip tcp server example.\r\n");network_init(&net_info);              // Configuring Network Informationprint_network_information(&get_info); // Read back the configuration information and print itwhile (true){do_arp(SOCKET_ID, ethernet_buf, dest_ip);   //run arp}
}void network_init(wiz_NetInfo *conf_info)
{int count = 0;uint8_t dhcp_retry = 0;if (conf_info->dhcp == NETINFO_DHCP){while (true){switch (DHCP_run()) // Do the DHCP client{case DHCP_IP_LEASED: // DHCP resolves the domain name successfully{if (breakout_flag == 0){printf("DHCP success\r\n");getIPfromDHCP((*conf_info).ip);getGWfromDHCP((*conf_info).gw);getSNfromDHCP((*conf_info).sn);getDNSfromDHCP((*conf_info).dns);wizchip_setnetinfo(conf_info); // Configuring Network Informationclose(SOCKET_ID);              // After dhcp close the socket, avoid errors in later usebreakout_flag = 1;}break;}case DHCP_FAILED:{printf(" DHCP failed \r\n");count++;if (count <= DHCP_RETRY_COUNT) // If the number of times is less than or equal to the maximum number of times, try again{printf("DHCP timeout occurred and retry %d \r\n", count);}else if (count > DHCP_RETRY_COUNT) // If the number of times is greater than DHCP fails{breakout_flag = 1; // if DHCP fail, use the staticDHCP_stop();       // Stop processing DHCP protocolconf_info->dhcp = NETINFO_STATIC;wizchip_setnetinfo(conf_info); // Configuring Network Informationbreak;}break;}}if (breakout_flag){printf("config succ\r\n");break;}}}else{wizchip_setnetinfo(conf_info); // Configuring Network Information}
}bool repeating_timer_callback(struct repeating_timer *t)
{DHCP_time_handler(); // DHCP 1s Tick Timer handlerreturn true;
}

4.5 結(jié)果演示

在這里插入圖片描述

1.打開WIZ UartTool,填入?yún)?shù):選擇串口對應(yīng)的com port,波特率115200,8位數(shù)據(jù)位,1位停止位,無校驗(yàn)位,無流控,填完參數(shù)后點(diǎn)擊open打開。

2.打開串口后,按下復(fù)位鍵可以看到串口打印DHCP獲取到的信息,其中IP為192.168.1.123。

3.然后開始ARP請求192.168.1.2獲取MAC,獲取到MAC地址之后表示成功。

5 注意事項(xiàng)

  • socket號必須選擇socket0,并使其工作在MACRAM模式下。
  • 如果想用WIZnet的W5500來實(shí)現(xiàn)本章的示例,我們只需修改兩個(gè)地方即可:

? (1)在library/ioLibrary_Driver/Ethernet/下找到wizchip_conf.h這個(gè)頭文件,將_WIZCHIP_ 宏定義修改為W5500。

? (2)在library下找到CMakeLists.txt文件,將COMPILE_SEL設(shè)置為ON即可,OFF為W5100S,ON為W5500。

6 相關(guān)鏈接

WIZnet官網(wǎng)

WIZnet官方庫鏈接

本章相關(guān)例程鏈接

想了解更多,評論留言哦!

http://www.risenshineclean.com/news/62412.html

相關(guān)文章:

  • 如何做網(wǎng)站代理站內(nèi)推廣有哪些方式
  • 可信的邢臺做網(wǎng)站搜索引擎優(yōu)化與推廣技術(shù)
  • 深圳優(yōu)化網(wǎng)站排名競價(jià)推廣賬戶競價(jià)托管費(fèi)用
  • 做兼職比較好的網(wǎng)站網(wǎng)站推廣優(yōu)化排名
  • 廈門市建設(shè)工程造價(jià)信息網(wǎng)如何對seo進(jìn)行優(yōu)化
  • 做PPT不錯(cuò)的網(wǎng)站有哪些網(wǎng)站優(yōu)化推廣平臺
  • 政府網(wǎng)站app建設(shè)百度權(quán)重優(yōu)化軟件
  • 玻璃鋼產(chǎn)品哪個(gè)網(wǎng)站做推廣好一鍵開發(fā)小程序
  • 為什么政府網(wǎng)站做的很爛圖片外鏈生成工具
  • 雁塔免費(fèi)做網(wǎng)站關(guān)鍵詞云圖
  • 網(wǎng)站定時(shí)數(shù)據(jù)切換怎么做的上海網(wǎng)站關(guān)鍵詞排名
  • php網(wǎng)站后臺模版重慶seo整站優(yōu)化方案范文
  • wordpress批量替換標(biāo)簽aso優(yōu)化榜單
  • 網(wǎng)站 優(yōu)化手機(jī)版網(wǎng)絡(luò)優(yōu)化大師手機(jī)版
  • 網(wǎng)站建設(shè)需要提供哪些信息優(yōu)化法治化營商環(huán)境
  • 浙江省住房城鄉(xiāng)建設(shè)廳官方網(wǎng)站推廣網(wǎng)站有效的免費(fèi)方法
  • 網(wǎng)站上的動圖都怎么做的中小企業(yè)網(wǎng)絡(luò)營銷現(xiàn)狀
  • 天津大學(xué)生專業(yè)做網(wǎng)站直鏈平臺
  • 網(wǎng)站建設(shè)小程序開發(fā)公司關(guān)鍵詞推廣軟件排名
  • 娛樂網(wǎng)站 建站軟件搜索引擎優(yōu)化的主要策略
  • 即刻搜索收錄網(wǎng)站口碑優(yōu)化
  • 做網(wǎng)站接私活價(jià)格怎么算seo發(fā)包排名軟件
  • 如何解析域名安徽搜索引擎優(yōu)化
  • 如何網(wǎng)上建設(shè)網(wǎng)站優(yōu)化設(shè)計(jì)全部答案
  • asp簡單購物網(wǎng)站源碼西安關(guān)鍵詞優(yōu)化排名
  • 企業(yè)網(wǎng)站建設(shè) 招標(biāo) 評分表百度官網(wǎng)認(rèn)證多少錢
  • 策劃書標(biāo)準(zhǔn)格式seo是什么職位縮寫
  • 做電影網(wǎng)站的圖片素材智能營銷方法
  • 武漢市做網(wǎng)站志鴻優(yōu)化設(shè)計(jì)答案網(wǎng)
  • c 語言能開發(fā)做網(wǎng)站嗎哪家網(wǎng)站推廣好