运输层功能详解

1.概述

  • 作用:运输层为它上面的应用层提供通信服务。
  • 在OSI七层参考模型中,运输层是面向通信的最高层,也是用户功能的最底层。
  • 传输层两大重要的功能:复用 和 分用。
    1.复用在发送端,多个应用进程公用一个传输层
    2.分用在接收端,传输层会根据端口号将数据分派给不同的应用进程
  • 和网络层的区别:
    1.网络层为不同主机提供通信服务,而传输层为不同主机的不同应用提供通信服务。
    2.网络层只对报文头部进行差错检测,而传输层对整个报文进行差错检测。

当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的,但这种逻辑通信信道就相当于一条全双工的可靠信道。但当运输层采用无连接的UDP协议时,这种逻辑信道任然是一条不可靠信道。

2. 用户数据报协议UDP

2.1 UDP概述

  1. UDP只在IP数据报服务的基础上增加了少量的功能:复用与分用、对整个报文的差错检测。
  2. UDP是无连接的
    通信前不需要建立连接,通信结束也无需释放连接。
  3. UDP是不可靠的
    它是尽最大努力交付,不能确保每一个数据报都送达。
  4. UDP是面向报文的
    所谓 面向报文 就是指:UDP数据传输的单位是报文,且不会对数据作任何 拆分 和 拼接 操作。
    在发送端,应用程序给传输层的UDP什么样的数据,UDP不会对数据进行切分,只增加一个UDP头并交给网络层。
    在接收端,UDP收到网络层的数据报后,去除IP数据报头部后遍交给应用层,不会作任何拼接操作。
  5. UDP没有拥塞控制
    UDP始终以恒定的速率发送数据,并不会根据网络拥塞情况对发送速率作调整。这种方式有利有弊。
    弊端:网络拥塞时有些报文可能会丢失,因此UDP不可靠。
    优点:有些使用场景允许报文丢失,如:直播、语音通话,但对实时性要求很高,此时UDP还是很有用武之地的。
  6. UDP支持一对一、一对多、多对多、多对一通信
    而TCP只支持一对一通信。
  7. UDP首部开销小,只有8字节。
    而TCP头部至少由20字节,相比于TCP要高效很多。

2.2 UDP的首部格式

在这里插入图片描述

  • 源端口:源端口号。在需要对方回信时选用。不需要时可用全0。
  • 目的端口:目的端口号。这在终点交付报文时必须要使用到。
  • 长度: UDP用户数据报的长度,其最小值是8(仅有首部)。
  • 校验和:检测UDP用户数据报在传输中是否有错。有错就丢弃。
    在这里插入图片描述
    伪首部
    在 TCP 的分段或 UDP 的数据报格式中,在数据报首部前面增加源 IP 地址、目的 IP 地址、IP 分组的协议字段、TCP 或 UDP 数据报的总长度等共12字节,所构成的扩展首部结构。此伪首部是一个临时的结构,它既不向上也不向下传递,仅仅只是为了保证可以校验套接字的正确性。

3. 传输控制协议TCP

3.1 TCP最主要的特点

  1. TCP是面向连接
    通信前需要建立连接,通信结束需要释放连接。
  2. 每一条TCP连接只能有两个端点
    TCP只能提供点到点的通信,而UDP可以任意方式的通信。
  3. TCP提供可靠交付的服务
    可靠指的是:TCP发送的数据无重复、无丢失、无错误、与发送端顺序一致。
  4. TCP提供全双工通信
    全双工通信指的是:TCP的两端既可以作为发送端,也可以作为接收端。
  5. TCP是面向字节流
    面向字节流指的是:TCP以字节为单位。虽然传输的过程中数据被划分成一个个数据报 ,但这只是为了方便传输,接收端最终接受到的数据将与发送端的数据一模一样。

3.2 TCP的连接

  • TCP连接就是由协议软件所提供的一种抽象。表示一条可通信的链路。每条TCP连接有且仅有两个端点,表示通信的双方。且双发在任意时刻都可以作为发送者和接收者。
  • TCP连接的端点叫做套接字或插口。
    套接字 socket =(IP地址:端口号)
    因此,TCP连接 ::=(套接字1,套接字2)={(IP1:端口号1),(IP2:端口号2)}

3.3 可靠传输的工作原理

TCP的可靠性表现在:它向应用层提供的数据无差错的、有序的无丢失的,简单的说就是:TCP最终递交给应用层的数据

  • 16
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值