tcp、netstat、dns
传输层协议与应用
掌握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
|
物理层
|
|