【正文】
器回送 ICMPv6 Time exceed,目的端回送 ICMPv6 UDP port unreachable ? 對于每個 Hop Limit值,源端發(fā)送三個 UDP報文 ? Hop Limit設置最大為 30, IP載荷 24字節(jié) ? 一些問題 ? 中間路由器不回送或者過濾 ICMPv6錯誤報文 ? 中間路由器限制 ICMPv6錯誤報文的發(fā)送速率 內(nèi)容 ? IPv6應用現(xiàn)狀 ? 支持 IPv6的操作系統(tǒng) ? 安裝 IPv6 ? 使用 IPv6 ? 深入 Linux IPv6 以下討論主要基于 Linux IPv6相關代碼主要位于內(nèi)核的 ~//ipv6目錄下 Linux網(wǎng)絡協(xié)議棧實現(xiàn)層次 ?BSD socket層:這一部分處理 BSD socket相關操作,每個 socket在內(nèi)核以struct socket結構體現(xiàn) ?INET socket層: BSD socket是個可以用于各種網(wǎng)絡協(xié)議的接口,而當用于tcp/ip,即建立了 AF_INET/AF_INET6形式的 socket時,還需要保留些額外的參數(shù),于是就有了 struct sock結構 ?TCP/UDP層:處理傳輸層的操作 ?IPv4/IPv6層:處理網(wǎng)絡層的操作,網(wǎng)絡層用 struct packet_type結構表示 ?數(shù)據(jù)鏈路層(設備驅動程序):每個網(wǎng)絡設備以 struct _device表示 E t h e r n e tI P v 4 / I P v 6A R P P P P / S L P . . .T C P / U D PI N E T S o c k e tB S D S o c k e t數(shù) 據(jù) 鏈 路 層內(nèi) 核 空 間用 戶 空 間應 用 程 序 IPv6數(shù)據(jù)包外出處理( 1) ? 在數(shù)據(jù)發(fā)送前,建立 socket ? 用戶程序 ... int sockfd。 … 然后調(diào)用實際設備驅動程序的數(shù)據(jù)發(fā)送函數(shù) IPv6數(shù)據(jù)包進入處理 ? 數(shù)據(jù)鏈路層 ? 當接收到 IPv6數(shù)據(jù)包時,設備產(chǎn)生一個硬件中斷,然后將數(shù)據(jù)包放到隊列中等待。 ... ? BSD socket層 ? 通過 0x80中斷進入系統(tǒng)內(nèi)核,調(diào)用 sock_create等函數(shù),生成struct socket結構并且初始化 ? INET socket層 ? 調(diào)用 i6_create等函數(shù),生成 struct sock結構并且初始化 IPv6數(shù)據(jù)包外出處理( 2) ? 發(fā)送 IPv6數(shù)據(jù) ? 用戶程序 ... write(sockfd,Hello,strlen(Hello))。最后運行 C:\IPv6Kit\IPv6中的 ? 重啟 ,右鍵“網(wǎng)上鄰居”,選擇“本地連接”,安裝 IPv6協(xié)議棧 Linux操作系統(tǒng) ? ? 編譯內(nèi)核時的選項 (.config) ? CONFIG_EXPERIMENTAL=y ? IPv6在還只是內(nèi)核中的一個試驗功能 ? CONFIG_MODULES=y ? 內(nèi)核支持模塊,使得 IPv6可以編譯成模塊的形式 ? CONFIG_NET=y ? 選擇網(wǎng)絡支持 ? CONFIG_INET=y ? 支持 TCP/IP協(xié)議 ? CONFIG_IPv6=y/m ? y:編譯到內(nèi)核里 ? m:以模塊的形式編譯 ? CONFIG_PROC ? 虛擬文件系統(tǒng)可以顯示 IPv6等系統(tǒng)狀態(tài)信息 ? /proc/, /proc/sys/ ? ? 編譯選項一樣 ? 可能需要升級模塊加載 /卸載工具 ? modu