传输层
1、传输层提供的服务
1.1 传输层的功能
(1)提供应用进程间的逻辑通信(网络层提供主机之间逻辑通信)
(2)差错检测:首部和数据部分
(3)提供无连接或面向连接的服务
(4)复用和分用
此外,面向连接的服务还有以下两个功能:
(1)连接管理:如“TCP三次握手”机制
(2)流量控制与拥塞控制
1.2 传输层寻址与端口
(1) 端口号
端口号由16位二进制数表示,216=65536个
(2)熟知端口
FTP | TELNET | SMTP | DNS | TFTP | HTTP | SNMP |
---|---|---|---|---|---|---|
21,20 | 23 | 25 | 53 | 69 | 80 | 161 |
(3) 保留端口:0~1023
(4) 登记端口:1024~49151
(5) 客户端端口或短暂端口:49152~65535
(6) 套接字=(主机IP地址,端口号),唯一标识网络中某台主机上的某个应用进程
2、TCP与IP对比
TCP | IP |
---|---|
面向连接 | 无连接 |
字节流接口 | IP数据报接口 |
有流量控制 | 无流量控制 |
有拥塞控制 | 无拥塞控制 |
可靠、无丢失 | 不可靠、可能丢失 |
无重复 | 可能重复 |
按序交付 | 可能失序 |
3、TCP与UDP对比
TCP | UDP |
---|---|
面向连接,不提供广播、多播服务 | 无连接、无确认 |
可靠 | 不可靠 |
报文头部长,传输开销大 | 报文头部短,传输开销小,时延较短 |
4、TCP
4.1 TCP报文首部格式
源端口 | 目的端口 | |||||||||||||||||||||||
序号 | ||||||||||||||||||||||||
确认号 | ||||||||||||||||||||||||
数据偏移 | 保留 | URG | ACK | PSH | PST | SYN | FIN | 窗口 | ||||||||||||||||
校验和 | 紧急指针 | |||||||||||||||||||||||
选项(长度可变) | 填充 |
源端口和目的端口:2B
序号:4B
确认号:4B
数据偏移:4bit 保留字段:6bit 窗口字段:2B
校验和:2B 紧急指针:2B
选项字段:可变 填充字段:使整个首部长度是4B整数倍
4.2 TCP连接建立
(1) SYN=1, seq = x
(2) SYN=1, ACK=1, seq=y, ack = x+1
(3)ACK=1, seq=x+1, ack=y+1
4.3 TCP连接释放
(1) FIN=1, seq = x
(2) ACK=1, seq=v, ack = u+1
(3) FIN=1, ACK=1, seq=w, ack=u+1
(4) ACK=1, seq=u+1, ack = w+1
4.4 TCP可靠传输
(1) TCP数据编号与确认
①TCP是面向字节的;
②TCP的确认号表示接收端期望下次收到的数据中的第一个数据字节的序号
(2)TCP重传机制
①自适应算法:
平均往返时延:RTT=(1-α)×(旧的RTT)+α×(新的往返时延样本) , (0≤α<1,一般取α=0.125)
α→1,新RTT和原值相比变化较大
α→0,受新往返时延样本的影响不大
计时器超时重传时间RTO=β×RTT,(β>1,RTO略大于RTT)
②karn算法:(只要报文重传,就按以下计算)
新RTO=γ×(旧的RTO),(γ的典型值是2)
4.5 TCP流量控制
让发送方的发送速率不要太快,要让接收方来得及接收,不要使网络发生拥塞。
4.6 TCP拥塞控制
产生拥塞的条件: 对资源需求的总和>可用资源
目的:使网络能够承受现有的网络负荷
Note:分组丢失是网络发生拥塞的征兆不是原因
4.7 拥塞控制的4种算法
①慢开始
②拥塞避免
③快重传
④快恢复
5、UDP
5.1 基本概念
在IP数据报服务上增加了端口的功能(为了找到进程)和差错检测的功能
5.2 优点
①发送数据之前不需要建立连接
②UDP的主机不需要维持复杂的连接状态表
③只有8个字节的首部开销
④网络拥塞不会使源主机发送速率降低(无拥塞控制)
⑤支持一对一,一对多,多对一和多对多的交互通信
5.3 UDP数据报首部组成
伪首部 | 源端口 | 目的端口 | 长度 | 校验和 |
伪首部:2B ;源端口:2B;目的端口:2B;长度:2B;校验和:2B
校验和用于检验伪首部、首部和数据
5.4 UDP 校验(仅提供差错检测)
伪首部包括IP地址字段,目的IP地址字段,全0字段,协议字段(UDP固定为17),UDP长度字段
Note:伪首部只用于计算和验证校验和,其即不向下传送,也不向上递交
校验和无差错时,其结果应该全为1