日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

LwIP之ARP协议

發布時間:2025/3/15 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LwIP之ARP协议 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在網絡層,源主機與目的主機之間是通過IP地址來唯一標識的。但是以太網是通過一個48bit的MAC地址來標識不同的網絡通信設備的。那么IP數據包最終需要在物理網絡上進行發送,就必須將IP地址轉換為目標主機對應的MAC地址。

ARP協議被用來解決上述問題。為了實現在IP地址和MAC之間的轉換,ARP協議引入了ARP緩存表的概念。ARP緩存表中存放了最近獲得周圍其他主機IP地址到MAC地址之間的映射記錄。

?

系統初始化時,ARP緩存表是空的(靜態綁定除外)。此時(調用netif_set_up時),會向外界廣播一個自己的地址信息,稱為無回報ARP請求。其他主機接收到ARP數據包之后,會更新ARP緩存表。

當主機A要與主機B通信時:

? ? 第1步:主機A在ARP緩存中,檢查與主機B的IP地址相匹配的MAC地址。

? ? 第2步:如果主機A在ARP緩存中沒有找到映射,它將在本地網絡上廣播ARP請求幀。本地網絡上的每臺主機都接收到ARP請求并且檢查是否與自己的IP地址匹配。如果發現請求的IP地址與自己的IP地址不匹配,它將丟棄ARP請求。

? ? 第3步:主機B確定ARP請求中的IP地址與自己的IP地址匹配,則將主機A的IP地址和MAC地址映射添加到本地ARP緩存中。

? ? 第4步:主機B將包含其MAC地址的ARP回復消息直接發送回主機A。

? ? 第5步:當主機A收到從主機B發來的ARP回復消息時,會用主機B的IP和MAC地址映射更新ARP緩存。主機B的MAC地址確定后,主機A就能通過IP地址和主機B通信了。

? ? 注:ARP緩存是有生存期的,一般為20分鐘。生存期結束后,將再次重復上面的過程。


IP數據包從源主機到達最終目的主機的過程中,該IP數據包可能會經過中間物理網絡中多種網絡設備的轉發,在每一次轉發過程中都會涉及到地址轉換的問題。在非最后一步轉發中,當轉發主機和目的主機不在同一個局域網中時,即便知道目的主機的MAC地址,兩者也不能直接通信,必須經過路由轉發才可以。所以此時,發送主機通過ARP協議獲得的將不是目的主機的真實MAC地址,而是一臺可以通往局域網外的路由器的MAC地址。在數據轉發的最后一步,分組必將經過最后一條物理路線到達它的目的站,發送主機這時將目的主機IP地址映射為目標MAC地址。
?

?

?


ARP報文格式

? ? ? ? ? ? ? ? ?

/* 以太網頭部 */ struct eth_hdr {PACK_STRUCT_FIELD(struct eth_addr dest); //目的MAC地址PACK_STRUCT_FIELD(struct eth_addr src); //源MAC地址PACK_STRUCT_FIELD(u16_t type); //幀類型(IP:0x0800、ARP:0x0806) } PACK_STRUCT_STRUCT; /* ARP頭部 */ struct etharp_hdr {PACK_STRUCT_FIELD(u16_t hwtype); //硬件地址類型(以太網:1)PACK_STRUCT_FIELD(u16_t proto); //映射協議地址類型(IP:0x0800)PACK_STRUCT_FIELD(u16_t _hwlen_protolen); //硬件地址長度+協議地址長度PACK_STRUCT_FIELD(u16_t opcode); //操作字段(ARP請求:1、ARP應答:2)PACK_STRUCT_FIELD(struct eth_addr shwaddr); //源MAC地址PACK_STRUCT_FIELD(struct ip_addr2 sipaddr); //源IP地址PACK_STRUCT_FIELD(struct eth_addr dhwaddr); //目的MAC地址PACK_STRUCT_FIELD(struct ip_addr2 dipaddr); //目的IP地址 } PACK_STRUCT_STRUCT; /* 幀類型 */ #define ETHTYPE_ARP 0x0806 //ARP #define ETHTYPE_IP 0x0800 //IP #define ETHTYPE_VLAN 0x8100 //VLAN #define ETHTYPE_PPPOEDISC 0x8863 //PPPOEDISC #define ETHTYPE_PPPOE 0x8864 //PPPOE /* ARP數據類型(操作字段OP) */ #define ARP_REQUEST 1 //ARP請求 #define ARP_REPLY 2 //ARP應答

?

?

?

?

前面說到網絡接口啟動的時候,要向外界發送一個無回報ARP請求,用來通知網絡中的其它主機。在分析網絡接口管理的時候遇到過,代碼如下:

/* 使能網絡接口 */ void netif_set_up(struct netif *netif) {/* 設置網絡接口使能標志位 */if (!(netif->flags & NETIF_FLAG_UP )) {netif->flags |= NETIF_FLAG_UP;/* 廣播無回報ARP */if (netif->flags & NETIF_FLAG_ETHARP) {etharp_gratuitous(netif);}} }

下面從ARP發送開始,一步一步分析無回報ARP請求是如何發送的

/* 組建并發送ARP(請求/響應)數據包 */ static err_t etharp_raw(struct netif *netif, const struct eth_addr *ethsrc_addr, const struct eth_addr *ethdst_addr, const struct eth_addr *hwsrc_addr, const struct ip_addr *ipsrc_addr, const struct eth_addr *hwdst_addr, const struct ip_addr *ipdst_addr, const u16_t opcode) {struct pbuf *p;err_t result = ERR_OK;u8_t k;struct eth_hdr *ethhdr;struct etharp_hdr *hdr;/* 為ARP請求申請內存空間 */p = pbuf_alloc(PBUF_RAW, SIZEOF_ETHARP_PACKET, PBUF_RAM);if (p == NULL) {return ERR_MEM;}/* 以太網頭部指針 */ethhdr = p->payload;/* ARP頭部指針 */hdr = (struct etharp_hdr *)((u8_t*)ethhdr + SIZEOF_ETH_HDR);/* 操作字段 */hdr->opcode = htons(opcode);/* 源MAC地址和目的MAC地址 */k = ETHARP_HWADDR_LEN;while(k > 0) {k--;hdr->shwaddr.addr[k] = hwsrc_addr->addr[k];hdr->dhwaddr.addr[k] = hwdst_addr->addr[k];ethhdr->dest.addr[k] = ethdst_addr->addr[k];ethhdr->src.addr[k] = ethsrc_addr->addr[k];}/* 源IP地址、目的IP地址 */hdr->sipaddr = *(struct ip_addr2 *)ipsrc_addr;hdr->dipaddr = *(struct ip_addr2 *)ipdst_addr;/* 硬件地址類型、協議地址類型 */hdr->hwtype = htons(HWTYPE_ETHERNET);hdr->proto = htons(ETHTYPE_IP);/* 硬件地址長度、協議地址長度 */hdr->_hwlen_protolen = htons((ETHARP_HWADDR_LEN << 8) | sizeof(struct ip_addr));/* 幀類型 */ethhdr->type = htons(ETHTYPE_ARP);/* 發送數據包 */result = netif->linkoutput(netif, p);/* 釋放數據包空間 */pbuf_free(p);p = NULL;return result; }

ARP請求,是通過調用?etharp_raw函數實現的。ARP頭部中目的MAC地址全0,表示MAC地址待填充。

/* 廣播MAC地址 */ const struct eth_addr ethbroadcast = {{0xff,0xff,0xff,0xff,0xff,0xff}}; /* 待填充MAC地址 */ const struct eth_addr ethzero = {{0,0,0,0,0,0}};/* 廣播一個ARP請求 */ err_t etharp_request(struct netif *netif, struct ip_addr *ipaddr) {return etharp_raw(netif, (struct eth_addr *)netif->hwaddr, &ethbroadcast, (struct eth_addr *)netif->hwaddr, &netif->ip_addr, &ethzero, ipaddr, ARP_REQUEST); }

無回報ARP請求的原理是:將自身IP作為目的IP發送出去,這樣就不會有任何主機響應,但是其它主機接收到后會更新ARP緩存表

/* 廣播一個無回報ARP請求 */ #define etharp_gratuitous(netif) etharp_request((netif), &(netif)->ip_addr)

?

?

?

?

前面說到當主機發送數據包時,需要先查找ARP緩存表來獲取目的主機MAC地址。下面來具體分析ARP緩存表的數據結構體,以及ARP緩存表的建立、查找和刪除。

ARP表項數據結構

/* ARP表項 */ struct etharp_entry {struct etharp_q_entry *q; //待發送數據包緩存鏈表struct ip_addr ipaddr; //IP地址struct eth_addr ethaddr; //MAC地址enum etharp_state state; //ARP表項狀態u8_t ctime; //時間信息struct netif *netif; //網絡接口指針 }; /* ARP緩存表 */ static struct etharp_entry arp_table[ARP_TABLE_SIZE];

ARP緩存表項狀態

/* ARP表項狀態 */ enum etharp_state {ETHARP_STATE_EMPTY = 0, //空ETHARP_STATE_PENDING, //掛起,已發送ARP請求還未得到響應ETHARP_STATE_STABLE //已建立 };

發送IP數據包之前,需要查ARP緩存表,如果在ARP緩存表中沒有找到相應表項。則先發送ARP請求,并將數據包暫時緩存起來,得到ARP響應之后再發送。ARP提供了etharp_q_entry 結構體,用于管理這些數據包。

/* 未建立ARP表項之前,待發送IP數據包管理結構體 */ struct etharp_q_entry {struct etharp_q_entry *next;struct pbuf *p; };

ARP緩存表項是有時限的,超過時限這將該ARP緩存表項刪除。一般情況下,已經建立的表項為20分鐘,處于掛起狀態的表項為10秒鐘。通過一個定時器回調函數etharp_tmr來進行計時處理。

/* 已建立表項壽命 (240 * 5) seconds = 20 minutes */ #define ARP_MAXAGE 240 /* 掛起表項壽命 (2 * 5) seconds = 10 seconds */ #define ARP_MAXPENDING 2/* ARP定時器回調函數(周期5秒) */ void etharp_tmr(void) {u8_t i;/* 遍歷ARP緩存表 */for (i = 0; i < ARP_TABLE_SIZE; ++i) {/* ARP緩存表時間加一 */arp_table[i].ctime++;/* 已建立表項和掛起表項超時 */if (((arp_table[i].state == ETHARP_STATE_STABLE) && (arp_table[i].ctime >= ARP_MAXAGE)) ||((arp_table[i].state == ETHARP_STATE_PENDING) && (arp_table[i].ctime >= ARP_MAXPENDING))) {/* ARP表項待發送數據包緩存鏈表不為空 */if (arp_table[i].q != NULL) {/* 釋放待發送數據包緩存鏈表 */free_etharp_q(arp_table[i].q);arp_table[i].q = NULL;}/* 設置ARP表項狀態為空 */ arp_table[i].state = ETHARP_STATE_EMPTY;}} }/* 釋放ARP表項待發送數據包緩存鏈表 */ static void free_etharp_q(struct etharp_q_entry *q) {struct etharp_q_entry *r;/* 遍歷待發送數據包緩存鏈表 */while (q) {r = q;q = q->next;/* 釋放待發送數據包 */pbuf_free(r->p);/* 釋放待發送數據包管理結構體 */memp_free(MEMP_ARP_QUEUE, r);} }

ARP緩存表的建立和查找都是基于find_entry實現的。下面先從find_entry開始,一步一步分析

/* 匹配ARP緩存表時不允許回收表項 */ #define ETHARP_TRY_HARD 1 /* 匹配ARP緩存表時不建立新表項 */ #define ETHARP_FIND_ONLY 2/* 通過IP地址查找ARP緩存表,如果不存在則按一定規則建立新表項 */ /* 建立新表項的規則:1.在空表項處 2.刪除已建立的最老表項 3.刪除掛起且沒有緩存待發送數據包的最老表項 4.刪除掛起且有緩存待發送數據包的最老表項 */ static s8_t find_entry(struct ip_addr *ipaddr, u8_t flags) {s8_t old_pending = ARP_TABLE_SIZE, old_stable = ARP_TABLE_SIZE;s8_t empty = ARP_TABLE_SIZE;u8_t i = 0, age_pending = 0, age_stable = 0;s8_t old_queue = ARP_TABLE_SIZE;u8_t age_queue = 0;if (ipaddr) {/* 最新一次訪問的表項為已建立態 */if (arp_table[etharp_cached_entry].state == ETHARP_STATE_STABLE) {/* IP地址和表項IP地址匹配 */if (ip_addr_cmp(ipaddr, &arp_table[etharp_cached_entry].ipaddr)) {return etharp_cached_entry;}}}/* 遍歷所有ARP表項,匹配到表項直接返回 */for (i = 0; i < ARP_TABLE_SIZE; ++i) {/* 記錄第一個空表項下標 */if ((empty == ARP_TABLE_SIZE) && (arp_table[i].state == ETHARP_STATE_EMPTY)) {empty = i;}/* 該表項為掛起態 */else if (arp_table[i].state == ETHARP_STATE_PENDING) {/* IP地址和表項IP地址匹配 */if (ipaddr && ip_addr_cmp(ipaddr, &arp_table[i].ipaddr)) {/* 將當前表項記錄為最新一次訪問表項 */etharp_cached_entry = i;return i;} /* 該表項待發送數據包緩沖區不為空 */else if (arp_table[i].q != NULL) {/* 記錄最老的掛起態且待發送數據包緩沖區不為空的表項下標 */if (arp_table[i].ctime >= age_queue) {old_queue = i;age_queue = arp_table[i].ctime;}}/* 該表象待發送數據包緩沖區為空 */else {/* 記錄最老的掛起態且待發送數據包緩沖區為空的表項下標 */if (arp_table[i].ctime >= age_pending) {old_pending = i;age_pending = arp_table[i].ctime;}} }/* 該表項為已建立態 */else if (arp_table[i].state == ETHARP_STATE_STABLE) {/* IP地址和表項IP地址匹配 */if (ipaddr && ip_addr_cmp(ipaddr, &arp_table[i].ipaddr)) {/* 將當前表項記錄為最新一次訪問表項 */etharp_cached_entry = i;return i;} /* 記錄最老的已建立態表項下標 */else if (arp_table[i].ctime >= age_stable) {old_stable = i;age_stable = arp_table[i].ctime;}}}/* 該IP沒有匹配到ARP表項,且沒有空表項,且不允許刪除老表項。或者不允許建立新表項 */if (((empty == ARP_TABLE_SIZE) && ((flags & ETHARP_TRY_HARD) == 0)) || ((flags & ETHARP_FIND_ONLY) != 0)) {return (s8_t)ERR_MEM;}/* 存在空表項 */if (empty < ARP_TABLE_SIZE) {i = empty;}/* 存在已建立態的表項 */else if (old_stable < ARP_TABLE_SIZE) {i = old_stable;} /* 存在掛起態且待發送數據包緩沖區為空的表項 */else if (old_pending < ARP_TABLE_SIZE) {i = old_pending;} /* 存在掛起態且待發送數據包緩沖區不為空的表項 */else if (old_queue < ARP_TABLE_SIZE) {i = old_queue;/* 釋放待發送數據包緩存鏈表 */free_etharp_q(arp_table[i].q);arp_table[i].q = NULL;} /* 不存在可以刪除的表項 */else {return (s8_t)ERR_MEM;}/* 刪除該表項 */arp_table[i].state = ETHARP_STATE_EMPTY;/* 設置為新的表項 */if (ipaddr != NULL) {ip_addr_set(&arp_table[i].ipaddr, ipaddr);}arp_table[i].ctime = 0;etharp_cached_entry = i; /* 將當前表項記錄為最新一次訪問表項 */return (err_t)i; }

更新(不存在則建立)ARP緩存表。當ARP緩存表從掛起轉為建立的時候,需要發送原先緩存的待發送數據包。

/* 更新(不存在則建立)ARP緩存表 */ static err_t update_arp_entry(struct netif *netif, struct ip_addr *ipaddr, struct eth_addr *ethaddr, u8_t flags) {s8_t i;u8_t k;/* 地址不能為廣播地址、組播地址、不確定地址 */if (ip_addr_isany(ipaddr) || ip_addr_isbroadcast(ipaddr, netif) || ip_addr_ismulticast(ipaddr)) {return ERR_ARG;}/* 通過IP地址查找ARP緩存表,如果不存在則按一定規則建立新表項 */i = find_entry(ipaddr, flags);/* 未找到且建立失敗 */if (i < 0)return (err_t)i;/* 設置該表項為已建立態 */arp_table[i].state = ETHARP_STATE_STABLE;/* 綁定網絡接口 */arp_table[i].netif = netif;/* 綁定MAC地址 */k = ETHARP_HWADDR_LEN;while (k > 0) {k--;arp_table[i].ethaddr.addr[k] = ethaddr->addr[k];}/* 時間信息置0 */arp_table[i].ctime = 0;/* 遍歷數據包緩沖區鏈表 */while (arp_table[i].q != NULL) {struct pbuf *p;struct etharp_q_entry *q = arp_table[i].q;arp_table[i].q = q->next;p = q->p;/* 釋放待發送數據包管理結構體 */memp_free(MEMP_ARP_QUEUE, q);/* 發送數據 */etharp_send_ip(netif, p, (struct eth_addr*)(netif->hwaddr), ethaddr);/* 釋放待發送數據包 */pbuf_free(p);}return ERR_OK; }

查找ARP緩存表,也是基于find_entry實現。

/* 查找ARP緩存表,如果不存在不建立新表項 */ s8_t etharp_find_addr(struct netif *netif, struct ip_addr *ipaddr, struct eth_addr **eth_ret, struct ip_addr **ip_ret) {s8_t i;/* 查找ARP緩存表,如果不存在不建立新表項 */i = find_entry(ipaddr, ETHARP_FIND_ONLY);/* 如果該表項為已建立態 */if((i >= 0) && arp_table[i].state == ETHARP_STATE_STABLE) {/* 返回IP地址和MAC地址 */*eth_ret = &arp_table[i].ethaddr;*ip_ret = &arp_table[i].ipaddr;/* 返回表項下標 */return i;}return -1; }

?

?

?

?

分析完ARP緩存表的查找之后,繼續來分析IP數據包是怎么借用功能將數據發送出去的

/* 經過ARP功能填充頭部,發送IP數據包 */ err_t etharp_output(struct netif *netif, struct pbuf *q, struct ip_addr *ipaddr) {struct eth_addr *dest, mcastaddr;/* 向前調整出以太網頭部空間 */if (pbuf_header(q, sizeof(struct eth_hdr)) != 0) {return ERR_BUF;}/* 目的MAC地址置NULL */dest = NULL;/* IP地址是廣播地址 */if (ip_addr_isbroadcast(ipaddr, netif)) {/* 設置目的MAC地址為廣播MAC地址 */dest = (struct eth_addr *)&ethbroadcast;} /* IP地址是組播地址 */else if (ip_addr_ismulticast(ipaddr)) {/* 設置目的MAC地址為組播MAC地址 */mcastaddr.addr[0] = 0x01;mcastaddr.addr[1] = 0x00;mcastaddr.addr[2] = 0x5e;mcastaddr.addr[3] = ip4_addr2(ipaddr) & 0x7f;mcastaddr.addr[4] = ip4_addr3(ipaddr);mcastaddr.addr[5] = ip4_addr4(ipaddr);dest = &mcastaddr;} /* IP地址為單播IP地址 */else {/* IP地址不在當前網段 */if (!ip_addr_netcmp(ipaddr, &(netif->ip_addr), &(netif->netmask))) {/* 網絡接口網關地址不為0 */if (netif->gw.addr != 0) {/* 將目的IP地址改為網關IP地址 */ipaddr = &(netif->gw);} /* 網關地址為0,返回錯誤 */else {return ERR_RTE;}}/* 查找ARP緩存表,并發送IP數據包 */return etharp_query(netif, ipaddr, q);}/* 廣播或組播(已知目的MAC地址),發送IP數據包 */return etharp_send_ip(netif, q, (struct eth_addr*)(netif->hwaddr), dest); }/* 已知目的MAC地址(查ARP表或MAC地址可推算(廣播/組播)),發送IP數據包 */ static err_t etharp_send_ip(struct netif *netif, struct pbuf *p, struct eth_addr *src, struct eth_addr *dst) {struct eth_hdr *ethhdr = p->payload;u8_t k;/* 設置以太網頭部源MAC地址和目的MAC地址 */k = ETHARP_HWADDR_LEN;while(k > 0) {k--;ethhdr->dest.addr[k] = dst->addr[k];ethhdr->src.addr[k] = src->addr[k];}/* 設置硬件地址類型 */ethhdr->type = htons(ETHTYPE_IP);/* 發送數據包 */return netif->linkoutput(netif, p); }

?

?

?

?

同樣分析完ARP緩存表的更新之后,繼續來分析收到數據包(IP數據包或ARP數據包)后的更新步驟

/* 以太網數據包輸入處理 */ err_t ethernet_input(struct pbuf *p, struct netif *netif) {struct eth_hdr* ethhdr;u16_t type;/* 以太網頭部指針 */ethhdr = p->payload;/* 幀類型 */type = htons(ethhdr->type);/* 判斷數據包幀類型 */switch (type) {/* IP數據包 */case ETHTYPE_IP:/* 收到IP數據包,更新ARP緩存表 */etharp_ip_input(netif, p);/* 向后調整剝掉以太網頭部 */if(pbuf_header(p, -(s16_t)SIZEOF_ETH_HDR)) {pbuf_free(p);p = NULL;} else {/* IP數據包輸入處理 */ip_input(p, netif);}break;/* ARP數據包 */case ETHTYPE_ARP:/* ARP數據包輸入處理 */etharp_arp_input(netif, (struct eth_addr*)(netif->hwaddr), p);break;default:pbuf_free(p);p = NULL;break;}return ERR_OK; } /* 收到IP數據包,更新ARP緩存表 */ void etharp_ip_input(struct netif *netif, struct pbuf *p) {struct eth_hdr *ethhdr;struct ip_hdr *iphdr;/* 以太網頭部指針 */ethhdr = p->payload;/* IP頭部指針 */iphdr = (struct ip_hdr *)((u8_t*)ethhdr + SIZEOF_ETH_HDR);/* 該IP不在當前網段,直接返回 */if (!ip_addr_netcmp(&(iphdr->src), &(netif->ip_addr), &(netif->netmask))) {return;}/* 更新ARP緩存表 */update_arp_entry(netif, &(iphdr->src), &(ethhdr->src), 0); } /* ARP數據包輸入處理 */ void etharp_arp_input(struct netif *netif, struct eth_addr *ethaddr, struct pbuf *p) {struct etharp_hdr *hdr;struct eth_hdr *ethhdr;struct ip_addr sipaddr, dipaddr;u8_t i;u8_t for_us;/* ARP數據包長度過短 */if (p->len < SIZEOF_ETHARP_PACKET) {/* 釋放該數據包 */pbuf_free(p);return;}/* 以太網頭部 */ethhdr = p->payload;/* ARP頭部 */hdr = (struct etharp_hdr *)((u8_t*)ethhdr + SIZEOF_ETH_HDR);/* 不符合ARP數據包格式 */if ((hdr->hwtype != htons(HWTYPE_ETHERNET)) || (hdr->_hwlen_protolen != htons((ETHARP_HWADDR_LEN << 8) | sizeof(struct ip_addr))) || (hdr->proto != htons(ETHTYPE_IP)) || (ethhdr->type != htons(ETHTYPE_ARP))) {/* 釋放該數據包 */pbuf_free(p);return;}/* 取出源IP地址和目的IP地址 */SMEMCPY(&sipaddr, &hdr->sipaddr, sizeof(sipaddr));SMEMCPY(&dipaddr, &hdr->dipaddr, sizeof(dipaddr));/* 該網絡接口沒有配置IP地址 */if (netif->ip_addr.addr == 0) {for_us = 0;} /* 判斷該ARP數據是不是發給自己的 */else {for_us = ip_addr_cmp(&dipaddr, &(netif->ip_addr));}/* 該ARP數據是發給自己的 */if (for_us) {/* 更新ARP緩存表。如果不存在則建立新表項,但是如果表已滿,則建立失敗 */update_arp_entry(netif, &sipaddr, &(hdr->shwaddr), ETHARP_TRY_HARD);} else {/* 更新ARP緩存表。如果不存在則建立新表項,如果表已滿,則按一定規則回收舊表項再建立新表項 */update_arp_entry(netif, &sipaddr, &(hdr->shwaddr), 0);}/* 判斷數據包是ARP請求還是ARP響應 */switch (htons(hdr->opcode)) {/* ARP請求 */case ARP_REQUEST:/* 該ARP數據是發給自己的 */if (for_us) {/* 構建ARP響應包 */hdr->opcode = htons(ARP_REPLY);/* 目的IP */hdr->dipaddr = hdr->sipaddr;/* 源IP */SMEMCPY(&hdr->sipaddr, &netif->ip_addr, sizeof(hdr->sipaddr));/* 源MAC地址、目的MAC地址 */i = ETHARP_HWADDR_LEN;while(i > 0) {i--;hdr->dhwaddr.addr[i] = hdr->shwaddr.addr[i];ethhdr->dest.addr[i] = hdr->shwaddr.addr[i];hdr->shwaddr.addr[i] = ethaddr->addr[i];ethhdr->src.addr[i] = ethaddr->addr[i];}/* 發送ARP響應 */netif->linkoutput(netif, p);} /* 該網絡接口沒有配置IP */else if (netif->ip_addr.addr == 0) {} /* 不是發給自己的 */else {}break;/* ARP響應 */case ARP_REPLY:break;default:break;}/* 釋放ARP數據包 */pbuf_free(p); }

?

?

?

?

總結一下ARP的處理流程

總結

以上是生活随笔為你收集整理的LwIP之ARP协议的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

999日韩| 天天玩天天操天天射 | 色综合久久久久综合体桃花网 | 天天色天天操综合 | 97人人模人人爽人人喊网 | av在线之家电影网站 | 国产精品免费麻豆入口 | 日韩免费在线观看网站 | 午夜av在线免费 | 国产成人av综合色 | 久青草视频在线观看 | 亚洲欧美日韩精品一区二区 | 欧美 亚洲 另类 激情 另类 | 永久免费毛片在线观看 | 国产不卡免费av | 久久精品国产亚洲精品2020 | av免费线看 | 久草在线91 | 92中文资源在线 | 国产精品久久嫩一区二区免费 | 国产精品99久久免费黑人 | 一级特黄av | 欧美日韩一级视频 | 人人爽人人做 | 午夜少妇 | av福利在线看 | 毛片永久新网址首页 | 亚洲综合视频在线播放 | 久久久91精品国产一区二区精品 | 91九色国产蝌蚪 | 久久成人麻豆午夜电影 | 91丨九色丨国产丨porny精品 | 99在线免费视频 | 激情网色| 久久人人爽人人爽人人片av免费 | 伊人看片| 国产精品视频99 | 亚洲激情综合 | 蜜臀av.com| 日韩在线国产精品 | 免费国产黄线在线观看视频 | 免费视频你懂的 | 久久综合九色综合97_ 久久久 | 色综合天天天天做夜夜夜夜做 | 黄色在线观看污 | 精品国产一区二区三区av性色 | 国产福利a| 精品国产精品久久 | 欧美一级性 | 日韩在线免费视频观看 | 国产黄色在线 | 日韩久久影院 | 日韩精品久久久 | 国产精品九九九九九 | 亚洲精品在线免费播放 | 亚洲免费在线看 | 婷婷丁香激情网 | 国产高清99| 欧美精品小视频 | 国产精品99在线播放 | 国模精品在线 | 国产精品视频在线观看 | 成人在线免费看视频 | 五月天激情婷婷 | 久久av免费观看 | 亚洲成人精品久久 | 中文字幕影片免费在线观看 | 激情丁香综合五月 | 欧美91精品久久久久国产性生爱 | 国产精品网站 | 天干啦夜天干天干在线线 | 日韩 精品 一区 国产 麻豆 | 国产 av 日韩 | 久久久久久久久久影院 | av色综合网| 看片一区二区三区 | 99久久精品免费一区 | avsex| 日日爽天天操 | 精品一区二区免费 | 久草视频一区 | 婷婷丁香av | 另类老妇性bbwbbw高清 | 综合亚洲视频 | 国产一区二区三区免费在线观看 | 亚洲国产精品一区二区久久,亚洲午夜 | 日韩二区在线观看 | 成人黄色大片在线观看 | 日日噜噜噜噜夜夜爽亚洲精品 | 丁香综合五月 | 亚洲一区天堂 | 成年人视频在线免费播放 | 日韩高清一区二区 | 激情av网| 欧美日本不卡 | 四虎国产永久在线精品 | 中文字幕在线观看日本 | 欧美污污视频 | 日韩成人邪恶影片 | 免费看久久| 88av网站| 黄色a在线观看 | 日韩三级在线 | 婷婷狠狠操 | 国产日韩欧美中文 | 国产三级在线播放 | 国产在线观看a | av一区二区三区在线观看 | 亚州av成人 | 国产精品久久婷婷六月丁香 | 久草影视在线 | 亚洲精品乱码久久久久v最新版 | 91精品啪在线观看国产线免费 | 欧美精品久久久久久 | 91成人在线视频观看 | 中文字幕久久精品亚洲乱码 | 精品福利国产 | 视频在线91 | 涩涩网站在线观看 | 伊人久久一区 | 国产成人精品一区在线 | 久久精品99国产精品 | 天天综合区| 日本视频精品 | 午夜免费在线观看 | 中文字幕中文字幕中文字幕 | 欧美性黑人 | 亚洲精品国产精品久久99 | 99爱国产精品| 欧美做受高潮电影o | 久综合网 | 黄色av影视 | 最近2019中文免费高清视频观看www99 | 免费在线观看毛片网站 | 国产精品一区二区免费看 | 91精品国产高清自在线观看 | 日韩大片在线免费观看 | 日韩丝袜在线 | www.夜夜| 最新日韩在线观看视频 | 日p在线观看 | 四虎国产精品免费观看视频优播 | 日韩精品视频在线免费观看 | 97电影在线看视频 | 免费能看的黄色片 | 久久xxxx| 成人av久久 | 91精品在线观看视频 | 久热超碰 | 大型av综合网站 | 国产精品影音先锋 | 亚洲国产影院av久久久久 | 国内精品久久久久久久久 | 久久激情视频免费观看 | 夜又临在线观看 | 亚洲国产精品一区二区久久hs | 欧美福利视频一区 | 国产精品成人一区二区三区 | 久久网站av | 久久久久欠精品国产毛片国产毛生 | 日韩精品aaa | 99视频 | 一级做a爱片性色毛片www | 午夜免费在线观看 | 在线观看国产区 | 天天操婷婷 | 黄色软件在线观看免费 | 午夜美女影院 | 国产日本在线 | 日韩精品免费一区二区在线观看 | 美女视频免费一区二区 | 久久在线免费观看 | 色婷婷狠狠18 | 精品久久久久久久久久久久久久久久久久 | 国产精品久久久久久av | 国产一级二级视频 | 免费h在线观看 | av在线播放一区二区三区 | 久草在线最新免费 | 亚洲天堂网在线观看视频 | 欧美日韩有码 | 右手影院亚洲欧美 | 婷婷激情小说网 | 91片黄在线观看 | 日韩欧美视频在线免费观看 | 96亚洲精品久久 | 视频 天天草 | 色婷婷综合激情 | 日韩动态视频 | 黄色软件网站在线观看 | 中文字幕精品在线 | 五月婷婷免费 | 337p日本大胆噜噜噜噜 | 狠狠操狠狠插 | 91精品久久久久久久久 | 亚洲全部视频 | 51久久夜色精品国产麻豆 | 香蕉视频在线视频 | 波多野结衣电影一区二区三区 | 最近免费观看的电影完整版 | 最近最新中文字幕视频 | 久久精品久久久久 | 成人毛片一区二区三区 | 亚洲精品理论片 | av免费电影在线 | 在线观看亚洲精品 | 天天爱天天操 | 日韩最新理论电影 | 亚洲理论电影网 | 午夜色影院 | 日韩欧美在线观看一区二区 | 在线观看免费一级片 | 99视频在线看 | 九月婷婷色 | 九色精品免费永久在线 | 在线观看蜜桃视频 | 成人欧美一区二区三区在线观看 | 99国产一区二区三精品乱码 | 国产99久久九九精品 | 国产亚洲人 | 午夜久久福利影院 | 免费视频91 | 99成人免费视频 | 国产专区欧美专区 | 91av精品| 国产小视频你懂的 | 在线综合 亚洲 欧美在线视频 | 00av视频| 日韩高清片| 亚洲涩涩涩 | 国产永久免费高清在线观看视频 | 免费电影播放 | 99久久久国产免费 | 手机看片国产日韩 | 婷婷激情站 | 精品国产一区二区三区久久久蜜臀 | 久久y | 久久久国产精品免费 | 波多野结衣电影一区 | 成人午夜免费剧场 | 99国产精品一区 | 7777xxxx| 久久久噜噜噜久久久 | 91网站观看 | 亚洲黄色免费观看 | 日韩电影中文,亚洲精品乱码 | 久久久久久久网 | 日韩理论在线观看 | 免费a网站| 国产福利91精品张津瑜 | 精品视频免费久久久看 | 天天狠狠操 | 久久黄色免费 | 黄色免费观看网址 | 一区二区三区免费看 | 国产手机av在线 | 国产精品二区在线观看 | 日韩特黄一级欧美毛片特黄 | 久久最新网址 | av在线专区| 久久精品视频18 | 午夜性福利| 国产精品综合在线观看 | 色99视频 | 激情综合亚洲精品 | 国产专区精品视频 | 国产精品久久久久久久久久久久久 | 久久综合五月 | 久草精品电影 | 欧美日韩一区二区久久 | 99精品视频一区 | 日韩av影视 | 免费三级av| 成年人在线看片 | 午夜av在线播放 | 五月婷婷综合久久 | 超碰在线天天 | 中文字幕久久精品亚洲乱码 | 精品国产黄色片 | 91av综合 | 婷婷丁香花五月天 | 中文字幕在线观看网站 | 成年人在线免费看视频 | av网站在线免费观看 | 国产福利久久 | 深夜国产福利 | 综合色天天 | 四虎在线免费视频 | 成人9ⅰ免费影视网站 | 久久99亚洲精品久久久久 | 粉嫩av一区二区三区入口 | 99热这里只有精品国产首页 | 深爱激情婷婷网 | 99久久99视频 | 99热在线免费观看 | 欧美福利视频 | 99精品乱码国产在线观看 | 在线一区观看 | 久久久国际精品 | 四虎成人免费观看 | 国产精品美女999 | 91精品网站在线观看 | 国产精品福利午夜在线观看 | 精品视频专区 | 日日干夜夜草 | 亚洲欧美日韩精品久久久 | 最近中文国产在线视频 | 久久精品欧美日韩精品 | 久久资源总站 | 久久er99热精品一区二区三区 | 四虎在线视频 | 日韩精品久久一区二区 | 亚洲精品国产电影 | 97在线观看视频免费 | 久久99精品久久久久蜜臀 | 国产高清免费在线观看 | 91麻豆精品国产91 | 日本99热 | 亚洲国产高清在线观看视频 | 国产成人一区二区精品非洲 | 欧美乱熟臀69xxxxxx | www.国产精品 | 国产美女精品视频 | 欧美一二三专区 | 在线观看免费中文字幕 | 国产精品99久久久久人中文网介绍 | 在线黄色国产电影 | 青春草国产视频 | 亚洲黄色区 | 婷婷丁香九月 | 最近最新mv字幕免费观看 | 免费在线色电影 | 国产精品av在线免费观看 | 在线观看国产www | 日韩高清黄色 | 人人玩人人添人人 | 亚洲中字幕 | 手机成人av在线 | 人人舔人人舔 | 国产综合在线视频 | av在线播放不卡 | 黄色网免费 | 精品美女在线观看 | 久久欧美精品 | 欧美色伊人 | 亚洲 欧美 日韩 综合 | 亚洲综合色激情五月 | 精品国产乱码久久久久久天美 | 午夜影院先 | 国产一级片久久 | 夜色成人av | 国产午夜小视频 | av中文在线 | 久久欧洲视频 | 日韩中文字幕免费电影 | 国产精品美女久久久久久久久 | 久久国内精品 | 午夜国产成人 | 国内综合精品午夜久久资源 | 日韩中文字幕免费 | 国产在线久草 | 99re在线视频观看 | 黄色三级网站在线观看 | 亚洲国产精品女人久久久 | 西西44人体做爰大胆视频 | 五月婷婷综合在线观看 | 亚洲精品免费在线视频 | 夜夜澡人模人人添人人看 | 91免费版在线 | 99久热在线精品视频成人一区 | 欧美一级电影免费观看 | 久久久久久久久久久高潮一区二区 | 91在线视频免费播放 | 超碰九九 | 免费日韩一级片 | 日本韩国欧美在线观看 | 九月婷婷人人澡人人添人人爽 | 很黄很黄的网站免费的 | 精品国产视频在线 | 97国产超碰 | 最近中文字幕国语免费av | 久久久久久久久久久久av | 日韩黄在线观看 | 国产色婷婷 | 国产资源在线视频 | 国产精品字幕 | 国产精品99久久久久久人免费 | 久久精品看 | 国产精品69久久久久 | 亚洲黄色免费观看 | 精品视频一区在线观看 | 最新国产在线 | 精品一二区 | 久久草 | 四虎在线免费观看 | 日韩中文字幕国产 | www夜夜操 | 99re在线视频观看 | 国产一区视频在线观看免费 | 手机av在线免费观看 | 午夜久久久影院 | 国产亚洲无| 在线观看视频在线观看 | 久久视频免费观看 | 欧美另类高潮 | 久久伊人综合 | 亚洲精品成人 | 日韩二区三区在线观看 | 日本久久99 | 国产精品免费在线视频 | 在线99视频 | 免费观看国产成人 | 欧美久久成人 | 精品一区欧美 | 手机av在线免费观看 | a在线播放 | 久久电影中文字幕视频 | 久久久国产高清 | 91香蕉视频污在线 | 久久九九视频 | 美女黄网站视频免费 | 欧美九九视频 | 日韩动漫免费观看高清完整版在线观看 | 婷婷午夜激情 | 亚洲va在线va天堂va偷拍 | av电影在线不卡 | 国产亚洲精品v | 亚洲 欧美 日韩 综合 | 天天天天天天天天操 | 亚洲美女精品视频 | 国产一区二区在线免费播放 | 成年人免费在线看 | 久热免费在线 | 精品久久久免费视频 | 欧美人交a欧美精品 | 久久精品国产成人精品 | 一区二区三区三区在线 | 久久综合狠狠综合久久狠狠色综合 | 在线视频欧美精品 | 久久99九九99精品 | 人人澡人人干 | 天天人人 | 丁香5月婷婷久久 | 丝袜av网站| 欧美日韩国产色综合一二三四 | 一区二区在线不卡 | 欧美一级片免费 | 日日草天天草 | 狠狠色丁香久久婷婷综合丁香 | 色网站免费在线看 | 在线观看视频色 | 91麻豆产精品久久久久久 | 欧美视频xxx | 久久久精品欧美一区二区免费 | 蜜臀av性久久久久av蜜臀三区 | 成人亚洲精品久久久久 | 91精品国产一区二区在线观看 | 亚洲日日射 | 欧美成人视 | 在线视频18在线视频4k | 国产中文在线播放 | 色婷婷啪啪免费在线电影观看 | 久久精品屋 | 欧美精品一区二区在线播放 | 久久avav| 日本在线精品视频 | 中文字幕高清在线播放 | 国产精品久久久久久久久搜平片 | 午夜神马福利 | 欧美激情va永久在线播放 | 在线观看日韩免费视频 | 蜜臀av夜夜澡人人爽人人 | 日韩电影在线看 | 日韩精品视频网站 | 日日爱视频 | 成人91免费视频 | 日本中出在线观看 | bbbbb女女女女女bbbbb国产 | 粉嫩av一区二区三区入口 | 福利一区二区三区四区 | 国产99视频在线观看 | 国产精品大全 | 欧美另类v| 亚洲狠狠| 国产精品久久久久久久久久三级 | 久久www免费人成看片高清 | 亚洲精品黄色 | 国产亚洲视频在线免费观看 | 亚洲国产精品va在线看 | 婷婷六月丁 | 91精品国产九九九久久久亚洲 | 亚洲综合视频在线播放 | 久久精品国产亚洲a | 二区视频在线 | 久久综合九色综合欧美就去吻 | 午夜久操 | 极品久久久 | 91精品久久香蕉国产线看观看 | 国产精品国产三级国产不产一地 | 久久夜靖品 | 日韩a免费| 九九久久精品视频 | 激情婷婷久久 | 国产精品视频免费 | a级片久久| 国产精品美女久久久久久久久久久 | 国产精品男女 | av电影在线不卡 | 婷婷久月 | 亚洲国产欧洲综合997久久, | 亚洲精品福利在线 | 久久精品欧美一区二区三区麻豆 | 国产中文字幕一区二区三区 | 中文字幕美女免费在线 | 69国产在线观看 | 91精品网站 | 亚洲国产精品成人女人久久 | 91免费网站在线观看 | 久久免费在线观看 | 日韩在线观看视频一区二区三区 | 丁香花中文在线免费观看 | 免费视频久久 | www五月婷婷 | 日韩精品无码一区二区三区 | 午夜精品视频一区 | 欧美视频18| 91大神精品视频在线观看 | 亚洲免费观看在线视频 | 色永久免费视频 | 中文字幕高清 | 欧美日韩一区久久 | 久久久国产成人 | 亚洲日本中文字幕在线观看 | 中文字幕资源在线 | 香蕉视频啪啪 | 五月天亚洲综合 | 99国内精品久久久久久久 | 成人小视频在线 | 人人模人人爽 | 伊人网站 | 免费午夜av| 黄色在线免费观看网站 | 黄色性av| 一区二区欧美在线观看 | 久久综合五月 | 亚洲美女视频在线 | 国产91免费在线观看 | 国产精品99久久久久久小说 | 91视频在线观看免费 | 在线97| 美女黄频视频大全 | 黄色av大片 | 日韩理论电影在线观看 | 四虎永久视频 | 美女网站视频久久 | www.在线观看视频 | 日韩av午夜 | 日本三级不卡 | 亚洲三级在线免费观看 | 国产一级在线视频 | 丁香色婷 | 美女视频黄在线观看 | 国产精品美女毛片真酒店 | 国产一区免费视频 | 丁香六月婷婷开心婷婷网 | 91理论片午午伦夜理片久久 | 日韩大陆欧美高清视频区 | 亚洲国产成人精品在线观看 | 在线观看国产高清视频 | 一区二区 不卡 | 99免费在线播放99久久免费 | 欧美精品999 | a级国产乱理伦片在线观看 亚洲3级 | 久久久久久国产一区二区三区 | 国产精品mv在线观看 | 成人免费看电影 | 亚洲成人免费观看 | 四虎影视精品 | 97人人模人人爽人人喊中文字 | 91精彩视频在线观看 | 欧美一级片在线免费观看 | av线上看| 久久九九久久精品 | 91成人破解版 | 久久任你操 | 激情伊人五月天 | 久久久麻豆视频 | 国产精品久久久久久久久婷婷 | 精品一区 精品二区 | 久久免费资源 | 黄色在线成人 | 天天干天天干天天操 | 丁香五月亚洲综合在线 | 久草电影在线观看 | 91高清免费 | 色99之美女主播在线视频 | 波多野结依在线观看 | 国产白浆视频 | 国产男男gay做爰 | 日韩一区在线免费观看 | 国产成人精品亚洲日本在线观看 | 91精品国产麻豆 | 久久精品国产亚洲精品2020 | 国产99久久久欧美黑人 | 2017狠狠干| 久久精品综合视频 | 亚洲精品视频在线观看免费视频 | 色在线视频 | 夜色成人网 | 狠狠色丁婷婷日日 | 在线免费黄 | 亚洲欧洲精品一区二区精品久久久 | 国产一级特黄电影 | 精品视频区 | 国产一二区免费视频 | 夜夜夜草 | 久久av电影 | 欧美日韩三区二区 | 久久久久看片 | 欧美精品乱码久久久久久按摩 | 日韩二区在线观看 | 夜夜视频| 色综合激情网 | 国产手机av | 91麻豆精品国产91久久久无限制版 | 成人av免费电影 | 亚洲天堂网站 | 国产剧情一区 | 久久免费视频在线观看6 | 99视频免费 | 99精品区| 91精品资源 | 免费在线观看av网站 | 97超碰在线资源 | 手机在线看永久av片免费 | 久久99亚洲精品久久 | 色99久久| 国产日韩欧美视频在线观看 | www.五月天 | 亚洲精品国产精品乱码不99热 | 91精品日韩 | 成人在线视频免费看 | 日本中文字幕视频 | 人人操日日干 | 麻豆91在线播放 | 91丨九色丨国产在线观看 | 日韩在线精品一区 | 免费看毛片在线 | 黄色免费电影网站 | 人人插人人搞 | 国产精品毛片一区二区在线看 | 亚洲精品国产精品国产 | 欧美一级专区免费大片 | 亚洲欧洲在线视频 | 久久好看免费视频 | 欧美在线99| 国产中文字幕av | 免费一级片观看 | 国产手机免费视频 | 日日操天天操夜夜操 | 黄色一级大片在线免费看国产一 | 欧美韩日在线 | 在线91精品| 91视频高清| 91成人蝌蚪 | 一区二区视频免费在线观看 | 在线观看视频在线 | 国产精品日韩在线观看 | 欧美a级在线免费观看 | 亚州精品在线视频 | 国产第一二区 | 久久精品首页 | 日韩黄色网络 | 国产伦精品一区二区三区无广告 | 顶级bbw搡bbbb搡bbbb | 免费看的黄色的网站 | 在线免费黄| 色的网站在线观看 | 97超碰免费在线 | 久久超级碰视频 | 日韩一级成人av | 欧美日韩中文字幕综合视频 | 日日干美女 | 国产精品国产三级国产 | wwwav视频| 久久综合狠狠狠色97 | 高清精品视频 | 草久在线 | 亚洲精品美女久久久 | 久久视频在线免费观看 | 国产黄色片免费在线观看 | 99视频免费看 | 国产在线视频一区 | 午夜精品久久久久久久99热影院 | 国产天天综合 | 久热电影 | 亚洲a在线观看 | 亚洲成人二区 | 欧美精选一区二区三区 | 日韩系列在线观看 | a天堂最新版中文在线地址 久久99久久精品国产 | 国产伦精品一区二区三区照片91 | 成人av一区二区在线观看 | 成人天堂网 | 黄av在线| 黄色视屏在线免费观看 | 成人动态视频 | 97在线视频网站 | 日韩中文字 | 日韩精品播放 | 亚洲精品中文在线资源 | 女人18片毛片90分钟 | 国产男女爽爽爽免费视频 | 日韩国产在线观看 | 日韩黄色软件 | 天天爽天天射 | 免费在线观看av | 色a资源在线| 一区二区三区播放 | 国产aaa毛片 | 国产高清视频免费在线观看 | 国产精品激情偷乱一区二区∴ | 免费久草视频 | 国产四虎影院 | 久久激情精品 | 在线观看黄色的网站 | 射综合网| 中文国产字幕在线观看 | 成人av动漫在线观看 | 成 人 黄 色 免费播放 | 一级一片免费视频 | 最新av观看 | 亚洲一级片 | 亚洲夜夜网 | 日本久久久精品视频 | 深爱五月激情五月 | 欧美日韩国产精品一区二区 | 人人干网 | 狠狠干夜夜爽 | 天天躁日日 | 黄色特一级 | www.99久久.com| 色视频成人在线观看免 | 久草免费资源 | 国产成人精品久久亚洲高清不卡 | 欧美一级淫片videoshd | 亚洲国产99| 人人澡人摸人人添学生av | 国内久久| 在线观看免费av片 | 色中文字幕在线观看 | 久久免费精品一区二区三区 | 在线免费看黄网站 | 91视频91色| 日韩一区正在播放 | 一区二区三区日韩精品 | 免费高清在线观看成人 | 日韩黄色免费电影 | 成人四虎| 亚洲欧美视频网站 | 日批网站免费观看 | 久久你懂得 | 欧美一级日韩免费不卡 | 国产做aⅴ在线视频播放 | 一区二区三区视频网站 | 91网站在线视频 | 亚洲精品免费视频 | 99热在线这里只有精品 | 国产日韩中文字幕 | 91麻豆精品国产91久久久无限制版 | 国产剧情在线一区 | 福利视频导航网址 | 国产亚洲成av片在线观看 | 国产真实精品久久二三区 | 日本三级国产 | 色九九在线 | 2019免费中文字幕 | 久久久久女人精品毛片九一 | 日韩免费不卡视频 | 色狠狠综合 | 午夜免费久久看 | 免费一级片在线观看 | 国产黄色视 | 国产福利91精品一区二区三区 | 久久久视频在线 | 免费高清男女打扑克视频 | 国产不卡免费av | 天天综合日 | 激情丁香久久 | 日韩欧美视频在线免费观看 | 在线观看精品国产 | 亚洲综合成人婷婷小说 | 亚洲激情综合网 | 国产小视频精品 | 高清国产午夜精品久久久久久 | 久久久九九| 婷婷深爱五月 | 丰满少妇一级 | 久久夜夜爽 | 成人免费xxx在线观看 | 久久99精品久久久久久久久久久久 | 国产精品麻豆免费版 | 天天色天天上天天操 | 成人黄在线 | 成人午夜精品久久久久久久3d | 久久97久久97精品免视看 | 13日本xxxxxⅹxxx20 | 色综合色综合久久综合频道88 | 这里只有精品视频在线观看 | 中文字幕精 | 亚洲狠狠婷婷 | 久久久精品视频网站 | 色成人亚洲网 | 国产成人一区二区三区影院在线 | 三日本三级少妇三级99 | 夜夜操天天 | 久久高清视频免费 | 中文字幕 二区 | 一区二区不卡在线观看 | 久久精品三 | 国产99久久九九精品 | 国产精品九九热 | 亚洲一区精品人人爽人人躁 | 精品国产精品一区二区夜夜嗨 | 中文av字幕在线观看 | 少妇bbb搡bbbb搡bbbb′ | 日韩视频www | 成全在线视频免费观看 | 91av蜜桃 | 91精品国产91久久久久 | 97免费在线观看视频 | 黄色福利视频网站 | 一级片视频在线 | 成人av免费电影 | 欧美一区二区在线免费观看 | 久久成人国产精品一区二区 | 欧美日韩视频在线一区 | 国产这里只有精品 | 久久看片网 | 黄色小网站在线观看 | 国产一级视频在线观看 | 午夜免费福利片 | 免费人成网 | 久久黄色片| www黄在线 | 香蕉视频在线免费 | 亚洲天堂网视频在线观看 | 98涩涩国产露脸精品国产网 | 久久人人爽爽 | 九九视频免费 | 亚洲精品国产精品99久久 | 国产福利精品一区二区 | 最近免费观看的电影完整版 | 日韩大陆欧美高清视频区 | 99麻豆久久久国产精品免费 | 日韩特黄一级欧美毛片特黄 | 欧美一区免费在线观看 | 在线观看中文字幕dvd播放 | 日韩va欧美va亚洲va久久 | 久久久久国产免费免费 | 五月天天色 | 中文字幕av在线播放 | 成人av手机在线 | 99久久精品国 | 黄色三级视频片 | 亚洲干视频在线观看 | 成人免费视频网站在线观看 | 国产精品99精品久久免费 | 天天综合网天天综合色 | 日韩中文免费视频 | 免费看黄20分钟 | 国产一区精品在线观看 | 成年人视频在线免费播放 | 在线观看精品一区 | 五月天网页| 国产三级在线播放 | 永久免费的av电影 | 黄在线免费观看 | 狠狠躁夜夜躁人人爽视频 | 国产男女无遮挡猛进猛出在线观看 | 99精品一区 | 91传媒在线 | 激情中文在线 | 九九三级毛片 | 欧美综合在线视频 | 国产aa免费视频 | 婷婷国产视频 | 99色网站| 亚洲天天综合网 | 4438全国亚洲精品观看视频 | 久久久久久国产精品999 | 精品国产诱惑 | 992tv成人免费看片 | 亚洲精品一区二区三区高潮 | 午夜精品剧场 | 日本中文字幕网址 | 久久精品精品电影网 | 激情婷婷丁香 | 国产又粗又硬又爽视频 | 欧美日韩高清一区二区三区 | 亚洲精品国产精品99久久 | 91伊人久久大香线蕉蜜芽人口 | 久久只精品99品免费久23小说 | 久久久综合色 | 99一级片 | 精品久久久久一区二区国产 | 99精彩视频| 中文字幕色站 | 91色亚洲| 久久免视频 | 免费色视频网址 | 国产视频精选 | 久久久这里有精品 | 国产成人精品一区二区三区在线观看 | 色婷婷在线播放 | 免费成人av在线看 | 久草在线在线精品观看 | 亚洲无线视频 | 日韩亚洲国产精品 | www.夜夜草| 天天在线视频色 | 久久九九影视网 | 一区二区三区四区免费视频 | 免费av福利| 四虎永久国产精品 | 久久精品观看 | 精品美女久久久久 | 91麻豆精品91久久久久同性 | av免费看电影 | 一区二区三区电影 | 日日摸日日 | 国产精品一区二区三区在线播放 | 国产精品99久久免费黑人 | 狠狠色丁香婷婷 | 国产精品成人久久久 | 成人久久18免费网站图片 | 国产黄色片久久久 | 婷婷综合电影 | 久久96国产精品久久99软件 | 成人a视频片观看免费 | 999视频在线观看 | av视屏在线播放 | 亚洲人成精品久久久久 | 中文字幕色播 | 999国内精品永久免费视频 | 日韩电影在线观看中文字幕 | 欧美最猛性xxxxx亚洲精品 | 在线国产精品一区 | 欧美日韩在线第一页 | 狠狠狠狠狠狠操 | 国产黄色在线观看 | 久久免费观看少妇a级毛片 久久久久成人免费 | 九九免费在线观看 | 成人9ⅰ免费影视网站 | 深爱五月激情网 | www.888av| 亚洲日本中文字幕在线观看 | 久久免费视频6 | 日韩在线不卡视频 | 成人羞羞视频在线观看免费 | 人人澡视频 | 日日干av | 五月天久久综合 | 久久久久久久久久久久久久电影 | 免费h精品视频在线播放 | 91精品啪啪| 午夜婷婷综合 | 激情久久久久久久久久久久久久久久 | 午夜美女网站 | 亚洲美女免费精品视频在线观看 | 久久久久福利视频 | 久久er99热精品一区二区三区 | av黄色av | 91精品啪 | av黄免费看 | 久久一级片 | 欧美中文字幕第一页 | 国产探花 | 国产黄网站在线观看 | 色天堂在线视频 | 高清精品视频 | 久久精品牌麻豆国产大山 | 一级一级一片免费 | 久久精品一二三区 | 国产精品初高中精品久久 | 黄色成人av在线 | 亚洲一级性 | 免费看亚洲毛片 | 中文字幕日韩精品有码视频 | 久久国产精品99久久久久 | 黄色网免费 | 午夜日b视频 | 在线免费黄色av | 成人免费一级 | 日b视频在线观看网址 | 人人干干人人 | 在线免费视频你懂的 | 综合色婷婷 |