考纲内容
- 传输层提供的服务
- UDP
- TCP
- TCP段,TCP连接管理、可靠传输、流量控制、拥塞控制
1. 传输层提供的服务
1. 功能
- 提供应用进程间的逻辑通信(端到端的通信);网络层提供的是主机间的逻辑通信
- 复用和分用
- 复用:发送方不同的应用进程都可使用同一个传输层协议传送数据
- 分用:接收方的传输层在剥去报文的首部后能把这些数据正确交付到目的应用进程
- 对收到的报文进行差错检测(首部和数据部分);网络层只检查IP数据报的首部
- 提供两种不同的传输协议(UDP和IP);网络层无法同时实现两种协议
2. 传输层的寻址与端口
- 端口的作用
- 让应用层的应用进程将其数据通过端口向下交付给传输层
- 让传输层知道将其报文段中的数据向上通过端口交付给应用层相应的进程
- 分类
- 硬件端口:不同硬件设备进行交互的接口
- 软件端口:应用层的各种协议进程与传输实体进行层间交互的一种地址(传输层使用)
- 端口号
- 服务端使用的端口号
- 熟知端口号:0~1023
- 登记端口号:1024~49151
- 客户端使用的端口号:49152~65535
- 套接字(通信端点):唯一地标识网络中的一台主机和其上的一个应用(进程)
- 作用:采用发送方和接收方的套接字(Socket)组合来识别端点
- 组成:套接字 = (主机IP地址,端口号)
3. 无连接服务和面相连接服务
- IP vs UDP
- IP数据报对路由可见
- UDP数据报封装成IP数据报在网络层传输时,UDP数据报的信息对路由不可见
- TCP vs 虚电路
- TCP报文段在传输层抽象的逻辑信道中传输,对路由器不可见
- 虚电路所经过的交换结点都必须保存虚电路状态信息
- 注意:网络层采用虚电路方式,则无法提供无连接服务;而传输层采用TCP不影响网络层提供无连接服务
2. UDP协议
1. UDP数据报
- 特点
- 面向报文(仅增删首部,不修改报文内容)
- 可靠性由用户在应用层维护
- 优点
- UDP无须建立连接,不会产生建立连接的时延
- 无连接状态,减少资源消耗
- 分组首部开销小(TCP首部开销20B,UDP首部开销8B)
- 应用层能更好地控制要发送的数据和发送时间(无拥塞控制,稳定传输)
- UDP基于端口的分用
- 应用场景
- 一次性传输较少数据的网络应用
- 多媒体应用(实时性要求 > 可靠性要求)
- 首部格式
2. UDP校验
- 定义:计算校验和时,要在UDP数据报之前增加12B的伪首部(伪首部不是UDP的真正首部)
- 注意:伪首部既不向下传送也不向上递交,仅为了计算校验和(校验UDP数据报、IP数据报的源IP地址和目的IP地址)
3. TCP协议
1. TCP协议概述
- 定义:TCP是在不可靠的IP层上实现的可靠的数据传输协议,主要解决传输的可靠、有序、无丢失和不重复问题
- 特点
- TCP只能点对点传输(不能广播和多播)
- 面向连接,可靠传输(可靠有序,不丢不重)
- 全双工通信,随时发送数据,连接端设有发送缓存和接受缓存
- 面向字节流
- 发送缓存暂存以下数据
- 发送应用程序传送给发送方TCP准备发送的数据
- TCP已发送但尚未收到确认的数据
- 接收缓存暂存以下数据
- 按序到达但尚未被应用程序读取的数据
- 不按序到达的数据
2. TCP报文段
- 数据单元:报文段(首部最短20B,长度为4B的整数倍)
- 功能:运载数据、建立连接、释放连接和应答
- 各字段意义
- 源端口和目的端口字段:2B
- 序号字段:4B,其值代表本报文段所发送的数据的第一个字节的序号(TCP按字节发送,传送的数据流中的每个字节都编号)
- 确认号:4B,期望收到对方的下一个报文段的数据的第一个字节的序号
- 数据偏移(首部长度):4bit,单位为4B,最大长度为60B
- 保留字段:6bit,目前置全0
- 紧急位URG:URG=1时,表明紧急指针字段有效(数据从地一个字节到紧急指针所指字节就是紧急数据
- 确认为ACK:ACK=1时确认号字段有效(连接建立后ACK必须置1)
- 推送位PSH(Push):若接收TCP收到PSH=1的报文段,就尽快交付
- 复位位RST(Reset):RST=1时表明TCP连接出现严重差错
- 同步位SYN:SYN=1表示这是一个连接请求或连接接收报文
- SYN=1,ACK=0 :连接请求报文
- SYN=1,ACK=1 :连接接收报文
- 终止位FIN(Finish):释放连接(FIN=1表示数据发送完毕)
- 窗口字段:2B,允许对方发送的数据量(作为接收方让发送方设置其发送窗口的依据,单位为字节)
- 校验和:2B,校验首部和数据(也需加伪首部,协议字段的17改为6,其他同UDP)
- 紧急指针字段:16bit,指出本报文段中紧急数据共有多少字节(紧急数据放在本报文段数据的最前面)
- 选项字段:长度可变,MSS是TCP报文段中的数据字段的最大长度
- 填充字段:使整个首部长度是4B的整数倍
3. TCP连接管理
1. 连接与管理
- 三个阶段
- 建立连接要解决的问题
- 要使每一方都能够确知对方的存在
- 允许双方协商一些参数(最大窗口值、时间戳选项及服务质量)
- 能够对运输实体资源进行分配(缓存大小、连接表中的项目)
- 管理:使运输连接的建立和释放都能正常进行
- 特点
- 连接的端口为套接字或插口
- 每条TCP连接唯一地被通信两端的两个端点(两个套接字)确定
- 采用客户机/服务器方式
2. TCP连接的建立(三次握手)
- SYN洪泛攻击:攻击者发送TCP SYN,SYN是TCP三次握手中的第一个数据包,当服务器返回ACK后,该攻击者不对其进行再确认,那这个TCP连接就处于挂起状态,服务器收不到再确认的话,还会重复发送ACK给攻击者。这样会更加浪费服务器的资源,攻击者就对服务器发送大量的这种TCP连接,由于每一个都无法完成三次握手,所以在服务器上,这些TCP连接会消耗CPU和内存,可能导致服务器死机
3. TCP的连接释放(四次挥手)
|