T C P首部可以包含选项部分(图 1 7 - 2)。仅在最初的T C P规范中定义的选项是选项表结束、无操作和最大报文段长度。在我们的例子中,几乎每个 S Y N报文段中我们都遇到过M S S选项。
新的R F C,主要是RFC 1323 [Jacobson, Braden和Borman 1992],定义了新的T C P选项,这些选项的大多数只在最新的 T C P实现中才能见到(我们将在第 2 4章介绍这些新选项)。图1 8 - 2 0显示了当前T C P选项的格式,这些选项的定义出自于 RFC 793和RFC 1323。
每个选项的开始是1字节k i n d字段,说明选项的类型。k i n d字段为0和1的选项仅占1个字节。其他的选项在k i n d字节后还有l e n字节。它说明的长度是指总长度,包括 k i n d字节和l e n字节。
设置无操作选项的原因在于允许发方填充字段为 4字节的倍数。如果我们使用 4 . 4 B S D系统进行初始化T C P连接,t c p d u m p将在初始的S Y N上显示下面T C P选项:<mss 512, nop, wscale 0, nop, nop, timestamp 146647 0>
M S S选项设置为5 1 2,后面是N O P,接着是窗口扩大选项。第一个 N O P用来将窗口扩大选项填充为4字节的边界。同样, 1 0字节的时间戳选项放在两个 N O P后,占1 2字节,同时使两个 4字节的时间戳满足4字节边界。
其他k i n d值为4、5、6和7的四个选项称为选择A C K及回显选项。由于回显选项已被时间戳选项取代,而目前定义的选择 A C K选项仍未定论,并未包括在RFC 1323中,因此图1 8 - 2 0没有将它们列出。另外,作为 T C P事务(第2 4 . 7节)的T / T C P建议也指明kind为11, 12和 13的三个选项。