Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 The Future Of Network Applications: Using The Next-Generation Of Microsoft Networking Technologies ARC382 Sanjay Rao Program Manager Microsoft Corporation.

Similar presentations


Presentation on theme: "1 The Future Of Network Applications: Using The Next-Generation Of Microsoft Networking Technologies ARC382 Sanjay Rao Program Manager Microsoft Corporation."— Presentation transcript:

1 1 The Future Of Network Applications: Using The Next-Generation Of Microsoft Networking Technologies ARC382 Sanjay Rao Program Manager Microsoft Corporation Anthony Jones SDE Microsoft Corporation

2 Agenda Overview of A New Networking Core Solving Networking Challenges: Why IPv6? Using IPv6 to Solve Application Networking Problems Today Eliminating IP Version Dependencies in Applications Highlights of System.Net “Whidbey” Improvements Overview of A New Networking Core Solving Networking Challenges: Why IPv6? Using IPv6 to Solve Application Networking Problems Today Eliminating IP Version Dependencies in Applications Highlights of System.Net “Whidbey” Improvements

3 Tools Client Application Model AvalonWindows Forms Web & Service Application Model ASP.NET / Indigo Win FS Compact Framework Yukon Mobile PC Optimized System.Help System.Drawing System.NaturalLanguageServices Data Systems Application Model Presentation Data Mobile PC & Devices Application Model Communication Command Line NT Service DataSet Mapping ObjectSpaces ObjectSpace Query Schema Item Relationship Media Audio Video Images System.Messaging System. Discovery System.DirectoryServices System.Remoting System.Runtime.Remoting Active Directory Uddi System.Web.Services Web.Service Description Discovery Protocols System.MessageBus Transport Port Channel Service Queue PubSub Router System.Timers System.Globalization System.Serialization System.Threading System.Text System.Design Base & Application Services Fundamentals System.ComponentModel System.CodeDom System.Reflection System.EnterpriseServices System.Transactions Security System.Windows. TrustManagement System.Web. Security System.Message Bus.Security Authorization AccessControl Credentials Cryptography System.Web.Configuration System.MessageBus.Configuration System.Configuration System.Resources System.Management System.Deployment System.Diagnostics ConfigurationDeployment/Management System.Windows System.Windows.Forms System.Console System.ServiceProcess System.Windows.Forms System.Web System.Storage System.Data.SqlServer Animation Controls Control Design Panel Controls Dialogs SideBar Notification System.Windows Documents Text Element Shapes Shape Ink UI Element Explorer Media System.Windows.Forms Forms Control Print Dialog Design System.Web.UI Page Control HtmlControls MobileControls WebControls Adaptors Design Ports InteropServices System.Runtime System.IO System.Collections Generic System.Search Annotations Monitoring Logging Relevance System.Data SqlClient SqlTypes SqlXML OdbcClient OleDbClient OracleClient Core Contact Location Message Document Event System.Storage System.Web Personalization Caching SessionState System.Xml Schema Serialization Xpath Query Permissions Policy Principal Token System.Security System.Collaboration RealTimeEndpoint TransientDataSession SignalingSession Media Activities HttpWebRequest FtpWebListener SslClientStream WebClient System.Net NetworkInformation Sockets Cache System.Web Administration Management Navigation Peer Group Policy Serialization CompilerServices Recognition System.Speech Synthesis

4 Longhorn Next-Generation Networking Revolutionary new TCP/IP stack, IPsec One stack supporting IPv4 & IPv6 Common transport & framing layers Modern protocol support TCP SACK, New Reno By Beta 1, Considering ECN IPv6 works with IP Helper API IPsec IPv6 encryption, authentication, key distribution [By Beta 1] Longhorn TCP/IP includes a new Windows Filtering Platform Supports filtering on every conceivable traffic type Old TCP/IP filter hook & firewall hook not supported Revolutionary new TCP/IP stack, IPsec One stack supporting IPv4 & IPv6 Common transport & framing layers Modern protocol support TCP SACK, New Reno By Beta 1, Considering ECN IPv6 works with IP Helper API IPsec IPv6 encryption, authentication, key distribution [By Beta 1] Longhorn TCP/IP includes a new Windows Filtering Platform Supports filtering on every conceivable traffic type Old TCP/IP filter hook & firewall hook not supported

5 Longhorn Next-Generation Networking Better TCP/IP performance, scalability Receive-Side Scaling (RSS) allows multi- processor systems to process network traffic on all CPUs Checksum, LSO support for IPv6 Support for TCP Offload Engine (TOE) NICs Offload host CPU of overhead from interrupt & protocol processing on sends & receives Big leap beyond checksum, large send offload (LSO) Fully integrated with host stack to keep TOE NIC simple, easier to manage, and more secure Better TCP/IP performance, scalability Receive-Side Scaling (RSS) allows multi- processor systems to process network traffic on all CPUs Checksum, LSO support for IPv6 Support for TCP Offload Engine (TOE) NICs Offload host CPU of overhead from interrupt & protocol processing on sends & receives Big leap beyond checksum, large send offload (LSO) Fully integrated with host stack to keep TOE NIC simple, easier to manage, and more secure

6 Longhorn Next-Generation Networking NOT changing in Longhorn’s TCP/IP stack: Functionality, interoperability, protocol conformance, application compatibility Public IP Helper API & TDI interface support TDI client binaries continue to work Don’t rely on undocumented APIs or behaviors! NOT changing in Longhorn’s TCP/IP stack: Functionality, interoperability, protocol conformance, application compatibility Public IP Helper API & TDI interface support TDI client binaries continue to work Don’t rely on undocumented APIs or behaviors!

7 7 TCP Offload With Adaptec TOE NIC & Windows TCP/IP

8 Apps Requiring End to End Connectivity: Real-Time Communications Instant messaging, voice, video Real-time game play / collaboration Collaboration Project workspaces solving a need Sharing your files with other people Shared experiences Concert, company meeting, class Distribution of product updates Real-Time Communications Instant messaging, voice, video Real-time game play / collaboration Collaboration Project workspaces solving a need Sharing your files with other people Shared experiences Concert, company meeting, class Distribution of product updates

9 Today’s Network Dynamics Rising demand for peer-to-peer applications Unequal worldwide V4 address allocation More wireless mobile devices need networking End-to-end experience is broken NATs are widely deployed in networks Homes, WiFi hotspots, enterprises, branch offices Networks have a mix of private and public IP addresses Users and applications becoming more mobile Rising demand for peer-to-peer applications Unequal worldwide V4 address allocation More wireless mobile devices need networking End-to-end experience is broken NATs are widely deployed in networks Homes, WiFi hotspots, enterprises, branch offices Networks have a mix of private and public IP addresses Users and applications becoming more mobile

10 Scenario: Peer-To-Peer Example: End to End File Transfer With NAT: Need to learn the address of receiving NAT Need to learn the open port of receiving NAT Need NAT-aware application or application-aware NAT Difficult to give your IP address to 3 rd parties as it is private. HomeLAN Internet / Public IP P1 NAT HomeLAN P2 NAT 192.168.1.2 Private IP 192.168.1.2 Private IP How do we connect ?

11 NAT Pain ISVs building custom NAT traversal Solutions MSN, Xbox echo Remote Assistance/ TS DMZ server Use client/server rather than peer connectivity Complicated workarounds and manual configuration ISVs building custom help tools Windows Messenger Expensive to build, deploy, support! ISVs building custom NAT traversal Solutions MSN, Xbox echo Remote Assistance/ TS DMZ server Use client/server rather than peer connectivity Complicated workarounds and manual configuration ISVs building custom help tools Windows Messenger Expensive to build, deploy, support!

12 We’re Outgrowing IPv4 Need to be able to traverse existing NATs Need to do better than IPv4’s 60+ second ad hoc connectivity time Need to be able to rely on IP security being present Need a bigger address space to carry us forward Need to be able to traverse existing NATs Need to do better than IPv4’s 60+ second ad hoc connectivity time Need to be able to rely on IP security being present Need a bigger address space to carry us forward

13 IPv6 Addresses Key Challenges Enables end-to-end connectivity More public addresses worldwide Improved allocation for ISPs to provision public addresses Eliminates need for NATs and private addresses In NAT-based environment, transition technology restores connectivity as appropriate Security for end-to-end trustworthy networking IPSec enables host-based authentication and security to augment edge-based security or obscurity Anonymous and temporary addresses provide privacy across multiple sessions Address Assignment Standard methods still work over IPv6 (DHCP) Auto-configuration through RS/RA Enables end-to-end connectivity More public addresses worldwide Improved allocation for ISPs to provision public addresses Eliminates need for NATs and private addresses In NAT-based environment, transition technology restores connectivity as appropriate Security for end-to-end trustworthy networking IPSec enables host-based authentication and security to augment edge-based security or obscurity Anonymous and temporary addresses provide privacy across multiple sessions Address Assignment Standard methods still work over IPv6 (DHCP) Auto-configuration through RS/RA

14 What Is IPv6? Fact: IETF standard (RFCs 2460, 2463, 2373, 3056…) Larger address space IPv4 addresses are 32-bits long (10^9 addresses) IPv6 addresses are 128 bits long (10^38 addresses) ex. fe80::5efe:172.28.94.87%2 Fiction: Reasons for IPv6 have been eliminated by the development of Network Address Translation (NAT) A complete replacement of the current Internet that will require a “cut-over” Fact: IETF standard (RFCs 2460, 2463, 2373, 3056…) Larger address space IPv4 addresses are 32-bits long (10^9 addresses) IPv6 addresses are 128 bits long (10^38 addresses) ex. fe80::5efe:172.28.94.87%2 Fiction: Reasons for IPv6 have been eliminated by the development of Network Address Translation (NAT) A complete replacement of the current Internet that will require a “cut-over”

15 More Addresses Global Addresses 3ffe:8311:ffff:f282:204:76ff:feeb:be79 Site Local Addresses fec0::f282:204:76ff:feeb:be79%2 Link Local Addresses fe80::202:2dff:fe70:e023%1 Tunneling Addresses 2002:8040:37c6::8040:37c6 Temporary Addresses Based on Need 3ffe:8311:ffff:f282:204:76ff:feeb:be80 Global Addresses 3ffe:8311:ffff:f282:204:76ff:feeb:be79 Site Local Addresses fec0::f282:204:76ff:feeb:be79%2 Link Local Addresses fe80::202:2dff:fe70:e023%1 Tunneling Addresses 2002:8040:37c6::8040:37c6 Temporary Addresses Based on Need 3ffe:8311:ffff:f282:204:76ff:feeb:be80

16 IPV6 Transition Technology 6to4 tunneling Provides IPv6 connectivity over the public IPv4 Internet IPv6 traffic tunneled within IPv4 6to4 addresses can be provided by routers, home gateway devices, Windows ICS or by the host itself ISATAP Provides IPv6 connectivity over IPv4 intranets IPv6 tunneled within IPv4 Provides corporations with a central location to provision IPv6 addresses to IPv4 hosts Can serve as a router between native IPv6 hosts and ISATAP tunneled IPv6 users Teredo Provides IPv6 connectivity when clients are behind a IPv4 NAT IPv6 tunneled over UDP/IPv4 Uses servers to facilitate the creation of global IPv6 addresses for Teredo clients Enable Teredo on a socket: setsockopt (socket, IPV6_PROTECTION_LEVEL, PROTECTION_LEVEL_UNRESTRICTED); 6to4 tunneling Provides IPv6 connectivity over the public IPv4 Internet IPv6 traffic tunneled within IPv4 6to4 addresses can be provided by routers, home gateway devices, Windows ICS or by the host itself ISATAP Provides IPv6 connectivity over IPv4 intranets IPv6 tunneled within IPv4 Provides corporations with a central location to provision IPv6 addresses to IPv4 hosts Can serve as a router between native IPv6 hosts and ISATAP tunneled IPv6 users Teredo Provides IPv6 connectivity when clients are behind a IPv4 NAT IPv6 tunneled over UDP/IPv4 Uses servers to facilitate the creation of global IPv6 addresses for Teredo clients Enable Teredo on a socket: setsockopt (socket, IPV6_PROTECTION_LEVEL, PROTECTION_LEVEL_UNRESTRICTED);

17 17 Traversing NATs With IPv6 DEMO

18 Teredo On One Slide 157.1.1.1 NAT Send request to service, get back IPv6 address (e.g., XX:IPv4:port::/64) 1 Send a bubble to the destination address to open our NAT mapping 2 Send the packet to server for delivery to destination 3 Future traffic can be send directly to nodes 5XX::9D01:101:460:XX XX::AC01:101:464:XX 172.1.1.1 NAT Perform the same exact steps on the destination to create a mapping in that NAT 4 IPv4 Internet Teredo servers

19 6to4 On One Slide Public IPv4 Internet ISP DHCPv4 6to4 IGD Alice’s ICS machine Alice’s Desktop Bob’s Desktop Bob’s Home Gateway ISP provides basic IPv4 connectivity 1 IPv4 address: 69.4.174.83 IPv4 address: 128.124.8.2 IPv6 address: 2002:454:AE53:e892:9d3c:d7b:7b29 Windows or 6to4 IGDs create 6to4 address using 2002: prefix + colon hexadecimal notation of public IPv4 address + MAC address 2 IPv6 Site Prefix: 2002:807C:82 /48 IPv6 Address: 2002:807C:82:8D3f:a35f:3i2:3dE Windows ICS or 6to4 IGDs can use 2002: + colon hexadecimal notation as a site prefix to provision additional clients 3 IPv6 Site Prefix: 2002:454:AE53 /48 Other PCs can then receive IPv6 addresses from IGD or Windows ICS 4 IPv6 Address: 2002:807C:82:F43:2d39::AC23:2F IPv6 Address: 2002:454:AE53:2d39::AC23:2F Mike and John’s Desktop PCs now have direct connectivity via 6to4 tunneling as long as their public IPv4 addresses do not change 5

20 Microsoft IPv6 Status Operating system support Windows XP SP1a and Windows Server 2003 (“netsh int ipv6 install”) Windows CE.NET, Pocket PC (2003), Windows Embedded SP1 Windows XP Advanced Networking Pack – IPv6 NAT traversal (Teredo), IPv6 host firewall Windows Longhorn, on by default & preferred Developer support.Net Framework, Winsock, HTTP, RPC, DPlay, Peer to Peer SDK, Visual Studio. IPv6 application porting tools and guidelines Applications support IIS 6.0, IE 6.0, Windows Media Server & Client, File Sharing (Windows 2003), DNS Server (client on Windows 2003) MSN Messenger file sharing 3 Degrees www.threedegrees.com P2P SDK, Requires IPv6www.threedegrees.com Operating system support Windows XP SP1a and Windows Server 2003 (“netsh int ipv6 install”) Windows CE.NET, Pocket PC (2003), Windows Embedded SP1 Windows XP Advanced Networking Pack – IPv6 NAT traversal (Teredo), IPv6 host firewall Windows Longhorn, on by default & preferred Developer support.Net Framework, Winsock, HTTP, RPC, DPlay, Peer to Peer SDK, Visual Studio. IPv6 application porting tools and guidelines Applications support IIS 6.0, IE 6.0, Windows Media Server & Client, File Sharing (Windows 2003), DNS Server (client on Windows 2003) MSN Messenger file sharing 3 Degrees www.threedegrees.com P2P SDK, Requires IPv6www.threedegrees.com

21 21 Networking Programming Winsock to Whidbey

22 Porting Applications To IPv6 Most applications can be written in a protocol-independent fashion E.g., telnet client took < 2 hours to port to be protocol-independent Use protocol-independent APIs wherever possible System.Net, Winsock, RPC, DPlay, etc. Upper-layer APIs/classes which don’t deal with addresses are not affected E.g., HttpWebRequest, WebClient, ASP.NET, XML Web Services get support for free as a result Most applications can be written in a protocol-independent fashion E.g., telnet client took < 2 hours to port to be protocol-independent Use protocol-independent APIs wherever possible System.Net, Winsock, RPC, DPlay, etc. Upper-layer APIs/classes which don’t deal with addresses are not affected E.g., HttpWebRequest, WebClient, ASP.NET, XML Web Services get support for free as a result

23 IPv6 Porting Considerations IPv6 addresses are bigger (128-bits) All interfaces typically have multiple addresses Don’t identify an interface via an address Non-global addresses aren’t unique anyway Automatic tunneling schemes mean you always have multiple interfaces Addresses can be configured automatically From prefixes advertised by routers From IPv4 addresses (for tunneling) Non-global addresses have scope identifiers Removes ambiguity when multi-homed IPv6 addresses are bigger (128-bits) All interfaces typically have multiple addresses Don’t identify an interface via an address Non-global addresses aren’t unique anyway Automatic tunneling schemes mean you always have multiple interfaces Addresses can be configured automatically From prefixes advertised by routers From IPv4 addresses (for tunneling) Non-global addresses have scope identifiers Removes ambiguity when multi-homed

24 Name Resolution.NET Framework: Just use Dns.Resolve(), no change Winsock: Use getaddrinfo(), not gethostbyname() Use getnameinfo(), not gethostbyaddr() Multiple interfaces, and multiple addresses on interfaces now commonplace Don’t reorder addresses yourself Dns.Resolve / getaddrinfo orders them for you Don’t just try the first address and throw out the rest Use/store names or socket addresses.NET Framework: Just use Dns.Resolve(), no change Winsock: Use getaddrinfo(), not gethostbyname() Use getnameinfo(), not gethostbyaddr() Multiple interfaces, and multiple addresses on interfaces now commonplace Don’t reorder addresses yourself Dns.Resolve / getaddrinfo orders them for you Don’t just try the first address and throw out the rest Use/store names or socket addresses

25 Client Apps Using System.Net Resolve names before opening socket Dns.Resolve(...) Socket s = new Socket( ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp); Connect(...)NOT: Socket s = new Socket( AddressFamily.InterN etwork, SocketType.Stream, ProtocolType.Tcp); Dns.Resolve(...)connect(...) Using System.Net Resolve names before opening socket Dns.Resolve(...) Socket s = new Socket( ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp); Connect(...)NOT: Socket s = new Socket( AddressFamily.InterN etwork, SocketType.Stream, ProtocolType.Tcp); Dns.Resolve(...)connect(...) Using WinSock Resolve names before opening socket getaddrinfo(...) s = socket( ai->ai_family, ai->ai_socktype, ai->ai_protocol); connect(...)NOT: s = socket(AF_INET, SOCK_xxx, 0); gethostbyname(...)connect(...)

26 Core Sockets Functions Core APIs Don’t Change Use IPv6 Family and Address Structures.NET Socket() uses AddressFamily.InterNetwork6 Winsock socket() Uses PF_INET6 Functions that pass addresses, e.g.: Socket.Bind(), bind() Socket.Connect(), connect() Socket.SendTo(), sendto() Functions that return addresses, e.g.: Socket.RecvFrom() Socket.RemoteEndpoint, getpeername() Socket.LocalEndpoint, getsockname() Core APIs Don’t Change Use IPv6 Family and Address Structures.NET Socket() uses AddressFamily.InterNetwork6 Winsock socket() Uses PF_INET6 Functions that pass addresses, e.g.: Socket.Bind(), bind() Socket.Connect(), connect() Socket.SendTo(), sendto() Functions that return addresses, e.g.: Socket.RecvFrom() Socket.RemoteEndpoint, getpeername() Socket.LocalEndpoint, getsockname()

27 Use Sockaddr_storage sockaddr and sockaddr_in too small for IPv6 DON’T store addresses in DWORDs or ULONGs! sockaddr_storage is big enough to hold either IPv4 or IPv6 (or anything else, with room to spare…) Don’t forget to store sockaddr length too, to be protocol-independent Or dynamically allocate the right length returned from various APIs sockaddr and sockaddr_in too small for IPv6 DON’T store addresses in DWORDs or ULONGs! sockaddr_storage is big enough to hold either IPv4 or IPv6 (or anything else, with room to spare…) Don’t forget to store sockaddr length too, to be protocol-independent Or dynamically allocate the right length returned from various APIs

28 28 Single Listening Socket Accepting IPv4 & IPv6 Connections

29 Example Client Code public Socket GetSocket(string host, int port) { Socket s = null; IPHostEntry iphe = Dns.Resolve(host); foreach(IPAddress ipa in iphe.AddressList) { IPEndPoint ipe = new IPEndPoint(ipa, port); Socket tmp = new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp); try { tmp.Connect(ipe); s = tmp; break; } catch (Exception ae) { Console.WriteLine(“Connection failed: “ + ae.ToString()); } return s; } public Socket GetSocket(string host, int port) { Socket s = null; IPHostEntry iphe = Dns.Resolve(host); foreach(IPAddress ipa in iphe.AddressList) { IPEndPoint ipe = new IPEndPoint(ipa, port); Socket tmp = new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp); try { tmp.Connect(ipe); s = tmp; break; } catch (Exception ae) { Console.WriteLine(“Connection failed: “ + ae.ToString()); } return s; }

30 “But I Need My Binary To Work On Legacy Platforms!” No problem! Just use protocol-independent code, even new APIs If you compile using latest SDK, getaddrinfo API will be available no matter what platform you run on Include wspiapi.h Resulting binary automatically detects whether functions are available natively, and if not, maps them to IPv4-only APIs To disable, define _WIN32_WINNT to be >= 0x0500 No problem! Just use protocol-independent code, even new APIs If you compile using latest SDK, getaddrinfo API will be available no matter what platform you run on Include wspiapi.h Resulting binary automatically detects whether functions are available natively, and if not, maps them to IPv4-only APIs To disable, define _WIN32_WINNT to be >= 0x0500

31 The Checkv4 Utility Parses Winsock Code for IPv4 Specific Usages Finds Problem Areas and Suggests Changes: test.c(35) : gethostbyname : use getaddrinfo instead test.c(48) : SOCKADDR_IN : use SOCKADDR_STORAGE instead, or use SOCKADDR_IN6 in addition for IPv6 support Located: Platform SDK Parses Winsock Code for IPv4 Specific Usages Finds Problem Areas and Suggests Changes: test.c(35) : gethostbyname : use getaddrinfo instead test.c(48) : SOCKADDR_IN : use SOCKADDR_STORAGE instead, or use SOCKADDR_IN6 in addition for IPv6 support Located: Platform SDK

32 Whidbey System.Net Features Socket security Improved socket performance Network information Socket security Improved socket performance Network information

33 Whidbey Socket Security Secure Sockets Layer (SSL) Enables apps to create secure connections Implemented as Streams: SslClientStream and SslServerStream Constructed from a NetworkStream Certificate based Secure Sockets Layer (SSL) Enables apps to create secure connections Implemented as Streams: SslClientStream and SslServerStream Constructed from a NetworkStream Certificate based

34 Whidbey Socket Security Socket authentication Allows credentials to be passed on a stream Based on Windows security Implemented as System.Net.Authenticator class Provides client and server functionality Details still under development Socket authentication Allows credentials to be passed on a stream Based on Windows security Implemented as System.Net.Authenticator class Provides client and server functionality Details still under development

35 Better Whidbey Performance Accept and Connect completion port based TransmitFile support added Scatter/gather I/O Async support added to TcpClient and TcpListener Accept and Connect completion port based TransmitFile support added Scatter/gather I/O Async support added to TcpClient and TcpListener

36 Network Information Notification of network events Addresses added, cable unplugged, etc. Enumerate network cards Media type, card status, etc. Ping class Obtain IP statistics and information Open connections, port info, UDP statistics, etc. Notification of network events Addresses added, cable unplugged, etc. Enumerate network cards Media type, card status, etc. Ping class Obtain IP statistics and information Open connections, port info, UDP statistics, etc.

37 Longhorn WinSock Enhancements WSASendMsg() WSAPoll() Kernel Sockets Best API for new kernel networking development in Longhorn Far simpler than TDI, easier to write and maintain WSASendMsg() WSAPoll() Kernel Sockets Best API for new kernel networking development in Longhorn Far simpler than TDI, easier to write and maintain

38 Summary “Longhorn” includes key improvements in core networking New, modern TCP/IP with pervasive IPv6 support IPv6 can help you solve application networking problems today on shipping Windows releases and “Longhorn” Write protocol independent code Whidbey System.Net eases development and supports better performance & new capabilities Most managed apps just work over IPv6 “Longhorn” includes key improvements in core networking New, modern TCP/IP with pervasive IPv6 support IPv6 can help you solve application networking problems today on shipping Windows releases and “Longhorn” Write protocol independent code Whidbey System.Net eases development and supports better performance & new capabilities Most managed apps just work over IPv6

39 Related Sessions ARC480 (Tue 5:15) Programming with System.Net “Whidbey” WSV306 Indigo (Wed 5:00): Building peer- to-peer applications ARC343 (Tue 5:15) Longhorn Identity System CLI310 (Tue 5:15): People & Groups People and Groups CLI380 (Mon 1:30): Integrating RTC into your applications ARC480 (Tue 5:15) Programming with System.Net “Whidbey” WSV306 Indigo (Wed 5:00): Building peer- to-peer applications ARC343 (Tue 5:15) Longhorn Identity System CLI310 (Tue 5:15): People & Groups People and Groups CLI380 (Mon 1:30): Integrating RTC into your applications

40 Resources http://www.microsoft.com/ipv6 Public newsgroups: microsoft.public.platformsdk.networking.ipv6 microsoft.public.win32.programmer.networks microsoft.public.win2000.networking Suggested Microsoft Press reading “Understanding IPv6”, Joseph Davies “Network Programming for Microsoft Windows”, Anthony Jones, Jim Ohlund “Network Programming for the Microsoft.NET Framework”, Anthony Jones, Jim Ohlund, Lance Olson Feedback: mailto:tcpipfb@microsoft.commailto:tcpipfb@microsoft.com http://www.microsoft.com/ipv6 Public newsgroups: microsoft.public.platformsdk.networking.ipv6 microsoft.public.win32.programmer.networks microsoft.public.win2000.networking Suggested Microsoft Press reading “Understanding IPv6”, Joseph Davies “Network Programming for Microsoft Windows”, Anthony Jones, Jim Ohlund “Network Programming for the Microsoft.NET Framework”, Anthony Jones, Jim Ohlund, Lance Olson Feedback: mailto:tcpipfb@microsoft.commailto:tcpipfb@microsoft.com

41 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

42


Download ppt "1 The Future Of Network Applications: Using The Next-Generation Of Microsoft Networking Technologies ARC382 Sanjay Rao Program Manager Microsoft Corporation."

Similar presentations


Ads by Google