目录
概述
与网络层的区别
端口号
概述
分类
重要功能:复用+分用
两个重要协议:UDP+TCP
UDP用户数据报协议
概述
主要特点
首部格式
TCP传输控制协议
主要特点
首部格式
运输连接管理
概述
- 运输层提供应用进程间的逻辑通信
- 通信的真正实体是位于通信两端主机间的进程
与网络层的区别
网络层:为主机之间的通信提供服务
运输层:在网络层的基础上,为应用进程之间的通信提供服务
端口号
概述
端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。
传输层协议中端口号占16位
ps:两个计算机中的进程要互相通信,不仅必须知道对方的 IP 地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用进程)
分类
(1) 服务器端使用的端口号
熟知端口,数值一般为 0 ~ 1023
登记端口号,数值为 1024 ~ 49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复
(2) 客户端使用的端口号(短暂端口号)
数值为 49152 ~ 65535,留给客户进程选择暂时使用
当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
重要功能:复用+分用
- 复用:应用层所有的应用进程都可以通过传输层再传输到网络层。
- 分用:传输层从网络层收到数据后交付指明的应用进程。
两个重要协议:UDP+TCP
UDP用户数据报协议
概述
UDP 只在 IP 的数据报服务之上增加了很少一点的功能:差错检测
主要特点
- UDP 是无连接的,发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延
- UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表
- UDP 是面向报文的。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。UDP 一次交付一个完整的报文
- UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很适合多媒体通信的要求
- UDP 支持一对一、一对多、多对一和多对多的交互通信
- UDP 的首部开销小,只有 8 个字节,比 TCP 的 20 个字节的首部要短
首部格式
- 源端口(2B):源端口号。在需要对方回信时选用。不需要时可用全0
- 目的端口(2B):目的端口号。这在终点交付报文时必须使用
- 长度(2B):UDP用户数据报的长度,其最小值是8(仅有首部)
- 检验和(2B):检测UDP用户数据报在传输过程中是否出错
TCP传输控制协议
主要特点
- TCP 是面向连接的运输层协议。 每一条 TCP 连接只能有两个端点 (套接字 (socket) 或插口),每一条 TCP 连接只能是点对点的(一对一)。
- TCP 提供可靠交付的服务。
- TCP 提供全双工通信。
- 面向字节流
面向字节流:
ps:TCP协议不知道应用层报文下发的字节流的含义。
ps:端口号拼接到 IP 地址即构成了套接字
首部格式
TCP 首部的最小长度是 20 字节
- 源端口和目的端口字段:各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。
- 序号字段:占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
- 确认号字段:占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。
- 数据偏移(即首部长度):占 4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)。
- 保留字段:占 6 位,保留为今后使用,但目前应置为 0
- 紧急 URG:当 URG =1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)
- 确认 ACK:只有当 ACK=1时确认号字段才有效。当 ACK=0时,确认号无效。
- 推送 PSH (PuSH) :接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付
- 复位 RST (ReSeT):当 RST =1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
- 同步 SYN :同步 SYN = 1 表示这是一个连接请求或连接接受报文
- 终止 FIN (FINish):用来释放一个连接。FIN =1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接
- 窗口字段 :占 2 字节,用来让对方设置发送窗口的依据,单位为字节
- 检验和:占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部
- 紧急指针字段:占 16 位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)
- 选项字段:长度可变。TCP 最初只规定了一种选项,即最大报文段长度 MSS。MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。”
运输连接管理
3个阶段:建立连接、数据传送、释放连接
TCP 连接的建立采用客户服务器方式 :主动发起连接建立的应用进程叫做客户,被动等待连接建立的应用进程叫做服务器
建立连接过程:握手(采用三报文握手)
第一次握手:SYN = 1 ACK = 1
第二次握手:ACK = 1
第三次握手:SYN = 1
连接释放过程:采用四报文握手
第一次握手:FIN = 1
第二次握手:ACK=1
第三次握手:FIN = 1 ACK = 1
第四次握手:ACK = 1