成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一篇帶給你Lwip網口接口netif

網絡 通信技術
如果有多個網卡的話LWIP是如何來組織這些網卡呢?在LWIP中用鏈表netif_list來管理眾多的網卡,當上層有數據要發送的時候LWIP會從netif_list鏈表中選擇一個合適的網卡來將數據發送出去。

[[395199]]

01網絡接口簡介

TCP/IP參考模型中網絡分為4層:應用層、傳輸層、網絡層和網絡接口層。網絡接口層就對應著我們實際的網卡,LWIP支持多網口設計,LWIP中使用netif來描述每種網絡接口的特性,如接口的IP地址、接口狀態等等。那么如果有多個網卡的話LWIP是如何來組織這些網卡呢?在LWIP中用鏈表netif_list來管理眾多的網卡,當上層有數據要發送的時候LWIP會從netif_list鏈表中選擇一個合適的網卡來將數據發送出去。

02netif結構

netif結構體在文件netif.h中有定義,netif結構體中每個成員變量的含義如下:

next:該字段指向下一個neitif類型的結構體,因為LWIP可以支持多個網絡接口,當設備有多個網絡接口的話LWIP就會把所有的netif結構體組成鏈表來管理這些網絡接口。

ipaddr,netmask和gw:分別為網絡接口的IP地址、子網掩碼和默認網關。

input:此字段為一個函數,這個函數將網卡接收到的數據交給IP層。

output:此字段為一個函數,當IP層向接口發送一個數據包時調用此函數。這個函數通常首先解析硬件地址,然后發送數據包。此字段我們一般使用etharp.c中的etharp_output()函數。

linkoutput:此字段為一個函數,該函數被ARP模塊調用,完成網絡數據的發送。上面說的etharp_output函數將IP數據包封裝成以太網數據幀以后就會調用linkoutput函數將數據發送出去。

state:用來定義一些關于接口的信息,用戶可以自行設置。

mtu:網絡接口所能傳輸的最大數據長度,一般設置為1500。

hwaddr_len:網卡MAC地址長度,6個字節。

hwaddr:MAC地址。

flags:網絡的接口狀態,屬性信息字段。

name:網卡的名字。

num:此字段為協議棧為每個網絡接口設置的一個編號,編號從0開始。

flags的取值:

其中

在網絡初始化中,在ethernetif.c中

他們對應的都是一個函數

etharp_output:ip層發送數據包函數

low_level_output :ARP模塊發送函數,更底層的函數,其實etharp_output還是調用此函數

03相關函數

3.1、netif_add

  1. netif_add(struct netif *netif, ip_addr_t *ipaddr, ip_addr_t *netmask,  ip_addr_t 
  2.                 *gw, void *state, netif_init_fn init, netif_input_fn input) 

就是把netif網絡接口添加到網絡list隊列中,向網卡列表中添加一個網卡

3.2、netif_set_default

  1. netif_set_default(struct netif *netif) 

將這個網卡設置為默認網卡

3.3、netif_set_up

  1. netif_set_up(struct netif *netif) 

 打開網卡

 

責任編輯:姜華 來源: 知曉編程
相關推薦

2021-04-12 08:40:27

Lwip數據包pbuf

2021-07-12 06:11:14

SkyWalking 儀表板UI篇

2021-06-21 14:36:46

Vite 前端工程化工具

2021-01-28 08:55:48

Elasticsear數據庫數據存儲

2023-03-29 07:45:58

VS編輯區編程工具

2021-04-14 14:16:58

HttpHttp協議網絡協議

2021-04-08 11:00:56

CountDownLaJava進階開發

2022-03-22 09:09:17

HookReact前端

2021-07-21 09:48:20

etcd-wal模塊解析數據庫

2022-02-17 08:53:38

ElasticSea集群部署

2022-04-29 14:38:49

class文件結構分析

2024-06-13 08:34:48

2021-04-01 10:51:55

MySQL鎖機制數據庫

2021-03-12 09:21:31

MySQL數據庫邏輯架構

2021-10-28 08:51:53

GPIO軟件框架 Linux

2022-02-25 15:50:05

OpenHarmonToggle組件鴻蒙

2021-05-08 08:36:40

ObjectString前端

2021-04-23 08:59:35

ClickHouse集群搭建數據庫

2021-07-08 07:30:13

Webpack 前端Tree shakin

2021-04-14 07:55:45

Swift 協議Protocol
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区综合 | 久久精品 | 国内自拍偷拍 | 资源首页二三区 | 久久中文字幕一区 | 亚洲欧美视频在线观看 | 一区二区三区四区在线视频 | 97成人在线 | 中文字幕在线播放不卡 | 日韩三区在线观看 | 日本精品久久久久 | 国产精品久久久久久久模特 | 精品免费 | 亚洲成av人片在线观看 | av黄色在线观看 | 中文字幕三区 | 国产精品网址 | 久久婷婷麻豆国产91天堂 | 亚洲精品在线免费 | 亚洲一区 中文字幕 | 国产乱码久久久 | a级黄色网 | 国产精品视频久久久久 | 欧美一级二级在线观看 | 激情欧美日韩一区二区 | 午夜精品视频在线观看 | 欧美一区二区三区在线看 | 亚洲视频在线播放 | 美国一级毛片a | 国产精品久久久久久久久久久久 | 国产剧情一区二区三区 | 亚洲a视频| 中文字幕亚洲视频 | 国产一二三区免费视频 | 在线观看www | 久久久人成影片一区二区三区 | 一区二区三区四区不卡视频 | 91久久| 国产乱码精品一区二区三区五月婷 | 在线免费激情视频 | 91视频网址 |