210 likes | 449 Views
UDP MULTICAST OVER IPV6. Speaker : Chang Kai-Jia Date : 2010/04/26. CONTENTS. Introduction IPv6 UDP IP/UDP datagram Multicast Unicast v.s. Multicast IPv6 multicast addresses Demo Server Client Reference. INTRODUCTION. IPv6 網際網路協定版本 6 ( IPv6 )是 IPv4 的下一代網際網路協定版本。
E N D
UDP MULTICASTOVER IPV6 Speaker : Chang Kai-Jia Date : 2010/04/26
CONTENTS • Introduction • 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: • IPv6位址為128位元長度,通常寫做8組每組四個十六進制的形式。 例如: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 Source Port Destination Port • UDP : • Header: • Source Port & Destination Port–來源埠號和目的,各佔16位元(bits)。 • UDP Length– 整個封包(header + data)長度,以位元組(byte)為單位,最小值為8(Data size =0)。 • Checksum–封包及資料的檢查碼,用作資料正確性的檢查依據。 不一定每個網路設備都會開啟。 16-bit 16-bit Length Checksum 16-bit 16-bit 8 Bytes Data
INTRODUCTION • IP/UDP datagram: For IPv6
MULTICAST • Unicast &Multicast & Anycast: • Unicast:每一個目的位址單獨對應一個接收節點。 • Multicast:每一個目的位址對應一群可以接收資訊的節點。 • Anycast:每一個節點對應一群接收節點,但在任何給定時間,只有其中之一可以接收到傳送端來的資訊。
MULTICAST • IPv6 multicast addresses • 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
MULTICAST • IPv6 multicast addresses • 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中唯一的。 • 永久指派的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 • 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 • Port:9527 • ./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