第五章 运输层
运输层是 OSI 参考模型的七层中比较特殊的一层,同时也是整个网络体系结构中十分关键的一层。
为什么需要运输层?
① 网络层的分组传输是不可靠的;
无法确定数据到达终点的时间:子网中各站点存储转发的随机性
无法确定数据未达终点的状态:丢失/延迟/即刻到达
② 网络层无法保证进程-进程之间的通信
运输层的功能:
① 基本功能
运输层为应用进程之间提供逻辑通信,端到端的服务。
(网络层为主机之间提供逻辑通信,点到点的服务)
② 主要功能
复用和分用多对应用进程。
运输层对收到的报文进行差错控制。
端到端的顺序控制、差错检测及恢复、QoS 监测
TCP/IP 体系中的运输层协议: ①UDP 提供面向无连接的服务 ②TCP 提供面向连接的服务
应用进程之间的通信:两个主机进行通信实际上就是两个主机中的应用进程互相通信;应用进程之间的通
信又称为端到端的通信。
端口是一种抽象的软件结构,包括一些数据结构和 I/O 缓冲区。
应用程序即进程通过系统调用与某端口建立连接(binding 绑定)后,运输层传给该端口的数据都被相应的
进程所接收,相应进程发给运输层的数据都从该端口输出。
端口号的分配:有两种基本分配方式:
① 全局分配:一种集中分配方式,由一个公认的中央机构根据用户需要尽行统一分配,并将结果公布
于众。
② 本地分配:又称动态连接,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返
回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来(绑定)。
两类端口:
(1)服务器端使用的端口号
熟知端口号(well know port number)0~1023
登记端口号 1024~49151
应用程序
FTP TELNET SMTP DNS HTTP
熟知端口号
21 23 25 53 80
(2)客户端使用的端口号
短暂端口号:49152~65535:留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时 ,
就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
用户数据报协议 UDP:
UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。
UDP 的主要特点:
①UDP 是无连接的,即发送数据之前不需要建立连接。
②UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。
③UDP 是面向报文的。即 UDP 保留报文的边界。UDP 一次交付一个完整的报文。
④UDP 没有拥塞控制,很适合多媒体通信的要求。
⑤UDP 支持一对一、一对多、多对一和多对多的交互通信。