学习笔记:计算机网络(四)

目录

运输层

运输层概述

运输层端口号、复用与分用的慨念

UDP和TCP的对比

TCP的流量控制

TCP的拥塞控制

TCP超时重传时间的选择

TCP的运输连接管理一TCP的连接建立 

TCP的运输连接管理一TCP的连接释放

TCP报文段的首部格式

运输层

运输层概述


运输层端口号、复用与分用的慨念


UDP和TCP的对比


TCP的流量控制


TCP的拥塞控制

TCP四种拥塞控制算法:慢开始,拥塞避免,快重传,快恢复

慢开始和拥塞避免:

 快重传

快恢复:


TCP超时重传时间的选择

超时重传时间RTO应略大于往返时间RTT 

  • 针对出现超时重传时无法测准往返时间RTT的问题,Karn提出了一个算法:在计算加权平均往返时间RTTs时,只要报文段重传了,就不采用其往返时间RTT样本。也就是出现重传时,不重新计算RTTs,进而超时重传时间RTO也不会重新计算。
  • 这又引起了新的问题。设想出现这样的情况:报文段的时延突然增大了很多,并且之后很长一段时间都会保持这种时延。因此在原来得出的重传时间内,不会收到确认报文段。于是就重传报文段。但根据Kan算法,不考虑重传的报文段的往返时间样本。这样,超时重传时间就无法更新。这会导致报文段反复被重传。
  • 因此,要对Kan算法进行修正。方法是:报文段每重传一次,就把超时重传时间RTO增大一些。典型的做法是将新RTO的值取为旧RTO值的2倍。


TCP的运输连接管理一TCP的连接建立 

 TCP的连接建立要解决以下三个问题:

  • 使TCP双方能够确知对方的存在:
  • 使TCP双方能够协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等):
  • 使TCP双方能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配。

第三次握手是否多余?

不多余!这是为了防止已失效的连接请求报文段突然又传送到了TCP服务器,因而导致错误。 

注意:

  • TCP的标准规定,SYN=1的报文不能携带数据,但要消耗掉一个序号。
  • TCP的标准规定,普通的确认报文段如果不携带数据,则不消耗序号。


TCP的运输连接管理一TCP的连接释放

若不进行等待 :


TCP报文段的首部格式

  • 源端口:占16比特,写入源端口号,用来标识发送该TCP报文段的应用进程
  • 目的端口:占16比特,写入目的端口号,用来标识接收该TCP报文段的应用进程。 
  • 序号:占32比特,取值范围[0,2^{32} - 1],序号增加到最后一个后,下一个序号就又回到0。指出本TCP报文段数据载荷的第一个字节的序号
  • 确认号:占32比特,取值范围[0,2^{32} - 1],确认号增加到最后一个后,下一个确认号就又回到0。
    指出期望收到对方下一个TCP报文段的数据载荷的第一个字节的序号,同时也是对之前收到的所有数据的确认
    若确认号=n,则表明到序号-1为止的所有数据都已正确接收,期望接收序号为n的数据。
  • 确认标志位ACK:取值为1时确认号字段才有效:取值为0时确认号字段无效。
    TCP规定,在连接建立后所有传送的TCP报文段都必须把ACK置1。
  • 数据偏移:占4比特,并以4字节为单位。用来指出TCP报文段的数据载荷部分的起始处距离TCP报文段的起始处有多远。这个字段实际上是指出了TCP报文段的首部长度。
    首部固定长度为20字节,因此数据偏移字段的最小值为(0101)_{2}
    首部最大长度为60字节,因此数据偏移字段的最大值为(1111)_{2}
  • 保留:占6比特,保留为今后使用,但目前应置为0。
  • 窗口:占16比特,以字节为单位。指出发送本报文段的一方的接收窗口
  • 校验和:占16比特,检查范围包括TCP报文段的首部和数据载荷两部分。在计算校验和时,要在TCP报文段的前面加上12字节的伪首部。
  • 同步标志位SYN:在TCP连接建立时用来同步序号。
  • 终止标志位FIN:用来释放TCP连接。
  • 复位标志位RST:用来复位TCP连接。
    当RST=1时,表明TCP连接出现了异常,必须释放连接,然后再重新建立连接。
    RST置1还用来拒绝一个非法的报文段或拒绝打开一个TCP连接。
  • 推送标志位PSH:接收方的TCP收到该标志位为1的报文段会尽快上交应用进程,
    而不必等到接收缓存都填满后再向上交付。
  • 紧急标志位URG:取值为1时紧急指针字段有效;取值为0时紧急指针字段无效。
  • 紧急指针:占16比特,以字节为单位,用来指明紧急数据的长度。
    当发送方有紧急数据时,可将紧急数据插队到发送缓存的最前面,并立刻封装到一个TCP报文段中进行发送。紧急指针会指出本报文段数据载荷部分包含了多长的紧急数据,紧急数据之后是普通数据。
  • 选项:
  1. 最大报文段长度MSS选项:TCP报文段数据载荷部分的最大长度。
  2. 窗口扩大选项:为了扩大窗口(提高吞吐率)
  3. 时间戳选项:
    用来计算往返时间RTT
    用于处理序号超范围的情况,又称为防止序号绕回PAWS。
  4. 选择确认选项
  • 填充:由于选项的长度可变,因此使用填充来确保报文段首部能被4整除(因为数据偏移字段,也就是首部长度字段,是以4字节为单位的)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zyh_fighting

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值