TCP/IP详解卷1:协议(十)【TCP:传输控制协议, TCP连接的建立与终止】

BOOTP使用UDP,且通常需与TFTP协同工作。

BOOTP 的分组格式

这里写图片描述

这里写图片描述

BOOTP有两个熟知端口:BOOTP服务器为67,BOOTP客户为68。这意味着BOOTP客户不会选择未用的临时端口,而只用端口68。选择两个端口而不是仅选择一个端口为BOOTP服务器用的原因是:服务器的应答可以进行广播(但通常是不用广播的)。

BOOTP服务器比ARP服务器更易于实现,因为BOOTP请求和应答是在UDP数据报中,而不是特殊的数据链路层帧。一个路由器还能作为真正 BOOTP服务器的代理,向位于不同网络的真正BOOTP服务器转发客户的BOOTP请求。RARP是链路层广播,不会被路由器转发。


TCP提供一种面向连接的、可靠的字节流服务。

TCP通过下列方式来提供可靠性。

  1. 应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。
  2. 超时重传
  3. 需要确认
  4. 保持首部和数据的检验和
  5. 数据后重新排序
  6. 丢弃重复
  7. 流量控制

TCP不在字节流中插入记录标识符。我们将这称为字节流服务。 TCP对字节流的内容不作任何解释。

TCP首部

这里写图片描述

TCP首部的数据格式。如果不计任选字段,它通常是20个字节。

这里写图片描述

每个TCP段都包含源端和目的端的端口号,用于寻找发端和收端应用进程。这两个值加上IP首部中的源端IP地址和目的端IP地址唯一确定一个TCP连接。有时,一个IP地址和一个端口号也称为一个插口(socket)。

每个传输的字节都被计数,确认序号包含发送确认的一端所期望收到的下一个序号。

TCP为应用层提供全双工服务。这意味数据能在两个方向上独立地进行传输。

检验和覆盖了整个的TCP报文段:TCP首部和TCP数据。这是一个强制性的字段,一定是由发端计算和存储,并由收端进行验证。 TCP检验和的计算和UDP检验和的计算相似,使用一个伪首部。

许多流行的应用程序如Telnet、 Rlogin、FTP和SMTP都使用TCP。


建立一个连接需要三次握手,而终止一个连接要经过4次握手。

为了建立一条TCP连接:

  1. 请求端(通常称为客户)发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号。这个 SYN段为报文段1 。
  2. 服务器发回包含服务器的初始序号的SYN报文段(报文段2)作为应答。同时,将确认序号设置为客户的ISN加1 以对客户的 SYN报文段进行确认。一个SYN将占用一个序号。
  3. 客户必须将确认序号设置为服务器的ISN加1 以对服务器的SYN报文段进行确认(报文段 3)。

这里写图片描述

这里写图片描述

最大报文段长度

最大报文段长度MSS表示TCP传往另一端的最大块数据的长度。当一个连接建立时,连接的双方都要通告各自的MSS。

MSS让主机限制另一端发送数据报的长度。加上主机也能控制它发送数据报的长度,这将使以较小MTU连接到一个网络上的主机避免分段。

TCP的半关闭

TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。

这里写图片描述

TCP的状态变迁图

这里写图片描述

复位报文段

TCP首部中的RST比特是用于“复位”的。一般说来,无论何时一个报文。段发往基准的连接( referenced connection)出现错误,TCP都会发出一个复位报文段(这里提到的“基准的连接”是指由目的 I P地址和目的端口号以及源 I P地址和源端口号指明的连接)。

产生复位的一种常见情况是当连接请求到达时,目的端口没有进程正在听。对于 UDP,我们在6 . 5 节看到这种情况,当一个数据报到达目的端口时,该端口没在使用,它将产生一个 I C M P端口不可达的信息。而 TCP则使用复位。

异常终止一个连接,或者检测半打开连接都需要发送一个复位报文段。

同时打开

两个应用程序同时彼此执行主动打开的情况是可能的。每一方必须发送一个SYN,且这些SYN 必须传递给对方。这需要每一方使用一个对方熟知的端口作为本地端口。这又称为同时打开。

这里写图片描述

同时关闭

这里写图片描述

TCP选项

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值