传输层协议

传输层协议

UDP

应用进程往一个UDP套接字写入一个消息,该消息随后被封装到一个UDP数据报,该UDP数据报进而又被封装到一个IP数据报,然后发送到目的地。

UDP不保证数据报会到达最终目的地,不保证各个数据报的先后顺序跨网络后保持不变,也不保证每个数据报只到达一次。

  • 缺乏可靠性。如果一个数据报到达了其最终目的地,但是校验和检测发现有错误,或者该数据报在网络传输图种被丢弃了,它就无法被投递给UDP套接字,也不会被源端自动重传。如果想确保一个数据报到达目的地,可以往应用程序中添置一大堆的特性:来自对端的确认、本端的超市与重传等。
  • 数据报都有一个长度。如果一个数据报正确地到达其目的地,那么该数据报的长度随数据一道传递给接收端应用进程。

TCP是一个字节流协议,没有任何记录边界,这一点不同于UDP。

  • UDP是无连接服务。UDP与服务器之间不必存在任何长期的关系。一个UDP客户可以创建一个套接字并发送一个数据报给一个给定的服务器,然后立即用同一个套接字发送另一个数据报给另一个服务器。同样的,一个UDP服务器可以用同一个UDP套接字从若干个不同的客户接受数据报,每个客户一个数据报。
TCP

TCP客户先与某个给定服务器建立一个连接,再跨该连接与那个服务器交换数据,然后终止这个连接。

  • 可靠性。TCP向另一端发送数据时,它要求对端返回一个确认,如果没有收到确认,TCP就自动重传数据并等待更长时间。在数次重传(4~10min,依赖具体实现)失败后,TCP才放弃。

TCP提供的是可靠递送或故障的可靠通知。

  • 含有动态估算客户和服务器之间的往返时间的算法。
  • 通过给其中给个字节关联一个序列号对所发送的数据进行排序。
  • 流量控制。TCP总是告知对端在任何时刻它一次能够从对端接收多少字节的数据,这称为通告窗口。(窗口根据数据的写入和读取时刻动态变化)
  • 全双工协议。在一个给定的连接上应用可以在任何时刻在进出两个方向上既发送数据又接收数据。因此,TCP必须为每个数据流方向跟踪诸如序列号和通告窗口大小等状态信息。(建立一个全双工连接后,需要的话可以把它转换成一个单工连接)。

UDP可以使全双工的。

SCTP

SCTP在客户和服务器之间提供关联,并像TCP那样给应用提供可靠性、排序、流量控制以及全双工的数据传送。

关联代替连接:一个连接只涉及两个IP地址之间的通信。一个关联指代两个系统之间的一次通信,它可能因为SCTP支持多宿而涉及不止两个地址。

  • 与TCP不同,SCTP是面向消息的。提供各个记录的按序递送服务。与UDP一样,由发送端写入的每条记录的长度随数据一道传递给接收端应用。
  • 在所连接的端点直接提供多个流,每个流各自可靠地按序递送消息。

一个流上信息的丢失不会阻塞同一关联其他流上消息的传递。TCP单一字节流中任何位置的字节丢失都将阻塞该连接上其后所有数据的递送,知道该丢失被修复位置。

  • 多宿特性。单个SCTP端点能够支持多个IP地址。增强应对网络故障的健壮性。一个端点可以有多个冗余的网络连接,每个网络又可能有各自接入因特网基础设施的连接。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值