TCP知识1

本文详细介绍了TCP协议的数据封装,包括源端和目的端的端口号、序号和确认序号的用途,以及首部长度、标志比特、窗口大小等关键字段。还讨论了TCP的三次握手建立连接过程,主动和被动关闭机制,以及RST报文段在异常关闭中的作用。此外,文章探讨了MSS(最大报文段大小)对网络传输效率的影响,分析了不同MSS值对处理时间和带宽利用的影响,强调了路径MTU发现机制的重要性。
摘要由CSDN通过智能技术生成

1、TCP数据被封装在一个IP数据报中,如图所示:


其中TCP的格式是:



  • 源端和目的端的端口号:用于TCP的多路复用和多路分解,即标识发端和收端应用进程。
  • 序号:标识字节流。TCP用序号对字节流中的每个字节进行计数,一个报文段的序号被设置为该报文段中第一个数据字节的计数值。序号是32bit的无符号数,序号到达232-1后又从0开始。当建立一个新的连接时,SYN标志变1。序号字段包含由这个主机选择的该连接的初始序号ISN(InitialSequenceNumber)。该主机要发送数据的第一个字节序号为这个ISN加1,因为SYN标志消耗了一个序号。由于TCP提供的是全双工的服务即连接双方可以同时独立地发送数据,因此连接的每一端必须保持每个方向上的传输数据序号。
  • 确认序号:确认序号包含发送确认的一端所期望收到的下一个序号。因此,确认序号应当是上次已成功收到数据字节序号加1。只有ACK标志1时确认序号字段才有效。发送ACK无需任何代价,因为32bit的确认序号字段和ACK标志一样,总是TCP首部的一部分。因此一旦一个连接建立起来,这个字段总是被设置,ACK标志也总是被设置为1。
  • 首部长度:首部中32bit字的数目。这个字段占4bit,因此TCP最多有60字节的首部。正常的长度是20字节。
  • 6个标志比特:
    • URG紧急指针有效。
    • ACK确认序号有效。
    • PSH接收方应该尽快将这个报文段交给应用层。
    • RST重建连接。
    • SYN同步序号用来发起一个连接。
    • FIN发端完成发送任务。
  • 窗口大小:通告给对端的本段窗口大小。用于流量控制。
  • 检验和:整个TCP报文段的校验和,覆盖了TCP首部和TCP数据。必须给出,由发送端设置,接收端验证。类似于UDP的校验和,校验和计算是用了和UDP相同的一个伪首部。
  • 紧急指针:只有当URG标志置1时紧急指针才有效。紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。
  • 选项:包括TCP所支持的一些选项。最常见的可选字段是最长报文大小,又称为MSS(MaximumSegmentSize)。每个连接方通常都在通信的第一个报文段(为建立连接而设置SYN标志的那个段)中指明这个选项。它指明本端所能接收的最大长度的报文段。
2、   2MSL等待状态

TCP中有一个报文段最大生存(MSL,MaximumSegmentLifetime)时间的概念。RFC793[Postel1981c]指定MSL为2分钟。然而,实现中的常用值是30秒&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值