跳至主要內容

1.传输层提供的服务


传输层的功能

  • 属于面向通信部分的最高层,同时也是用户功能中的最低层。
  • 即使网络层协议不可靠(网络层协议使分组丢失、混乱或重复), 传输层同样能为应用程序提供可靠的服务。

只有主机的协议栈才有传输层和应用层,而路由器在转发分组时都只用到下三层的功能〔即在通信子网中没有传输层,传输层只存在于通信子网以外的主机中)
image.png

传输层的功能如下

  1. 传输层提供应用进程之间的逻辑通信(即端到端的通信)。与网络层的区别是,网络层提供的是主机之间的逻辑通信。
  2. 复用和分用。复用是指发送方不同的应用进程都可使用同一个传输层协议传送数据;分用是指接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。
  3. 对收到的报文进行差错检测(首部和数据部分)。而网络层只检查 IP 数据报的首部,不检验数据部分是否出错。
  4. 提供两种不同的传输协议,即面向连接的TCP 和无连接的 UDP

注意

网络层也有复用分用的功能,但网络层的复用是指发送方不同协议的数据都可以封装成IP数据报发送出去,分用是指接收方的网络层在剥去首部后把数据交付给相应的协议。

  • 当传输层采用面向连接的TCP 时,尽管下面的网络是不可靠的(只提供尽最大努力的服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。
  • 但当传输层采用无连接的 UDP 时,这种逻辑通信信道仍然是一条不可靠信道。

传输层的寻址与端口

端口的作用

端口是传输层服务访问点(TSAP),它在传输层的作用类似于 IP 地址在网络层的作用或 MAC 地址在数据链路层的作用, 只不过=IP地址和 MAC 地址标识的是主机,而端口标识的是主机中的应用进程=。

硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层的各种协议进程与传输实体进行层问交互的一种地址。传输层使用的是软件端口

端口号

应用进程通过端口号进行标识,端口号长度为 16bit,能够表示 65536 (2162^{16})个不同的端口号。

服务器端使用的端口号

  1. 熟知端口号:数值为 0~1023
  2. 登记端口号,数值为1024~49151,供没有熟知端口号的应用程序使用
应用程序FTPTELNETSMTPDNSTFTPHTTPSNMP
熟知端口号212325536980161

客户端使用的端口号

  • 数值为 49152~ 65535
  • 这类端口号仅在客户进程运行时才动态地选择
  • 短暂端口号(也称临时端口)

套接字

端口号拼接到IP地址即构成套接字 Socket,在网络中采用发送方和接收方的套接字来识别端点。

无连接服务与面向连接服务

  • 无连接服务是指两个实体之问的通信不需要先建立好连接,需要通信时,直接将信息发送到“网络”中,让该信息的传递在网上尽力而为地往目的地传送。
  • TCP 不提供广播或组播服务,TCP 主要适用于可靠性更重要的场合,如文件传输协议 (FTP)、超文本传输协议(HTTP)、远程登录 (TELNET)等。
  • 使用 UDP 的应用主要包括小文件传送协议(TFTP)、DNS、SNMP 和实时传输协议 (RTP)

注意

IP数据报和UDP 数据报的区别

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

TCP 和网络层虚电路的区别

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