文档介绍:传输层协议与应用
本章目标
掌握TCP的封装和工作原理
掌握UDP的封装和工作原理
了解常用的TCP和UDP端口号
对TCP和UDP首部能够进行分析
Page 2/33
本章结构
传输层
提供端到端的连接
拥塞控制
TCP的连接与断开
TCP封装格式
UDP封装格式
传输层的作用
UDP工作原理
TCP工作原理
流量控制
差错控制
计时器
TCP的应用
UDP的应用
Page 3/33
传输层的作用
IP层提供点到点的连接
传输层提供端到端的连接
IP层:找到了这台主机!
传输层:找到了应用进程
Page 4/33
传输层的协议
TCP(Transmission Control Protocol)
传输控制协议
可靠的、面向连接的协议
传输效率低
UDP(User Datagram Protocol)
用户数据报协议
不可靠的、无连接的服务
传输效率高
Page 5/33
TCP的工作原理
TCP的封装格式
连接与断开
流量控制
拥塞控制
差错控制
计时器
Page 6/33
TCP的封装格式
源端口号
目标端口号
32位序列号
32位确认号
4位
首部长度
保留(6位)
URG
ACK
PSH
RST
SYN
FIN
16位窗口大小
16位校验和
16位紧急指针
可选项
数据
0
15
16
31
发送TCP进程对应的端口号
目标端接收进程的端口号
0 ~ 232-1范围内,数据段标记,用于到目的端对到达包的重组
0 ~ 232-1范围内,对发送端的确认信息,告诉发送端这个序号之前的数据段都收到了
紧急指针有效位,与16位紧急指针配合使用
确认序列号有效位,表明该数据包包含确认信息
为1时,请求重新建立TCP连接
为1时,请求建立连接
为1时,数据发送完毕,请求断开连接
滑动窗口的大小,指明本地可接收数据的字节数
通知接收端立即将数据提交给用户进程,不在缓存中停留,等待更多的数据
Page 7/33
TCP的连接-三次握手
发送 SYN ,请求建立连接
(seq=100 ctl=SYN)
Host A
Host B
1
发送 SYN 、ACK
(seq=300 ack=101
ctl=SYN、ACK)
2
3
发送ACK
(seq=101 ack=301
ctl=ACK)
Page 8/33
TCP的四次断开
发送 FIN,请求断开连接
(seq=101 ,ack=301,
ctl=FIN,ACK)
Host A
Host B
1
发送 ACK
(seq=301,ack=102
ctl=ACK)
2
4
发送ACK
(seq=102,ack=302
ctl=ACK)
Seq=100
Seq=300
Ack=101
3
发送 FIN,请求断开连接
(seq=301,ack=102
ctl=FIN,ACK)
Page 9/33
TCP的流控机制-滑动窗口
Host A
Host B
1
2
3
Ack=301,win=3
Seq=300,ack=101,win=3
Seq=100,win=3
Ack=104,win=1
Seq=101,win=3
Seq=102,win=3
Seq=103,win=3
Seq=104,win=3
0
3
接收方的缓冲区
0
1
3
2
发送窗口大小为3
通报窗口大小为1
缓冲区满
应用程序读取了1个数据段
实际发送窗口大小变为1
通报窗口大小为3
Page 10/33