• 计算机网络(六)


    运输层

    前面的物理层、数据链路层、网络层它们共同解决了将主机通过网络互联起来所面临的问题、实现了主机到主机之间的通信
    但是在网络中实际通信的是位于通信两端主机中的进程。
    如何为不同主机的进程提供直接的通信服务是运输层的任务,运输层的协议又叫做端到端的协议

    一、进程端口号、复用与分用的概念

    进程端口号

    在这里插入图片描述

    发送方的复用和接收方的分用

    在这里插入图片描述
    通过视频了解端口号在数据传输中的作用
    视频5:58处

    二、TCP和UDP的区别

    UDP不需要建立连接,可以直接发送数据
    TCP需要进行三次握手建立连接、报文发送结束之后需要进行4次挥手断开连接
    在这里插入图片描述

    UDP协议支持单播、多播、广播
    TCP协议只支持单播
    在这里插入图片描述

    UDP是面向报文的协议
    TCP是面向字节流的协议、这是TCP能够进行拥塞控制、流量控制的前提。
    在这里插入图片描述

    UDP向上层提供的是不可靠传输服务、可能存在丢失、误码等情况
    TCP向上层提供可靠传输服务,不存在误码、丢失、乱序等情况
    在这里插入图片描述

    UDP和TCP数据报的首部格式对比
    在这里插入图片描述
    总结:在这里插入图片描述

    三、TCP的流量控制

    一般情况下,我们希望数据传输的越快越好,但是如果接收方来不及接收大量数据,就会导致数据丢失,所以就需要流量控制
    流量控制是利用滑动窗口机制实现的,具体流程观看视频0:44处

    四、拥塞控制

    在某一时刻内,对网络资源的需求量超出了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫拥塞。

    • 计算机中的带宽,交换节点的缓存等都是网络资源。

    如果出现拥塞而不控制,整个网络的吞吐量将随输入负荷的增大而下降。

    在这里插入图片描述
    拥塞控制有四种算法:

    • 慢开始
    • 拥塞避免
    • 快重传
    • 快恢复

    五、TCP超时重传的时间选择

    六、TCP可靠传输的实现

    七、TCP连接的建立与释放

    TCP连接的建立

    TCP是面向连接的运输层协议,在数据通信之前需要与服务段建立连接。
    **“三次握手”**是TCP协议建立连接步骤的俗称。

    第一次握手:
    客户端发送同步代码SYN=1,表明这是一个TCP请求报文段;序号字段seq=x被设置了一个初始值x作为TCP客户进程所选择的初始序号。(TCP规定,SYN=1的报文段不能携带数据,并且要消耗一个序号)
    第二次握手:
    服务端发送确认报文段,同步代码SYN=1,ACK=1,表明这是一个确认报文段,序号字段seq=y是服务进程选择的初始序号,ack=x+1是服务段对第一次握手seq=x的确认(因为该报文段SYN=1,所以也不能携带数据)
    第三次握手:
    客户端发送ACK=1确认字段序号字段seq=x+1是第一次握手seq=x的序号被消耗了,所以要+1,ack=y+1是对第二次握手seq=y的确认。(TCP规定,普通的确认报文可以携带数据,如果不携带数据则不消耗序号,所以下一次(三次握手之后)客户端请求携带数据,序号seq仍然等于x+1)
    在这里插入图片描述

    TCP连接的释放

    四次挥手
    在这里插入图片描述
    四次挥手详细过程

    TCP报文段首部格式

  • 相关阅读:
    深度解读财团参与Twitter私有化的投资逻辑
    46.Java正则表达式
    ZZULIOJ:1004: 三位数的数位分离
    今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 4月25日,星期四
    联邦学习开源框架FATE架构
    代码随想录 动态规划Ⅸ
    关于Fragment的生命周期,你知道多少?
    为什么星火大模型连接失败
    GPT-4:论文阅读笔记
    PHP通过pem文件校验签名异常
  • 原文地址:https://blog.csdn.net/qq_47155894/article/details/136632163