传输层概述:传输层功能、端口与套接字、UDP与TCP。

5.1 传输层提供的服务

5.1.1 传输层的功能

传输层位于应用层和网络层之间,是面向通信部分的最高层,也是用户功能中的最低层。

传输层与网络层的区别

  • 网络层:提供主机之间的逻辑通信。
  • 传输层:在网络层基础上,为运行在不同主机上的进程之间提供逻辑通信,即端到端的通信。

传输层的主要功能

  1. 复用与分用
    • 复用:发送方不同的应用进程使用同一个运输层协议传送数据(加上适当首部)。
    • 分用:接收方运输层剥去首部后,将数据正确交付给目的应用进程。
  2. 差错检测:对收到的报文(首部和数据字段)进行差错检测。
    • TCP:发现错误则要求重传。
    • UDP:发现错误则直接丢弃。

      注意:网络层IP数据报首部只检验首部,不检验数据部分。

  3. 提供面向连接和无连接的服务
    • 面向连接:TCP
    • 无连接:UDP
  4. 屏蔽网络细节:向高层用户隐藏下层网络核心的细节(如网络拓扑、路由协议等),使应用进程看到的是端到端的逻辑通信信道。

重要区别:网络层无法同时实现两种服务(要么虚电路,要么数据报),而传输层可以同时提供TCP和UDP两种服务。


5.1.2 传输层寻址与端口

1. 端口的概念

  • 端口:应用层进程与传输层交互的“门”,是通信的抽象终点,用端口号标识。
  • 端口类型
    • 软件端口:传输层使用的抽象端口,在协议栈层间交互。
    • 硬件端口:路由器或交换机上不同硬件设备交互的接口。

端口是应用进程与传输层交互的地点,具有一定容量的缓存。

2. 端口号

  • 长度:16位,范围0~65535(共65536个,0不使用)。
  • 特点:端口号只具有本地意义,不同计算机的相同端口号无关联。

端口号分类

类别 范围 说明
熟知端口号 0~1023 指派给TCP/IP重要应用程序
登记端口号 1024~49151 供没有熟知端口号的应用程序使用,需在IANA登记
客户端端口号 49152~65535 客户进程运行时动态选择,通信结束后释放

常见熟知端口号

应用程序 FTP TELNET SMTP DNS TFTP HTTP SNMP HTTPS
端口号 21 23 25 53 69 80 161 443

3. 套接字

  • 定义:IP地址与端口号的绑定,唯一标识一个主机上的一个应用进程。
  • 表示Socket = (IP地址 : 端口号)

4. 服务访问点(SAP)

层次 服务访问点
数据链路层 帧的“类型”字段
网络层 IP数据报的“协议”字段
传输层 端口号
应用层 用户界面

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

特性 UDP(无连接) TCP(面向连接)
连接建立 不需要,直接发送 需要三次握手建立连接
连接释放 不需要 需要四次挥手释放连接
可靠性 不保证,无确认 可靠,有确认和重传
差错处理 发现错误直接丢弃 要求重传错误报文
开销 小,首部简单 大,需维护连接状态、计时器等
适用场景 实时应用(流媒体、DNS) 可靠传输应用(HTTP、FTP、SMTP)

应用层协议与传输层协议对应关系

应用 协议 传输层
域名系统 DNS UDP
文件传送 TFTP UDP
路由选择 RIP UDP
IP地址配置 DHCP UDP
网络管理 SNMP UDP
远程文件服务器 NFS UDP
IP电话、流媒体 专用协议 UDP
多播 IGMP UDP
电子邮件 SMTP TCP
远程终端 TELNET TCP
万维网 HTTP TCP
文件传送 FTP TCP

习题

  1. 传输层的主要功能是(A. 在通信主机之间提供端到端的逻辑通信

  2. 以下关于传输层端口号的说法,错误的是(D. 端口号的范围是 0 - 1023
    (实际范围是065535,01023是熟知端口号)

  3. 在传输层中,能够实现复用和分用功能的是(A. 端口号


笔记结束