|
Systems & Networking
Research Interns Each summer the Systems and Networking Research Group at Microsoft Research has several outstanding students from top schools join the group for research internships. Many of the research projects they have pursued have resulted in refereed research publications, including those winning best paper awards. 1998 InternsJosh Broch, Carnegie Mellon UniversityLocation-aware Mobile Systems and ServicesWe are implementing an in-building location-aware system in which wireless mobile nodes can precisely compute their geographic location and use this information to (1) inform other nodes of their location and (2) determine which network resources (e.g., printers, scanners, etc.) are within close proximity. Our system is based on several key technologies: directory services, service location, and location tracking. The directory services component can be satisfied by exploiting functionality in two Microsoft products: Active Directory and the Internet Locator Server (ILS) component of the Internet Information Server (IIS). Service location can in large part be accomplished by querying the directory service, however, as the need arises, we will explore the applicability of the Service Location Protocol (SLP) in our system. Real-time location tracking will initially be done using signal strength measurements obtained from the wireless network access points with future enhancements to include user mobility profiles, mobility modeling and trajectory prediction. Marc Fiuczynski, University of WashingtonIPv6/IPv4 Network Address and Protocol TranslationIPv6 is a new version of the internetworking protocol designed to address the scalability and service shortcomings of the current standard, IPv4. Unfortunately, IPv4 and IPv6 are not directly compatible, so programs and systems designed to one standard can not communicate with those designed to the other. We have designed and implemented a transparent transition service that translates packet headers as they cross between IPv4 and IPv6 networks. The IPv6/IPv4 translator works for a representative set of "real world" applications that exercise TCP, UDP, and ICMP protocols. Our test applications consist of IPv6 versions of ttcp, finger, telnet, ping, traceroute, and ftp, which were able to communicate with their IPv4 counterparts via the translator. Additionally, we were able to view WWW pages served by an IPv6 version of the Apache web-server using IPv4 versions of Netscape and Internet Explore. We believe that an IPv6/IPv4 network address and protocol translator is complementary to other transition strategies from IPv4 to IPv6 (e.g., dual-stack IPv6/IPv4 hosts, Assignment of IPv4 addresses to IPv6 Hosts). In particular, we believe that IPv6/IPv4 translation will be a valuable tool to developers porting applications from IPv4 to IPv6. For instance, a server application ported to IPv6 can be tested without having to port the client as well. More information is available from http://www.cs.washington.edu/research/networking/napt/. Li Li, Cornell UniversityMillennium Falcon -- DCOM over System Area Network (SAN) with Virtual Interface Architecture (VIA)Providing aggressive abstraction, like Single System Image often raises the issue of performance and customizability. Efficient cross-address space communication is the key to solve the performance issue. Traditional RPC and TCP/IP are designed for LAN and WAN. In LAN and WAN, latency has been sacrificed for robustness, generality and distance. These tradeoffs are precisely the wrong set of trade offer for SAN (System Area Network). An RPC optimization for the emerging user level networking architecture is much needed in order to deliver high performance to applications running over SAN. Our SRPC addresses this issue by making tradeoffs specifically for latency and by taking advantage of hardware support for user level networking (VIA). SRPC is intended to be one of the underlying cross-address space communication mechanisms for Millennium System. Upon detecting the underlying network adapter such as VIA, Millennium Systems between the corresponding client and server machine will negotiate and self-configure to run SRPC. Millennium Falcon will provide input to a separate project on componentized infrastructure which addresses the customizability issue. John Regehr, University of VirginiaScheduling Predictability on Windows NTThe goal of the research that Mike Jones and I are doing this summer is to allow Windows NT to concurrently execute independently authored real-time applications. Although NT currently has rudimentary support for real-time applications in the form of high-priority threads, these are insufficient to fairly allocate CPU time to several real-time applications. We are adding two new primitives to a research version of Windows NT. A thread may request a reservation of X milliseconds of CPU every Y milliseconds; reservations are guaranteed until the thread terminates or no longer requires the reservation. A thread may also request a one-shot constraint, which guarantees X milliseconds of CPU time before some deadline. In either case, the request is either granted or rejected as infeasible. Low-level design decisions in Windows NT make it unlikely that we will be able to support applications with very fine-grained timing requirements, but experiments have shown that Windows NT can predictably schedule threads with millisecond resolution. Adam Rifkin, CaltechCharting the Evolution of Internet-Scale Event Notification Services -- Past, Present, and FutureDecomposing distributed work activities into a sequence of events affords greater dynamism than holding each participant to a script. "Loose coupling," an oft-praised quality of the Event-Based Integration (EBI) style of software architecture, emerges because event notifications can decouple sources and sinks in space, time, and topology, and provide a defined interface for the separation of concerns between different handlers. Reflecting on a survey of over one hundred "event-oriented" collaborative systems, we outline an evolutionary explanation of the style's emergence and offer a characterization of current Event Notification Services (ENS). We speculate that the novel challenges of Internet scale - crossing trust boundaries and leveraging economic network effects - motivate a common infrastructure for event distribution and notification. Rob Stets, University of RochesterCOP -- Component Operating system ProxyCOP will be a thin user-level, software layer that places groups of related WIN32 APIs inside their own COM interface wrapper. The layer will be a small part of the overall Millennium distributed system. Millennium will automatically tune a system's performance by transparently distributing and migrating application objects. The goal is to provide these capabilities without requiring any special support from the underlying OS. This raises the problem of how distributed objects will retain the same view of logically shared items such as files, graphics contexts, and Windows registry data. This coherent view of logically shared items is typically called a single system image (SSI). COP will provide an SSI by effectively acting as a traffic cop that directs WIN32 calls to the appropriate host machine. The calls can be transparently remoted via the interface wrappers and DCOM. This will hide the distributed nature of the system from the underlying kernel. Our ultimate goal is to integrate COP into the Millennium system. In addition, an SSI is important in other domains such as ubiquitous computing and large-scale parallel systems. We also expect to leverage COP technology in these areas. Srinivasan (Cheenu) Venkatachary, Washington University in St. LouisAutomatic Router Renumbering for IPv6People Involved: Srinivasan V. (Cheenu), Richard Draves, Christopher King and Brian Zill. Internet routing is based on network prefixes. In today's internet, these prefixes are assigned manually. For IPv6, a goal is to have Automatic Router Renumbering, i.e. automatic network prefix assignment. While that is the final goal of the project, we have worked on phase 1 of accomplishing it. Essentially, this is to do with internet routers becoming 'plug and play': routers would be connected to networks and they should be automatically assigned 'router numbers' or 'prefixes', and the assignment should be such that the routing tables that routers have to maintain all over the internet should be near optimal. While it is not clear we can do this on an internet scale, we hope to accomplish this at least in restricted environments. We have implemented an algorithm called ORTC (Optimal Routing Table Constructor), which can take an existing set of prefixes in a routing table and produce an equivalent set of prefixes, only the produced set has the optimal number of prefixes to represent the same information. Experiments on existing backbone router databases give good results: We found that the Mae East database which has 40,000 prefixes reduces to 23,000 prefixes by applying ORTC. If there are N prefixes in the database, ORTC takes only O(N) time to compute the optimal set. While the experiment was done with IPv4 databases, ORTC is applicable to IPv6 as well. We hope to extend this towards our final goal of automatic router renumbering. Systems and Networking Research Group | Interns from all years |