运输层功能
端到端通信:指的是应用进程间的通信
复用、分用
端口
作用:完成应用进程间的复用、分用
端口只具有本地意义
服务器端口号
熟知端口号(0-1023)
登记端口号(1024-49151)
客户端端口号(49152-65535)->在进程运行时动态选择
UDP
特点
1.无连接
2.尽力交付(不可靠)
3.面向报文
4.无拥塞控制
5.支持一对一、一对多、多对多通信
6.首部8字节
伪首部仅用来计算校验和
TCP
特点
1.面向连接
socket:连接的2个端点
socket= IP+端口号
2.可靠传输
序号
确认
重传
3.面向字节流
4.点对点(一对一)
5.全双工通信
TCP报文格式
流量控制
接受方通过窗口字段控制流量
拥塞控制
拥塞控制的作用:确保网络不会瘫痪
开环控制:在设计网络时考虑好拥塞情况,运行时不 改正
闭环控制:在运行时动态考虑网络情况
拥塞控制的方法
慢开始->从0开始,指数增长,到慢开始门限ssthresh
拥塞避免->从慢开始门限ssthresh开始,线性增长,发生拥塞把ssthresh减半,重新开始慢开始
快重传->收到了3个重复ACK,直接重传对方未收到的报文,不必等计时器超时,然后执行快恢复
快恢复->慢开始门限ssthresh减半,从ssthresh开始线性增长
TCP连接管理
连接建立(三次握手)
客户端确认2次是为什么?
若采用2次握手
客户A发出连接建立请求1,延迟未到
客户A重新发出连接请求2,服务器B给出确认,连接建立,传完数据,连接关闭
建立请求1到服务器B,B给出确认,连接建立,但A没有数据要传,浪费了服务器资源
连接释放(四次挥手)