传输层
传输层探究的问题
- 建立在不可靠网络上的可靠通信
- 连接建立和拆除,握手
- 拥塞和流量控制以及多路复用和分解
传输层协议:为运行在不同主机上的应用进程之间提供逻辑通信
TCP特点:有序交付,可靠,面向连接,流量拥塞控制
UDP特点:无序交付,不可靠,无连接
多路复用和多路分解
多路复用:从不同套接字中收集数据块,封装首部信息,生成数据段送给网络层
多路分解:将传输层数据段中的数据交付到正确的套接字
端口号:16bit,0-65535
0-1023:周知端口号,保留给周知应用层协议使用
1024-65535:可以随意使用
端口分配给进程:
客户端——随机在1024-65535中分配未使用的
服务器端——若为周知应用,则分配特定的0-1023之间的端口号
UDP
- UDP套接字:目的IP地址,目的端口号
- UDP应用:流多媒体应用,DNS,SNMP,RIP路由选择表更新
- 优点
(1)无需建立连接,不会引入相应时延
(2)简单,无需维护连接状态
(3)分组首部开销小,TCP 20字节,UDP 8字节
(4)无拥塞控制机制 - 数据段结构
- 首部:8字节,4个字段,每个字段2字节
源端口号
目的端口号
长度:包括首部在内的UDP数据段长度
(http响应报文中的长度指文件长度,不包括首部)
校验和:实现端到端的检错
TCP
- TCP报文结构
首部字段:20字节固定长度+可选
数据字段:应用层数据小于等于MSS 1460字节
首部
- 源端口号 目的端口号
- 序号字段(32bit)