日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

IPv6學習筆記

 

IPv6協議

IPv6學習筆記

 

整體來看,IPv6協議相比IPv4, 格式上簡潔很多:

  • IPv6報文頭部是定長(固定為40字節),IPv4報文頭部是變長的。這個意味著,寫代碼處理IPv6數據報文的效率會提高很多:);
  • IPv6中Hop Limit字段含義類似IPv4的TTL;
  • IPv6中的Traffic Class字段含義類似IPv4中的TOS(Type Of Service);
  • IPv6的報文頭部取消了校驗和字段:取消這個字段也是對IPv4協議的一個改進。當IPv4報文在網路間傳輸,每經過一個路由器轉發就是修改TTL字段,就需要重新計算校驗和,而由于數據鏈路層L2和傳輸層L4的校驗已經足夠強壯,因此IPv6取消這個字段會提高路由器的轉發效率。值得一提的是,在IPv6協議下,傳輸層L4協議UDP、TCP是強制需要進行校驗和的(IPv4是可選的);
  • IPv6報文頭部中的Next Header字段表示“承載上一層的協議類型”或者“擴展頭部類型”。

IPv6的地址語法

IPv6學習筆記

 

一個IPv6的地址使用冒號十六進制表示方法:128位的地址每16位分成一段,每個16位的段用十六進制表示并用冒號分隔開,例如一個普通公網IPv6地址:

2001:0D12:0000:0000:02AA:0987:FE29:9871

IPv6地址支持壓縮前導零的表示方法,例如上面的地址可以壓縮表示為:

2001:12:0:0:2AA:987:FE29:9871

為了進一步精簡IPv6地址,當冒號十六進制格式中出現連續幾段數值0的位段時,這些段可以壓縮為雙冒號的表示,例如上面的地址還可以進一步精簡表示為:

2001:12::2AA:987:FE29:9871

又例如IPv6的地址FF80:0:0:0:FF:3BA:891:67C2可以進一步精簡表示為:

FE80::FF:3BA:891:67C2

這里值得注意的是:雙冒號只能出現一次。

IPv6地址前綴表示法

IPv6支持子網前綴標識方法,類似于IPv4的無分類域間路由CIDR機制(注意:IPv6沒有子網掩碼mask的概念)。

使用IPv6地址/前綴長度表示方法,例如:

2001:C3:0:2C6A::/64表示一個子網;

而2001:C3:0:2C6A:C9B4:FF12:48BC:1A22/64表示該子網下的一個節點地址。

IPv6尋址模式

  • 單播 : 跟ipv4單播一致,在單播尋址模式下,IPv6接口(host)在網段中唯一標識。 IPv6數據包包含源IP地址和目標IP地址。 主機接口配備有在該網絡段中唯一的IP地址。
  • 多播 : IPv6組播模式與IPv4相同。 目的地為多個主機的數據包在特殊的多播地址上發送。 所有對該組播信息感興趣的主機需要首先加入該組播組。 加入組的所有接口接收組播數據包并對其進行處理,而對組播數據不感興趣的其他主機則忽略組播信息。
  • 任播 : IPv6引入了一種新型的尋址,稱為Anycast尋址。 在此尋址模式下,多個接口(host)被分配相同的任播IP地址。 當主機希望與配備有任播IP地址的主機通信時,它發送單播消息。 在復雜的路由機制的幫助下,在路由成本方面,該單播消息被遞送到最接近發送方的主機。

IPv6沒有廣播地址,用組播地址實現廣播的功能。

IPv6單播地址

  • 全球單播地址:前綴2000::/3,相當于IPv4的公網地址。這種地址在全球的路由器間可以路由。
  • 鏈路本地地址:前綴FE80::/10windows和linux支持或開啟IPv6后,默認會給網卡接口自動配置一個鏈路本地地址。也就是說,一個接口一定有一個鏈路本地地址。
  • 唯一本地地址前綴:FC00::/7前綴FC00::和 FD00::的IPV6地址,相當于IPv4的私網地址10.0.0.0、172.16.0.0、192.168.0.0。
  • 回環地址:::1等同于IPv4的127.0.0.1。

面向IPv6的應用開發

Golang服務端

package main
import (
	"fmt"
	"net"
	"net/http"
)
func main() {
	var err error
	http.Handle("/", &helloHandler{})
	// 監聽本地IPv4地址的8083端口
	// err = http.ListenAndServe(":8083", nil)
	// 監聽指定IPv6地址的8083端口
	// err = http.ListenAndServe("[2604:180:3:dd3::276e]:8083", nil)
	// 同時監聽本地IPv4和IPv6地址的8083端口
	err = ListenAndServe(":8083", nil)
	if err != nil { 		
 fmt.Println(err)
	}
}

Curl客戶端

curl "http://[2604:180:3:dd3::276e]:8083"
curl -g -6 'http://[2604:180:3:dd3::276e]:8083/'

Python UDP服務端:

import socket
UDP_IP = "::" # = IPv4 0.0.0.0
UDP_PORT = 5005
sock = socket.socket(socket.AF_INET6, # Internet
						socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))
while True:
	data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
	print "received message:", data

Python UDP客戶端:

import socket
UDP_IP = "::1" # localhost
UDP_PORT = 5005
MESSAGE = "Hello, World!"
print "UDP target IP:", UDP_IP
print "UDP target port:", UDP_PORT
print "message:", MESSAGE
sock = socket.socket(socket.AF_INET6, # Internet
					socket.SOCK_DGRAM) # UDP
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))

分享到:
標簽:IPv6
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定