计算机网络 运输层

运输层

两个协议:

用户数据报协议UDP——不可靠信道,传输单元:UDP用户数据报

传输控制协议TCP——全双工可靠信道,传输单元:TCP报文段

用户数据报协议UDP
  • 无连接,不适用套接字
  • 没有拥塞控制
  • 计算检验和时在UDP数据报前增加12个字节的伪首部,把首部和数据部分一起检验

首部

  1. 源端口
  2. 目的端口
  3. 长度
  4. 检验和(都是2字节)
传输控制协议TCP
  • 面向字节流——TCP仅把应用程序交下来的数据看作一连串无结构的字节流,但不知道含义

  • 全双工

  • TCP连接:两个进程建立连接,是虚连接(逻辑连接)

    套接字(插口)——(IP地址:端口号) IP地址拼接上端口号

    TCP连接::={(IP1: port1), (IP2 : port2)}

  • TCP连接的建立采用客户服务器方式

  • TCP捎带确认 piggybacking(报文中的ACK)

硬件端口——不同硬件设备交互的接口

软件端口——应用层各种协议进程与运输实体进行层间交互的一种地址

TCP的MSS——最大报文段长度

指每一个TCP报文段中数据字段的最大长度,≠整个TCP报文段的最大长度

  • 若未填入首部的【选项】字段,则MSS为默认值536字节
  • 因此所有主机都能接收556字节的报文段长度
停止等待协议
连续ARQ协议

位于发送窗口内的5个分组都可以连续发送出去,不需要等待确认。接收方累积确认,对按序到达的最后一个分组发送确认——表示到这个分组为止的所有分组都已正确收到。

  • 丢失也不必重传
  • 无法反映意见正确收到的所有分组信息
  • 允许接收的缓冲区为1
可靠传输的实现

滑动窗口以字节为单位(不是报文段)

发送方可以根据网络的拥塞情况适当减小发送窗口数值

选择确认SACK

收下不连续的字节块,但要把接收信息准确告诉发送方以免重复发送

eg:收到了15013000和35014500,用指针标记边界:L1=1501,R1=3001,L2=3501,R2=4501

  • 需要在TCP首部加上允许SACK选项
TCP的拥塞控制

拥塞窗口cwnd使用报文段的个数为单位

慢开始门限ssthresh

  1. 慢开始——刚开始发送数据时,发送方的拥塞窗口cwnd数值由小逐渐增大。每经过一个传输轮次,拥塞窗口就加倍。

    作用是:因为并不清楚网络的负荷情况,因此先用慢开始探测一下,避免拥塞。

  2. 拥塞避免——当拥塞窗口cwnd达到了慢开始门限ssthresh时,停用慢开始算法采用拥塞避免算法。在拥塞避免阶段cwnd线性规律缓慢增长。

    作用是:当网络负荷达到一定程度时,将cwnd控制为线性规律增长,是网络比较不容易出现拥塞。

  3. 快重传——发送方一连收到3个重复确认,立即快重传

    接收方在接收到数据后立即发送确认,收到失序报文段时也要对已收到的报文段重复确认。发送方只要一连收到3个重复确认,就知道接收方确实没有收到这个报文段,应当立即重传。

    作用是:让发送方尽早知道个别报文段的丢失,而不是出现了网络拥塞,这样就不用错误地启动慢开始,从而提高了传输效率。

  4. 快恢复——送方知道丢失了个别报文段后执行快恢复算法。将ssthresh调整为cwnd的1/2,cwnd=ssthresh,并开始执行拥塞避免算法。

    作用是:只是丢失了个别报文段就没必要启动慢开始,提高了传输效率。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值