第十二章 TCP:传输控制协议(初步)
在有损通信信道上提供可靠通信的问题已经被研究了许多年。处理差错的两种主要方法是差错校正码和数据重传。使用重传的协议必须也要处理数据丢失,经常通过设置一个计时器来进行,同时还必须要给接收方安排一些方法来告知发送方它已接收了什么。判定等待一个 ACK 要多长时间是比较棘手的,因为合适的时间会随着网络路由或端点上负载的变动而改变。现代协议用基于这些测量值的一些函数来估计往返时间以及设置重传计时器。
不考虑设置重传计时器的话,当同一时间只有一个分组在网络中时,重传协议是很简单,但对于延迟很高的网络,它们的性能会很差。为了更有效率,在一个 ACK 被接收到之前,多个分组必须被注入网络中。这种方法更有效率,但也更复杂。一种管理这些复杂性的典型方法是使用滑动窗口,其中分组用序列号标志,窗口大小限制分组数量。当窗口大小基于来自接收方或其他信号的回馈而改变时,流量控制和拥塞控制两者就都被实现了。
TCP 提供一种可靠、面向连接、字节流、传输层的服务。我们简单地看了 TCP 头部里的所有字段,了解到它们中的大多数都与这些可靠传递的抽象概念有着直接关系。TCP 把应用程序数据组包成报文段,发送数据时设置超时,确认被其他端点接收到的数据,给次序杂乱的数据进行重新排序,丢弃重复的数据,提供端到端的校验和。TCP 在互联网中被广泛使用,不仅许多流行的应用程序使用它,例如 HTTP、SSH/TLS、NetBIOS、Telnet、FTP 以及电子邮件,许多分布式文件共享程序(如:BitTorrent,Shareaza)也使用它。
希望我的总结可以帮助大家,感谢阅读我的博客!