传输层协议 TCP/UDP

四、传输层

1、概述

运输层为应用进程之间提供端到端的逻辑通信。
将上层数据分段并提供端到端的、可靠或不可靠的传输及端到端的差错控制和流量控制,提供建立、维护和取消连接的功能

2、设备

网关:协议转换器,充当转换翻译的重任,如果两个网络的通信协议、数据格式或语言不同时,网关会对信息重新打包,以适应目标系统的需求。默认在网络层以上实现网络互联(可用于局域网或广域网)

传输网关:在两个网络之间建立传输连接,不同网络的主机之间可跨越多个网络的、级联的、点对点的传输连接

3、协议

3.1、TCP协议
3.1.2、TCP主要特点
  • 1、TCP是面向连接的传输层协议。使用TCP协议前要三次握手建立连接,使用完后通过四次挥手释放连接。
  • 2、每一条TCP连接只能是点对点通信。
  • 3、TCP提供可靠交付的服务。通过TCP连接传输的数据是无差错、不丢失、不重复、按序到达的。
  • 4、TCP提供全双工通信。通信双方任何时候都能发送数据,两边都设有接收缓存和发送缓存。
  • 5、面向字节流。“流”指的是从进程流出和流入的数据都是字节序列,TCP并不知道字节流的含义,接收方的应用进程才有能力把字节序列翻译成有意义的数据。
3.1.2、TCP如何保证可靠传输(原理)

TCP保证可靠传输有校验和、序列号和确认应答、流量控制(滑动窗口)、流量控制、拥塞控制、连接管理等

  • 1、校验和
    利用伪首部检验首部和数据部分。

  • 2、序列号和确认应答
    序列号:TCP给每个数据包都进行了编号,这就是序列号。
    确认应答:每次接收数据后,发送ACK报文进行确认,告诉对方确认号之前都已收到,从确认号位置开始发送即可。

  • 3、超时重传
    发送方每次发送一个分组,就启动超时计时器,如果在计时器过期之前收到对方的确认,就撤销计时器。否则,就认为刚刚发送的分组丢失,然后重传前面发送的分组。
    三个细节:
    (1)必须暂存已发送分组的副本,等收到对方的确认再删除.(2)分组和确认分组都必须进行编号,才能知道哪个是对哪个的确认。(3)超时设置要数据在分组传输的往返时间更长一点
    确认丢失:假设B对A的确认M1丢失了,A超时重传M1,B再次收到了M1,B就知道确认M1丢失,于是B就会丢弃这个重复的M1,并向A发送确认,因为A重传就表示A没有收到M1的确认。
    确认迟到:A发送M1,超时没有收到M1的确认,于是重传,并收到了确认。后面又收到了第一次迟到的重复确认,那么A会丢弃重复的确认

  • 4、流量控制
    流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。
    具体通过滑动窗口来实现,告诉发送方我的接收窗口为多少,你的发送窗口不能超过我的接收窗口,否则就会数据丢失。
    当接收方发送零窗口的时候,发送方法就会停止发送进行等待。为避免发送死锁,可以设置计时器,发送零窗口探测报文段

    滑动窗口利用三个指针分成四部分:
    (1)小于P1的是已发送并收到确认的部分,而大于P3的是不允许发送的部分 (2)P3-P1=A的发送窗口 (3)P2-P1等于已发送但未收到确认的字节数 (4)P3-P2是允许发送但未发送的字节数。
    假设B收到了32之后的分组,但没有收到31,那么B发送的确认号还是31(表示期望收到的序列号),所以32之后的分组会被重复发送一次。。
    在这里插入图片描述

  • 5、TCP的拥塞控制
    拥塞:对网络中某一资源的需求超过了该资源所能提供的部分。
    注意网络是全局许多因素引起的,假设单独增加一些资源,可能会导致其它结点处理能力跟不上加重网络阻塞。

    拥塞控制的四种实现算法:
    (1)慢开始
    初始拥塞窗口为cwnd=1,每经过一个轮次cwnd*2指数增加。为防止拥塞窗口增长过大,设置慢开始门限ssthresh:
    当cwnd<ssthresh时,使用上面的满开始算法
    当cwnd>ssthresh时,改用拥塞避免算法
    当cwnd=ssthresh时,使用哪个算法都可以
    (2)拥塞避免
    使用线性增长
    (3)快重传
    快重传:让对方尽早知道某个报文段丢失
    有时,个别报文段比如M3会在网络中丢失,但不是网络阻塞引起的。按照快重传算法,接收方法必须立即发送M2的重复确认。发送方收到3个连续的对M2的确认,因而立即快重传M3,避免接收方以为发生了网络的拥塞,从而提高了网络吞吐量。
    (4)快恢复
    快重传知道是只是丢弃了个别报文段,于是执行快恢复算法。发送方调正门限值ssthresh=cwnd/2=8,同时设置拥塞窗口cwnd=ssthresh=8,并开始执行拥塞避免算法。
    在这里插入图片描述

  • 6、TCP的连接管理
    连接管理就是三次握手和四次挥手的过程。

    三次握手示意图
    在这里插入图片描述
    四次挥手示意图
    在这里插入图片描述
    后续补充具体细节和常见问题

3.2、UDP协议
3.2.1、UDP主要特点
  • UDP是无连接的。发送数据前不需要建立连接,因此减少了开销和发送数据之前的延迟
  • UDP使用尽最大努力交付。即不保证可靠交付。
  • UDP是面向报文的。UDP对应用层交下来的报文,既不合并也不拆分,而是保留这些报文的边界
  • UDP没有拥塞控制。因此网络阻塞不会导致源主机的发送速率降低
  • UDP支持一对一、一对多、多对一和多对多的交互通信
  • UDP首部开销小。UDP首部只有8字节,而TCP要20字节

参考
计算机网络第七版(谢希仁)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值