文章目录
1. 运输层协议概述
1.1 进程之间的通信
- 运输层的作用
- 从IP层来说,通信的两端是两台主机
从运输层的角度看,通信的真正端点并不是主机而是主机中的进程 - 运输层为相互通信的应用进程提供了逻辑通信
- 网络层和运输层的作用范围
- 基于端口的复用和分用功能
- 复用:不同的进程都可以使用同一个传输层协议进行通信
- 两种不同的运输协议
- 面向连接的 TCP 协议,相当于全双工的可靠信道。
- 采用无连接的 UDP 协议,这种逻辑通信信道是一条不可靠信道。
1.2 运输层的两个主要协议
- TCP/IP 的运输层有两个主要协议:
- 用户数据报协议 UDP (User Datagram Protocol)
- 传输控制协议 TCP (Transmission Control Protocol)
- 两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport Protocol Data Unit)。
TCP 传送的数据单位协议是TCP报文段(segment)。
UDP 传送的数据单位协议是UDP报文或用户数据报。 - UDP 与 TCP
- UDP:
- 无连接的协议,提供无连接服务;
- 其传送的运输协议数据单元TPDU是 UDP 报文或用户数据报;
- 支持单播、多播、广播;
- 不提供可靠交付
- 简单。适用于很多应用,如:直播应用等。
- TCP:
- 面向连接的协议,提供面向连接服务;
- 其传送的运输协议数据单元TPDU是 TCP 报文段;
- 支持点对点单播,不支持多播、广播
- 提供可靠服务
- 复杂。用于大多数应用,如:万维网、电子邮件、文件传送等。
- UDP:
- 使用 UDP 和 TCP 的典型应用和应用层协议
1.3 运输层的端口
- 但运行在应用层的各种应用进程却不应当让计算机操作系统指派它的进程标识符。这是因为在互联网上使用的计算机的操作系统种类很多,而不同的操作系统又使用不同格式的进程标识符。此外,每次软件运行的进程标识符是可能会发生变化的。为了使运行不同操作系统的,且动态变化的计算机应用进程能够互相通信,就必须用统一的方法对 TCP/IP 体系的应用进程进行标志
端口号
- 解决这个问题的方法就是在运输层使用协议端口号
- TCP报文里面首部有端口号
- 端口用一个 16 位端口号进行标志,允许有65,535个不同的端口号。
端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在互联网中,不同计算机的相同端口号是没有联系的。 - 服务器端使用的端口号
- 熟知端口,数值一般为 0 ~ 1023。
登记端口号,数值为 1024 ~ 49151 - 客户端使用的端口号
又称为短暂端口号,数值为 49152 ~ 65535,留给客户进程选择暂时使用。
- 熟知端口,数值一般为 0 ~ 1023。
- 两大类、三种类型的端口:
- 常用的熟知端口
2. 用户数据报协议 UDP
2.1 UDP 概述
- UDP 只在 IP 的数据报服务之上增加了很少一点的功能:运输层协议复用和分用的功能差错检测的功能
- UDP 的主要特点:
- UDP 是无连接的
- UDP 使用尽最大努力交付
- UDP是面向报文的
- UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。
- UDP 支持一对一、一对多、多对一和多对多的交互通信。
- UDP 的首部开销小
- UDP 是面向报文的
2.2 UDP 的首部格式
用户数据报 UDP 有两个字段:数据字段和首部字段。
首部字段有 8 个字节,由 4 个字段组成,每个字段都是 2 个字节。
- UDP基于端口的分用:当运输层从 IP 层收到 UDP 数据报时,就根据首部中的目的端口,把 UDP 数据报通过相应的端口,上交给最后的终点——应用进程。
- 因为是面向无连接的,如果接收方端口没开,在分用阶段就丢弃(APP推送案例)
- 在计算检验和时,临时把 12 字节的“伪首部”和 UDP 用户数据报连接在一起。伪首部仅仅是为了计算检验和。
- 伪首部,不向上传,也不向下送,仅仅用于校验
3. 传输控制协议 TCP 概述
3.1 TCP 最主要的特点
- TCP 是面向连接的运输层协议。
每一条 TCP 连接只能有两个端点 (endpoint),每一条 TCP 连接只能是点对点的(一对一),不能进行多播和广播(一对多)。
TCP 提供可靠交付的服务(无差错、不丢失、不重复并且按序到达)。