Speaker : Chang Kai-Jia Date : 2010/04/26 UDP Multicast Over IPv6 Speaker : Chang Kai-Jia Date : 2010/04/26
Contents Introduction Multicast Demo Reference IPv6 UDP IP/UDP datagram Multicast Unicast v.s. Multicast IPv6 multicast addresses Demo Server Client Reference
Introduction IPv6 網際網路協定版本6(IPv6)是IPv4的下一代網際網路協定版本。 這是個用於封包交換網際網路(Internetworks)的網路層協定。 重新設計網際網路協定的主要原因是,IPv4位址在可預見的未來中即將被耗盡。 IPv6在1998年12月被網際網路工程任務小組(Internet Engineering Task Force,簡稱IETF)透過公布網際網路標準規範(RFC 2460)的方式定義出來。
Introduction IPv6 IPv6使用了128位元的位址,而IPv4只有32位元。 位址空間支援2128(約3.4 ×1038)個位址。 這一擴充套件提供了靈活的位址分配以及路由轉發,並消除了對網路位址轉換(NAT)的依賴。 NAT是獲得了廣泛部署的減緩IPv4位址耗盡的最有效的方式。 IPv6位址由兩個邏輯部分組成: 一個64位的網路和一個64位的主機位址,主機位址通常根據實體位址自動生成,叫做EUI-64(或者64-位擴充套件唯一標識)
Introduction IPv6 Header: IPv6 Addresses: 例如:2001:0DB8:0000:0000:0000:0000:1428:57ab 2001:0DB8:0::0:1428:57ab 2001:DB8::1428:57ab
Introduction UDP : UDP協定,提供的是一個不可靠(應用層處理)的非連線(Connectionless)的資料傳輸服務,它並不運用確認機制來保證資料是否正確的被接收,不需要重傳遺失的資料,資料的接收也可不必按順序進行,也不提供機制來控制資料流的速度。 需快速但能容忍封包錯誤或失去,像一些即時性(interactive)服務。 Applications: Domain Name System (DNS) streaming media applications such as IPTV Voice over IP (VoIP), Trivial File Transfer Protocol (TFTP)
Introduction UDP : Header: Source Port & Destination Port–來源埠號和目的,各佔16位元(bits)。 UDP Length– 整個封包(header + data)長度,以位元組(byte)為單位,最小值為8(Data size =0)。 Checksum–封包及資料的檢查碼,用作資料正確性的檢查依據。 不一定每個網路設備都會開啟。 16-bit Source Port Destination Port Length Checksum 8 Bytes Data
Introduction IP/UDP datagram: For IPv6
Multicast Unicast &Multicast & Anycast: Unicast:每一個目的位址單獨對應一個接收節點。
Unicast
Multicast
Anyicast
Multicast IPv6 multicast addresses 1111 1111 Flags Scope Group ID Flags : RFC 2373定義 000T-Flags 設定為T=0,多點傳送位址是 Internet Assigned Numbers Authority (IANA) 配置的永久指派 多點傳送位址。 設定為T=1,多點傳送位址是暫時 (非永久指派) 的多點傳送位址。 Scope : RFC 2373定義 1111 1111 Flags Scope Group ID 8 bits 4 bits 4 bits 112 bits 欄位值 1 2 5 8 E 範圍 Node-local Link-local Site-local Organization-local global
Multicast IPv6 multicast addresses Scope : 1111 1111 Flags Scope Node-Local Scope FF01:0:0:0:0:0:0:1 All Nodes Address [RFC4291] FF01:0:0:0:0:0:0:2 All Routers Address [RFC4291] Link-Local Scope FF02:0:0:0:0:0:0:1 All Nodes Address [RFC4291] FF02:0:0:0:0:0:0:2 All Routers Address [RFC4291 ] FF02:0:0:0:0:0:1:2 All-dhcp-agents [RFC3315] 1111 1111 Flags Scope Group ID 8 bits 4 bits 4 bits 112 bits
Multicast IPv6 multicast addresses Scope : 其他規範 Site-Local Scope FF05:0:0:0:0:0:0:2 All Routers Address [RFC4291] FF05:0:0:0:0:0:1:3 All-dhcp-servers [RFC3315] Variable Scope Multicast Addresses FF0X:0:0:0:0:0:0:0 Reserved Multicast Address [RFC4291] FF0X:0:0:0:0:0:1:1000 Service Location, Version 2 [RFC3111] -FF0X:0:0:0:0:0:1:13FF 1111 1111 Flags Scope Group ID 8 bits 4 bits 4 bits 112 bits
Multicast IPv6 multicast addresses Group ID : 識別出多點傳送群組,而且是scope中唯一的。 暫時群組識別碼只與特定領域有關。 保留從 FF01:: 到 FF0F:: 的多點傳送位址 (知名的位址)。 1111 1111 Flags Scope Group ID 8 bits 4 bits 4 bits 112 bits
Multicast IPv6 multicast addresses Group ID : 為了識別節點本機及連結本機領域的所有節點,於是定義了下列多點傳送位址: FF01::1 (節點本機領域所有節點位址) FF02::1 (連結本機領域所有節點位址) 為了識別節點本機、連結本機及站台本機領域的所有節點,於是定義了下列多點傳送位址: FF01::2 (節點本機領域所有路由器位址) FF02::2 (連結本機領域所有路由器位址) FF05::2 (站台本機領域所有路由器位址) 1111 1111 Flags Scope Group ID 8 bits 4 bits 4 bits 112 bits
Demo Service Client clark@2001:e10:6840:21:21a:92ff:fe02:3449 clark@2001:e10:6840:21:21e:90ff:fe32:24e Port:9527 ./service.out Client zigbee@2001:e10:6840:21:4687:fcff:fe41:6c0b clark@2001:e10:6840:21:21a:92ff:fe02:3449 ./client.out
Reference The Design and Implementation of an IPv6/IPv4 Network Address and Protocol Translator -Marc E. Fiuczynski ,Vincent K. Lam Brian , N. Bershad INTERNET PROTOCOL VERSION 6 MULTICAST ADDRESSES http://en.wikipedia.org/wiki/User_Datagram_Protocol http://developerspoint.wordpress.com/2008/06/14/ip- multicast-in-c-linux/ http://cboard.cprogramming.com/networking-device- communication/67469-ipv6-multicast-example- code.html