Operating systems and networks developed largely independently, due to the nature of their development -- operating systems were developed by groups within organizations/companies, while networking requiring interoperability was developed across organizations. As a result of this development history, the boundary between the networking subsystem and the rest of the operating system has remained largely opaque, with little information regarding the performance or progress of transfers being communicated to applications. This research addresses this limitation by exploring a richer boundary interface that allows programs to see the ongoing behavior of network transfers and to control their operation at a fine granularity. These interfaces would augment, rather than replace, the existing interfaces, so the portions of programs that are satisfied with the current interfaces could continue unmodified, and developers could change only the portions that can benefit from richer information. This research is largely experimental in nature, and will combine the design and implementation of new interface abstractions along with the development of new or modified programs to take advantage of these interfaces. In addition to the design work associated with the interfaces, additional criteria for success include examining the performance and delay behavior of modified applications, and the effort needed to modify such applications. The expected results from this work include applications that can more precisely control their networking behavior, reducing memory and processor usage, improving energy efficiency, and improving delay behavior. High-performance or time-sensitive applications, such as networked video, should benefit from this research.