传输层协议与应用
掌握TCP的封装和工作原理
掌握UDP的封装和工作原理
了解常用的TCP和UDP端口号
对TCP和UDP首部能够进行分析
传输层的作用
IP层提供点到点的连接
传输层提供端到端的连接
传输层的协议
TCP(Transmission Control Protocol)
- 传输控制协议
- 可靠的、面向连接的协议
- 传输效率低
UDP(User Datagram Protocol)
- 用户数据报协议
- 不可靠的、无连接的服务
- 传输效率高
TCP的工作原理
TCP的封装格式
连接与断开
流量控制
拥塞控制
差错控制
计时器
TCP的封装格式
| 0 -----------------------------------------------15 | 16 ------------------------------------------------ 31 |
源端口号
目标端口号
32位序列号
32位确认号
4位首部长度
保留 (6位)
U R G
A C K
P S H
R S T
S Y N
F I N
16位窗口大小
16位校验和
16位紧急指针
可选项
数据
发送TCP进程对应的端口号
目标端接收进
0 ~ 232-1范围内,数据段标记,用于到目的端对到达包的重组
0 ~ 232-1范围内,对发送端的确认信息,告诉发送端这个序号之前的数据段都收到了
紧急指针有效位,与16位紧急指针配合使用
确认序列号有效位,表明该数据包包含确认信息
通知接收端立即将数据提交给用户进程,不在缓存中停留,等待更多的数据
为1时,请求建立TCP连接
为1时,请求建立连接
为1时,数据发送完毕,请求断开连接
滑动窗口的大小,指明本地可接收数据的字节数
TCP的连接-三次握手
TCP的四次断开
TCP的流控机制-滑动窗口
a.通报窗口大小为3
b.发送窗口大小为3
c.缓冲区满
d.应用程序读取了1个数据段
e.通报窗口大小为1
f.实际发送窗口大小变为1
TCP的流控机制-拥塞控制2-1
TCP的流控机制-拥塞控制2-2
TCP的差错控制
TCP差错控制的3种方式
校验和
确认
受损伤的数据段
丢失的数据段
重复的数据段
失序的数据段
确认的丢失
超时
TCP 的计时器 4 - 1
重传计时器-为了控制丢失的数据段
TCP 的计时器 4 - 2
TCP 的计时器 4 - 3
保活计时器-防止两个TCP之间的连接长时间的空闲
TCP 的计时器 4 - 4
时间等待计时器-连接终止期间使用的
在发送了最后一个ACK后,不立即关闭连接,而是等待一段时间,保证能接收到重复的FIN数据段。
TCP 的应用
端口
协议
说明
21
FTP
文件传输协议,用于上传、下载
23
Telnet
用于远程登录,通过连接目标计算机的这一端口,得到验证后可以远程控制管理目标计算机
25
SMTP
简单邮件传输协议,用于发送邮件
53
DNS
域名服务,当用户输入网站的名称后,由 DNS 负责将它解析成 IP 地址,这个过程中用到的端口号是 53
80
HTTP
超文本传输协议,通过 HTTP 实现网络上超文本的传输
阶段总结
TCP的封装格式
TCP的连接与断开
流控机制
拥塞控制
差错控制
计时器
UDP 的封装格式
|0-------------------------------------------------------15|16-----------------------------------------------------31|
16 位源端口号
16 位目标端口号
16 位 UDP 长度
16 位 UDP 校验和
数据
发送端的UDP进程端口号
接收端的UDP进程端口号
包含数据的长度,可以算出数据的结束位置
UDP的差错控制(可选)
UDP 的使用
端口
协议
说明
69
TFTP
简单文件传输协议
53
DNS
域名服务
123
NTP
网络时间协议
111
RPC
远程过程调用
DNS服务器支持TCP和UDP两种协议的查询方式,而且端口都是53。大多数的查询都是UDP查询的,一般需要TCP查询的有两种情况:
- ①当查询数据较大以至于产生了数据分段,这时,需要利用TCP的分片能力来进行数据传输。
- ②当主(master)服务器和辅(slave)服务器之间数据同步通信的时候。
UDP 的流控和差错控制
UDP没有流控机制
UDP只有校验和来提供差错控制
需要上层协议来提供差错控制:例如TFTP协议
TCP/IP 协议栈
本章总结
阶段练习
在TCP中如何防止数据段的丢失?
如果接收方的缓存已经满了,接收方会向发送发发送什么样的确认信息?发送方收到后会怎么处理?
DNS
浏览一个网站
域名需要解析为IP
解析由DNS服务器完成
解析顺序:
1、找本地文件
- linux
/etc/hosts/
- Windows
C:\Windows\System32\drivers\etc\hosts
2、本地DNS缓存
3、网络上的DNS服务器
Linux的DNS服务器指定vim /etc/reslov.conf
nameserver 114.114.114.114
:x
应用层
http
传输层
TCP
80
53455
网络层
IP
192.168.
数据链路层
MAC
aa
bb
物理层