只有主机才有的层次
传输层的功能:
- 传输层提供进程和进程之间的逻辑通信。(网络层提供主机之间的逻辑通信)
- 复用和分用。
- 传输层对收到的报文进行差错检测。
- 传输层的两种协议。(TCP UDP)
传输层的寻址与端口
逻辑端口/软件端口 端口是传输层的SAP(service access point),标识主机中的应用进程。长度为16bit
- 服务端使用的端口号
- 熟知端口号: 0-1023
- 登记端口号: 1024-49151
- 客户端使用的端口号
49152-65535 - 套接字Socket
唯一标识了网络中的一个主机和它上面的进程。
Socket = (主机IP地址,端口号)
UDP用户数据报协议
- 主要特点
- 无连接
- 不保证可靠交付
- 面向报文
- 无拥塞控制
- 首部开销小 8B TCP 20B
UDP报文格式
源端口+目的端口+总长度+校验和UDP校验
发送端和接收端 加伪首部检验(12B)
TCP协议
- 首部格式
- 紧急位URG:为1时,标明此报文段中含有紧急数据,不需要排队
- 确认位ACK:为1时,确认号有效
- 同步位SYN:为1时,表明是一个连接请求/连接接受报文
- 终止位FIN:为1时,表明此报文段发送方数据已发完,要求释放连接
- TCP连接管理
三个阶段
连接建立---->传输数据---->连接释放
TCP连接建立 三次握手
SYN洪泛攻击
解决办法:SYN cookieTCP连接释放 四次挥手
TCP可靠传输
保证接收方进程从缓冲区读出的字节流与发送方发出的字节流是完全一样的。-
实现机制:
- 校验
- 序号
- 确认
- 重传
TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间)- 冗余ACK(冗余确认)
每当比期望序号大的失序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号。
- 冗余ACK(冗余确认)
流量控制
滑动窗口机制实现流量控制拥塞控制
四种算法:
- 慢开始
- 拥塞避免
- 快重传
- 快恢复