• 计算机网络---传输层的概述


    (一)定义

        传输层是整个网络体系结构中的关键层次之一,主要负责向两个主机中进程之间的通信提供服务。由于一个主机同时运行多个进程,因此运输层具有复用和分用功能。传输层在终端用户之间提供透明的数据传输,向上层提供可靠的数据传输服务。传输层在给定的链路上通过流量控制、分段/重组和差错控制来保证数据传输的可靠性。传输层的一些协议是面向链接的,这就意味着传输层能保持对分段的跟踪,并且重传那些失败的分段。

        传输层是国际标准化组织提出的开放系统互连(OSI)参考模型中的第四层。该层协议为网络端点主机上的进程之间提供了可靠、有效的报文传送服务。其功能紧密地依赖于网络层的虚拟电路或数据报服务。传输层定义了主机应用程序之间端到端的连通性。传输层也称为运输层,传输层只存在于端开放系统中,是介于低3层通信子网系统和高3层之间的一层,但是很重要的一层,因为它是源端到目的端对数据传送进行控制从低到高的最后一层。

    传输层的服务一般要经历传输连接建立阶段,数据传送阶段,传输连接释放阶段3个阶段才算完成一个完整的服务过程。而在数据传送阶段又分为一般数据传送和加速数据传送两种形式。传输层中最为常见的两个协议分别是传输控制协议TCP(Transmission Control Protocol)、用户数据报协议UDP(User Datagram Protocol)传输层提供逻辑连接的建立、传输层寻址、数据传输、传输连接释放、流量控制、拥塞控制、多路复用和解复用、崩溃恢复等服务。

     

    (二)基本功能 

    传输层提供了主机应用程序进程之间的端到端的服务,基本功能如下:

    •  分割与重组数据

    •  按端口号寻址

    • 连接管理

    • 差错控制和流量控制,纠错的功能

    • 传输层要向会话层提供通信服务的可靠性,避免报文的出错,丢失,延迟时间紊乱、重复、乱序等差错。

      

    (三)传输层的寻址与端口

    1. 端口的作用
          端口能够让应用层的各种应用进程将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。端口是传输层服务访问点TSAP,它在传输层的作用类似于IP地址在网络层的作用或 MAC地址在数据链路层的作用,只不过IP地址和MAC地址标识的是主机,而端口标识的是主机中的应用进程。
           数据链路层的SAP是MAC 地址,网络层的SAP是IP地址,传输层的SAP是端口。
           在协议栈层间的抽象的协议端口是软件端口,它与路由器或交换机上的硬件端口是完全不同的概念。硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层的各种协议进程与传输实体进行层间交互的一种地址。传输层使用的是软件端口。
    2.端口号
        应用进程通过端口号进行标识,端口号长度为16bit,能够表示65536(216)个不同的端口号,端口号只具有本地意义,即端口号只标识本计算机应用层中的各进程,在因特网中不同计算机的相同端口号是没有联系的。根据端口号范围可将端口分为两类:
     (1)服务器端使用的端口号。它又分为两类,最重要的一类是熟知端口号,数值为0~1023,IANA(互联网地址指派机构)把这些端口号指派给了TCP/IP最重要的一些应用程序,让所有的用户都知道。另一类称为登记端口号,数值为1024~49151。它是供没有熟知端口号的应用程序使用的,使用这类端口号必须在IANA 登记,以防止重复。
    一些常用的熟知端口号如下:

    应用程序FTPTELNETSMTPDNSTFTPHTTPSNMP
    熟知端口号212325536980161

     

     


      (2)客户端使用的端口号,数值为49152~65535。由于这类端口号仅在客户进程运行时才动
    态地选择,因此又称短暂端口号(也称临时端口)。通信结束后,刚用过的客户端口号就不复存在,从而这个端口号就可供其他客户进程以后使用。


    3.套接字
       在网络中通过IP地址来标识和区别不同的主机,通过端口号来标识和区分一台主机中的不同应用进程,端口号拼接到IP地址即构成套接字 Socket。在网络中采用发送方和接收方的套接字来识别端点。套接字,实际上是一个通信端点,即套接字   Socket =(IP 地址:端口号)
        它唯一地标识网络中的一台主机和其上的一个应用(进程)。
        在网络通信中,主机A发给主机B的报文段包含目的端口号和源端口号,源端口号是“返回地址”的一部分,即当B需要发回一个报文段给A时,B到A的报文段中的目的端口号便是A到B的报文段中的源端口号(完全的返回地址是A的IP地址和源端口号)

     

    (四)、无连接与面向连接服务

          面向连接服务就是在通信双方进行通信之前,必须先建立连接,在通信过程中,整个连接的
    情况一直被实时地监控和管理。通信结束后,应该释放这个连接。
           无连接服务是指两个实体之间的通信不需要先建立好连接,需要通信时,直接将信息发送到
    “网络”中,让该信息的传递在网上尽力而为地往目的地传送。

          TCP/IP 协议族在IP层之上使用了两个传输协议:一个是面向连接的传输控制协议(TCP),采用TCP时,传输层向上提供的是一条全双工的可靠逻辑信道;另一个是无连接的用户数据报协议(UDP),采用UDP 时,传输层向上提供的是一条不可靠的逻辑信道。
         TCP提供面向连接的服务,在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP不提供广播或组播服务。由于TCP提供面向连接的可靠传输服务,因此不可避免地增加了许多开销,如确认、流量控制、计时器及连接管理等。这不仅使协议数据单元的头部增大很多,还要占用许多的处理机资源。因此TCP主要适用于可靠性更重要的场合,如文件传输协议(FTP)、超文本传输协议(HTTP)、远程登录(TELNET)等。
           UDP是一个无连接的非可靠传输层协议。它在IP之上仅提供两个附加服务:多路复用和对数据的错误检查。IP 知道怎样把分组投递给一台主机,但不知道怎样把它们投递给主机上的具体应用。UDP在传送数据之前不需要先建立连接,远程主机的传输层收到UDP报文后,不需要给出任何确认。由于UDP比较简单,因此执行速度比较快、实时性好。使用UDP的应用主要包括小文件传送协议(TFTP)、DNS、SNMP 和实时传输协议(RTP)。


     
    注意:

    • IP 数据报和 UDP 数据报的区别:IP 数据报在网络层要经过路由的存储转发;而 UDP 数据报在传输层的端到端的逻辑信道中传输,封装成IP数据报在网络层传输时,UDP数据报的信息对路由是不可见的。 

    •  TCP 和网络层虚电路的区别:TCP 报文段在传输层抽象的逻辑信道中传输,对路由器不可见;虚电路所经过的交换结点都必须保存虚电路状态信息。在网络层若采用虚电路方式,则无法提供无连接服务;而传输层采用 TCP 不影响网络层提供无连接服务。

  • 相关阅读:
    JS语言里常见的随机函数示例,实验结果分布规律分析
    取色器实战(Qt含源码)
    漏刻有时数据可视化Echarts组件开发(28):异形柱图、pictorialBar和dataZoom组件的使用
    图神经网络 | Python基于空间感知图神经网络的数据预测
    shell脚本中加入这条可以执行完一个脚本回到这个目录下
    【Linux】|开发工具介绍 | yum |vim | gcc/g++ | gdb | git
    python自学
    【IPC 通信】信号处理接口 Signal API(6)
    导入Embassy库进行爬虫
    工业线上赛(2022省赛)
  • 原文地址:https://blog.csdn.net/qq_63976098/article/details/127810064