计算机网络 第5章 运输层 知识小结

1. 复用和分用

这里写图片描述

2. 运输层端口

  • 定义:
    运输层服务访问点 TSAP,用来标志应用层的进程
  • 作用:
    统一的方法对 TCP/IP 体系的应用进程进行标志,使运行不同操作系统的计算机的应用进程能够互相通信
  • 端口号
    16位,如FTP用21,TELNET用23,SMTP用25,DNS用53,HTTP用80,SNMP用161
  • 分类
    分类原因:保证通信准确、高效,避免冲突
类别端口范围解释
熟知端口0~1023一般固定分配给一些服务
注册端口1024~49151为没有熟知端口号的应用程序使用。使用这个范围的端口号必须在IANA 登记,以防止重复。
动态端口49152~65535留给客户进程选择暂时使用。通常由传输层协议自动赋予客户

3. UDP(用户数据报协议,User Datagram Protocol)

  • 特点
    • 非可靠传输,无连接
    • 支持一对一,一对多,多对一,多对多通信
    • 面向报文,适合多媒体通信
    • 一次发送或交付一个完整的报文
  • 首部
    • 长度:8字节
    • 组成:16位源端口号+16位目的端口号+16位UDP长度(含首部长度,不仅仅指数据部分)+16位UDP检查和(端口号+端口号+长度+检查和)
  • 例子
    一个UDP用户数据报的首部的16进制表示是:06 32 00 45 00 1C E2 17.则?
    源端口号为 6162+316+2=1586 6 ∗ 16 2 + 3 ∗ 16 + 2 = 1586 ,目的端口号为 416+5=69 4 ∗ 16 + 5 = 69 ,用户数据报总长度为 116+12=28 1 ∗ 16 + 12 = 28 字节,数据部分长度为 288=20 28 − 8 = 20 字节,因为熟知端口69是目的端口,故应是从客户端发送给服务器,服务器程序是TFTP
  • 伪首部作用
    计算检验和

4. TCP(传输控制协议,Transmission Control Protocol)

  • 特点:
    • 可靠交付,面向连接
      使用确认机制来检查数据是否安全和完整的到达
    • 全双工
      数据可在同一时间双向流动,而广播和多播不能用于TCP
    • 点对点(一对一)
    • 面向字节流(“流”(stream)指的是流入或流出进程的字节序列):
      虽然应用程序和 TCP 的交互是一次一个数据块,但 TCP 把应用程序交下来的数据看成仅仅是一连串无结构的字节流
      从这个流中提取适当的长度来创建报文段的分组,然后将它们发送到网络上
      接收TCP则接收报文段,从中提取数据,若没有按序到达还要将它们排序,并将它们作为字节流交付给应用程序
  • 注意:
    • TCP 连接是一条虚连接而不是一条真正的物理连接\
    • TCP 根据对方给出的窗口值和当前网络拥塞的程度,来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的,每次都是一个完整报文)
  • TCP报文段的首部
    长度:固定首部为20字节,还有长度可变的选项和填充

5. TCP的数据编号与确认

TCP可靠的传输是由于使用了序号和确认
TCP协议是面向字节的。TCP将所要传送的整个报文看成是一个个字节组成的数据流,并使每一个字节对应于一个序号
步骤:

  1. 在连接建立时,双方要商定初始序号
  2. 发送端
    TCP每次发送的报文段的首部中的序号字段—-报文段中的数据部分的第一个字节的序号
  3. 接收端
    接收端返回的确认序号是已收到的数据的最高序号加1。也就是说,确认序号—-接收端期望下次收到的数据中的第一个数据字节的序号。
    例子:
    主机A向主机B连续发送了两个TCP报文段,其序号分别是70和100,则?
    第一个报文段携带了 30 字节的数据
    主机B收到第一个报文段后发回的确认中的确认号应该是 100 .
    如果B收到第2个报文段后发回的确认中的确认号是180,则A发送的第2个报文段中的数据有 80 个字节
    如果A发送的第一个报文段丢失了,但第二个报文段到达了B,B在第二个报文段到达后向A发送确认,则确认号应为 70

6. TCP的拥塞控制算法

慢开始门限状态变量ssthresh:

  • 当 cwnd < ssthresh 时,使用慢开始算法。
  • 当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。
  • 当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。

慢开始算法

逐步增大发送端的拥塞窗口 cwnd,可以使分组注入到网络的速率更加合理
1. 在主机刚刚开始发送报文段时可先设置拥塞窗口 cwnd = 1,即设置为一个最大报文段 MSS 的数值
2. 在每收到一个对新的报文段的确认后,将拥塞窗口加 1,即增加一个 MSS 的数值
注意:是每收到一个队新报文段的确认就对拥塞窗口加1的结果就是 :经过一个传输轮次,拥塞窗口 cwnd 就加倍,两者是因果关系,并不矛盾

拥塞避免

目的就是要迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完毕

  1. 让拥塞窗口 cwnd 缓慢地增大,即每经过一个往返时间 RTT 就把发送方的拥塞窗口 cwnd 加 1,而不是加倍,使拥塞窗口 cwnd 按线性规律缓慢增长
  2. 只要发送方判断网络出现拥塞(其根据就是没有按时收到确认),就要把慢开始门限 ssthresh 设置为出现拥塞时的发送方窗口值的一半(但不能小于2)
  3. 然后把拥塞窗口cwnd 重新设置为 1,执行慢开始算法

快重传

  • 接收方:
    每收到一个失序的报文段后就立即发出重复确认
  • 发送方:
    只要一连收到三个重复确认,就应当立即重传对方尚未收到的报文段
  • 目的:
    让发送方及早知道有报文段没有到达接收方,可更早地重传丢失的报文段

快恢复

  1. 当发送端收到连续三个重复的确认时,就执行“乘法减小”算法,把慢开始门限 ssthresh 减半。但接下去不执行慢开始算法
  2. 拥塞窗口cwnd 现在不设置为 1,而是设置为慢开始门限 ssthresh 减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值