传输层
知识点
1. UDP协议:无连接、不可靠、提供复用和分用功能
- UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。
- 虽然 UDP 用户数据报只能提供不可靠的交付,但 UDP 在某些方面有其特殊的优点。
-
发送数据之前不需要建立连接
-
UDP 的主机不需要维持复杂的连接状态表。
-
UDP 用户数据报只有8个字节的首部开销。
-
网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。
UDP传送速度快!
-
2. 端口的概念;熟知端口的范围0-1023
端口的概念
- 端口就是运输层服务访问点 TSAP。通俗讲,就是传输层地址。
- 端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。
- 从这个意义上讲,端口是用来标志应用层的进程
端口
- 端口用一个 16 bit 端口号进行标志。
- 端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。
两类端口
- 熟知端口,数值一般是0~1023。一些流行的服务,如Web、Email、Ftp等,使用熟知端口。
- 一般端口,用来随时分配给请求通信的客户进程。
3. TCP报文段格式
- 源端口和目的端口字段
各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。 - 序号字段
占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。 - 确认号字段
占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。 - 数据偏移
占 4 bit,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位不是字节而是 32 bit 字(4 字节为计算单位)。 - 保留字段
占 6 bit,保留为今后使用,但目前应置为 0。 - 紧急比特 URG
当 URG = 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。 - 确认比特 ACK
只有当 ACK = 1 时确认号字段才有效。当 ACK = 0 时,确认号无效。 - 推送比特 PSH (PuSH)
接收 TCP 收到推送比特置 1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。 - 复位比特 RST (ReSeT)
当 RST = 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。 - 同步比特 SYN
同步比特 SYN 置为 1,就表示这是一个连接请求或连接接受报文。 - 终止比特 FIN (FINal)
用来释放一个连接。当FIN = 1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。 - 窗口字段
占 2 字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP 连接的一端根据设置