Technological advances are enabling new satellite communications systems that combine broadband data rates with small terminals. These novel systems are being designed to provide affordable "last-mile" network access to home and small business users worldwide. In particular, two types of advanced broadband satellite systems are under development: high-power satellites deployed at traditional geostationary (GEO) orbits, and large constellations of satellites deployed at much lower (LEO) orbits. In this report, we explore research problems that have arisen from the attempt to use GEO satellites to provide Internet access. In particular, performance of the Internet's Transmission Control Protocol (TCP) is degraded by the high latency and high degree of bandwidth asymmetry present in such systems, and the degradation is compounded by the packet-level congestion found in today's Internet. We first study whether TCP's congestion avoidance algorithm can be adjusted to provide better fairness when satellite connections are forced to share bottleneck links with other (shorter delay) connections. Our data suggests that adjustments of the policy used in that algorithm may yield substantial fairness benefits without compromizing utilization. We next demonstrate how minor variations in TCP implementations can have drastic performance implications when used over satellite links (such as a reduction in file transfer throughput by over half), and from our observations construct a satellite-optimized TCP implementation, using standardized options, that achieves good file transfer performance when congestion is light. We explore the performance of TCP for short data transfers such as Web traffic, and find that two experimental options relating to how TCP starts a connection, when used together, could reduce the user-perceived latency by a factor of two to three. However, because not all of these options are likely to be deployed on a wide scale, and because even the best satellite-optimized TCP implementation is vulnerable to the fairness problems identified above, we explore the performance benefits of splitting a TCP connection at a protocol gateway within the satellite network, and find that such an approach can allow the performance of the satellite connection to approach that of a non-satellite connection. Our results illustrate many of the remaining challenges facing TCP performance over GEO satellite links while also demonstrating techniques that can be used to optimize performance in many satellite networks.