日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LwIP之网络技术基础

發布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LwIP之网络技术基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、協議模型

TCP/IP協議模型(Transmission Control Protocol/Internet Protocol),包含了一系列構成互聯網基礎的網絡協議,是Internet的核心協議,通過20多年的發展已日漸成熟,并被廣泛應用于局域網和廣域網中,目前已成為事實上的國際標準。TCP/IP協議簇是一組不同層次上的多個協議的組合,通常被認為是一個四層協議系統,與OSI的七層模型相對應。

? ? ? ? ? ? ? ? ??

  • 鏈路層

  用來處理連接網絡的硬件部分。包括控制操作系統、硬件的設備驅動、網卡,及光纖等物理可見部分。

  • 網絡層

  用來規定通過怎樣的路徑把數據包傳送給對方計算機。

  • 傳輸層

  主要為兩臺主機上的應用程序提供端到端的通信。

  • 應用層

應用層負責處理特定的應用程序細節。?

?

二、各層協議

?各種協議在TCP/IP協議模型中所處的層次如下:

? ? ? ? ? ? ? ? ? ? ? ? ?? ?

ARP:通過IP地址獲取MAC地址。

RARP:通過MAC地址獲取IP地址。

IP:盡快將數據包從一個主機傳送到另一個主機,不保證可靠性。

ICMP:IP層用它來與其他主機或路由器交換錯誤報文和其他重要信息。

IGMP:Internet組管理協議,用來把UDP數據報多播到多個主機。

UDP:簡單地將數據包從一個應用程序發送到另一個應用程序,不保證可靠性。

TCP:提供一個應用程序到另一個應用程序的可靠傳輸。

?

三、IP地址及分類

互聯網中采用一套獨立的編址技術,使任何主機的編址不受其物理環境的影響。設計人員為每一臺主機分配了一個唯一的32bit整數地址,稱之為IP地址。

目前IP地址采用了分類的概念,把所有地址劃分為A、B、C、D、E五類。

? ? ? ? ? ? ? ? ? ? ? ? ??

其中,有一些特殊用途的IP地址

環回地址:127.x.x.x,通常使用127.0.0.1。

網絡地址:主機號全0的地址,如85.0.0.0、134.89.0.0、213.89.89.0等。

直接廣播地址:用于向所在網絡廣播消息。主機號全1的地址,如85.255.255.255、134.89.255.255、213.89.89.255等。

受限廣播地址:255.255.255.255,用于向本地網絡廣播消息。

不確定IP地址:0.0.0.0,表示整個網絡

錯誤地址:169.254.x.x,DHCP分配失敗時系統自動分配。

本網絡特定主機地址:網絡號全0的地址,如0.x.x.x、0.0.x.x、0.0.0.x。

/* 不確定IP地址(表示本機所有網絡接口IP地址)指針 */ #define IP_ADDR_ANY ((struct ip_addr *)&ip_addr_any) /* 廣播IP地址指針 */ #define IP_ADDR_BROADCAST ((struct ip_addr *)&ip_addr_broadcast)/* A類地址 */ #define IN_CLASSA(a) ((((u32_t)(a)) & 0x80000000UL) == 0) //是否為A類地址 #define IN_CLASSA_NET 0xff000000 //A類網絡地址掩碼 #define IN_CLASSA_NSHIFT 24 //A類網絡地址偏移量 #define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET) //A類主機地址掩碼 #define IN_CLASSA_MAX 128 //A類網絡地址最大數/* B類地址 */ #define IN_CLASSB(a) ((((u32_t)(a)) & 0xc0000000UL) == 0x80000000UL) //是否為B類地址 #define IN_CLASSB_NET 0xffff0000 //B類網絡地址掩碼 #define IN_CLASSB_NSHIFT 16 //B類網絡地址偏移量 #define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET) //B類主機地址掩碼 #define IN_CLASSB_MAX 65536 //B類網絡地址最大數/* C類地址 */ #define IN_CLASSC(a) ((((u32_t)(a)) & 0xe0000000UL) == 0xc0000000UL) //是否為C類地址 #define IN_CLASSC_NET 0xffffff00 //C類網絡地址掩碼 #define IN_CLASSC_NSHIFT 8 //C類網絡地址偏移量 #define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET) //C類主機地址掩碼/* D類地址(組播) */ #define IN_CLASSD(a) (((u32_t)(a) & 0xf0000000UL) == 0xe0000000UL) //是否為D類地址 #define IN_CLASSD_NET 0xf0000000 //D類網絡地址掩碼 #define IN_CLASSD_NSHIFT 28 //D類網絡地址偏移量(高4位1110) #define IN_CLASSD_HOST 0x0fffffff //D類主機地址掩碼 #define IN_MULTICAST(a) IN_CLASSD(a) //是否為組播地址/* 保留未用地址 */ #define IN_EXPERIMENTAL(a) (((u32_t)(a) & 0xf0000000UL) == 0xf0000000UL) //是否為保留未用地址 /* 廣播地址 */ #define IN_BADCLASS(a) (((u32_t)(a) & 0xf0000000UL) == 0xf0000000UL) //是否為廣播地址

?

四、子網劃分與子網掩碼

標準IP地址使用網絡號和主機號兩層地址結構,當大量個人用戶和小型局域網用戶接入互聯網,即使為其分配一個C類網絡也會造成IP地址的大量浪費。隨著互聯網用戶的劇烈增長,IP地址的分配變得格外緊張,為每個物理網絡分配一個網絡號的做法變得很不現實。

因此,通過子網掩碼的方式將網絡進一步劃分為多個子網,將原來的二級結構變為三級結構。如果按照下面的方式進行劃分一個B類網絡來,則可以在整個網絡中劃分出254個子網,每個子網可以有254臺主機。這樣做可以大大減少標準IP編址中地址浪費現象。

? ? ? ? ? ?

網掩和IP地址一樣是一個32位數,其對應網絡地址(包括網絡號和子網號)的所有位置都為1,對應于主機地址的所有位置都為。按照上圖這種方式劃分一個B類網絡時,子網掩碼為255.255.255.0。

對于一個主機或者路由器,當接收到一個數據包時2。若要判斷發送數據的源主機和自己是否在同一網絡時,可以將源IP地址和子網掩碼進行與運算,得到源主機網絡地址,并同樣的方式得到自己的網絡地址,然后進行比較。

/* 判斷網段是否相同 */ #define ip_addr_netcmp(addr1, addr2, mask) (((addr1)->addr & \(mask)->addr) == \((addr2)->addr & \(mask)->addr))

?使用了子網掩碼之后,各個子網也同樣存在廣播地址。下面這段代碼用于判斷IP地址是否為廣播地址

/* 判斷IP地址是不是廣播地址 */ u8_t ip_addr_isbroadcast(struct ip_addr *addr, struct netif *netif) {u32_t addr2test;addr2test = addr->addr;/* 全0或全1 */if ((~addr2test == IP_ADDR_ANY_VALUE) || (addr2test == IP_ADDR_ANY_VALUE))return 1;/* 網絡接口不支持廣播 */else if ((netif->flags & NETIF_FLAG_BROADCAST) == 0)return 0;/* 本機地址 */else if (addr2test == netif->ip_addr.addr)return 0;/* 子網廣播 */else if (ip_addr_netcmp(addr, &(netif->ip_addr), &(netif->netmask)) && ((addr2test & ~netif->netmask.addr) == (IP_ADDR_BROADCAST_VALUE & ~netif->netmask.addr)))return 1;elsereturn 0; }

?

五、NAT轉換協議

隨著互聯網的發送,IP地址短缺現象越來越嚴重,即使是擁有幾百臺的大型企業,也很難申請到幾個IP地址。為了解決這個問題,產生了局域網技術。對于局域網外部來說,所有主機公用一個合法IP地址。但是在局域網內部,用戶使用專用IP進行相互通信。

NAT協議的功能簡單來說:數據發送到外部時,將局域網內部主機的IP地址轉換成一個外部公用的IP地址;數據從外部接收時,將外部公用的IP地址轉換成局域網內部主機的IP地址。

NAT最常見的實現方式是端口多路復用,它基于TCP或UDP協議端口號以及IP地址來實現。

?

例如:某公司IP地址為222.178.197.21,局域網內部某主機IP地址為192.168.1.178,該主機正在使用TCP協議與某外部服務器進行通信,該外部主機IP地址為130.21.45.20。TCP雙方,內部主機TCP端口號為1234,外部主機TCP端口號為80。

具有NAT功能的路由器會在內部維護一個NAT轉換表,當路由器收到該分組時,會在表中為連接(192.168.1.78:1234,130.21.45.20:80)分配一個路由器內部的端口,假設為5678。數據發送到外部時,路由器會將數據包中的源IP和端口號,由192.168.1.78:1234改為222.178.197.21:5678;數據從外部接收時,路由器會將數據包中的目的IP和端口號,由222.178.197.21:5678改為192.168.1.78:1234。

這樣經過兩次NAT轉換,局域網用戶就實現了與外部網絡的數據交互。

?

六、數據包格式

Ethernet II幀格式

? ? 前導碼:由8個8‘b10101010構成。

? ? 以太網首部目的地址:目的設備的MAC物理地址。

? ? 源地址:發送設備的MAC物理地址。

? ? 類型:0x0800為IP協議包,0x0806為ARP協議包。

? ? 數據:數據長度最小為46字節,不足46字節時,填充至46字節。

? ? FCS: 就是CRC校驗值

?

其中,目的地址、源地址和類型,共同組成以太網首部

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

?

IP數據包和ARP數據包格式分別如下:

?

?

TCP數據幀封裝過程舉例:

? ? ? ? ? ? ?

新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

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

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

主站蜘蛛池模板: 国产999在线| 中文字幕av网站 | 久久91亚洲精品中文字幕奶水 | 色视频免费看 | 精品国产一区二区三区久久狼黑人 | 九九热这里只有精品6 | 中文字幕 人妻熟女 | 夜夜干天天操 | 女人私密又肥又大 | 色射网 | 欧美整片在线观看 | 妹子色综合| 黄色a级片网站 | 天天添天天射 | 亚洲欧美日本国产 | 97视频在线观看免费高清完整版在线观看 | 精品乱码一区二区三区四区 | 久久久精品网 | 日韩一区二区毛片 | 日韩免费a | 国产精品毛片一区二区在线看 | 最新av导航 | 国产精品女人久久久 | 红桃视频在线播放 | 久久精品免费看 | 亚洲欧美日韩国产一区 | 日本免费黄色网 | 国产天堂第一区 | 国内自拍青青草 | 色就是色av | 色综合图片 | 一级特黄a | 少妇性l交大片免潘金莲 | 污视频在线播放 | av五月| 亚洲视频在线免费观看 | 亚洲一区二区免费看 | 打屁股疼的撕心裂肺的视频 | 久久精品国产亚洲av成人 | 欧美激情精品久久久久久变态 | 在线观看黄色小视频 | 伊人成人久久 | 免费在线成人网 | 国产日韩精品一区二区三区 | 美女裸片| 久久精品视频免费看 | 国产女人18毛片水真多18精品 | 第一章豪妇荡乳黄淑珍 | 免费无码又爽又黄又刺激网站 | 国产成人自拍偷拍 | 欧美人妻精品一区二区三区 | 国产亚洲精品久久久久久 | 小镇姑娘1979版 | 日韩av在线播放网址 | 99re这里只有精品在线观看 | 香蕉蜜桃视频 | 青草精品视频 | www.香蕉视频 | 日韩黄色在线视频 | 婷婷丁香六月 | 色播日韩 | 欧美日韩成人免费 | 伊人365影院 | 成人777| 啪啪激情网 | 97精品人妻一区二区 | 国产精品久久久久久人妻精品动漫 | 性――交――性――乱睡觉 | 六月婷婷久久 | av女优一区| 色亚洲视频 | 视频一区二区在线观看 | 黑丝久久| 精品欧美一区二区三区免费观看 | 国产人妖在线播放 | 亚洲精品韩国 | 国产精品黄色片 | 日本午夜在线视频 | 视色av | 高h调教冰块play男男双性文 | 色又色| a级片久久| 开心激情五月网 | 狠狠干综合网 | 日本三区视频 | 成年免费视频黄网站在线观看 | 可以免费看的毛片 | 在线观看的av | 在线色资源 | 国产美女www| 在哪里可以看毛片 | 操大逼网站 | 一本大道av伊人久久综合 | 三级影片在线播放 | 国产系列在线 | 青青免费视频 | 18禁裸乳无遮挡啪啪无码免费 | 国产精品无码久久久久成人app | 超碰人人草 |