一、OSI参考模型---开放系统互连参考模型---OSI/RM
ISO---国际标准化组织
(1)产生背景
各大厂商之间的设备是不兼容的;
各大厂商都有自己的协议;
用户购买、维护设备的成本过高
(2)每层作用
![](https://img-blog.csdnimg.cn/134871ef495c404fb3af742cf616f33b.png)
应用层:为应用程序提供网络服务
表示层:定义了数据的格式,对数据进行加密、解密、压缩、解压缩
会话层:建立、维护、拆除通信双方的会话 ---session id
传输层:建立端到端的连接(逻辑上的连接)---依靠端口号
端口号的取值范围:0-65535,其中0和65535是系统保留的端口号
知名端口号:1-1023
动态端口号:1024-65534
DNS:域名解析系统 ,端口号53
HTTP协议:超文本传输协议,端口号80
POP:邮局协议,POP3,发送邮件的时候 端口号:110
SMTP:简单邮件传输协议:接收方,端口号:25
FTP协议:文件传输协议,20、21
SSH:安全的远程登录 22
telnet:远程登录服务 ,端口号23
DHCP协议:动态主机配置协议 端口号:67、68
网络层:网络IP地址寻址和路由,路由器是网络层设备(3层设备)
数据链路层:MAC地址寻址,交换机一般是2层设备、封装成帧、差错检测、流量控制
LLC子层:逻辑链路控制子层,为数据的传输提供一个可靠性的保证,减少数据帧出现丢失、重复、失序
MAC子层:媒体接入控制子层,负责识别网络层的协议
物理层:传输电信号,传输比特流,定义了一些参数的标准(定义了电压、接口、线缆标准、传输介质、信号传输模式的标准)
信号传输模式:
单工模式:同一时刻,只能有一个设备收或发消息 (听收音机广播)
半双工模式:同一时刻,只有一端的的设备都可收发消息(传呼机)
全双工模式:同一时刻,两端都可以同时收发消息
(3)通讯过程(封装与解封装)
![](https://img-blog.csdnimg.cn/39ca563c75bc454fb93829fbec3f9323.png)
封装:在原始数据的基础上,添加一些字段信息,形成新的数据
解封装:拆掉封装的额外信息,还原成原始数据的数据
过程:发送端:数据从上到下逐层封装
接收端:数据从下到上逐层解封装
OSI分层的好处:
各层协作,完整的传输数据;
各层功能独立,能快速定位故障问题。
二、TCP/IP参考模型-----传输控制协议/互联网协议
(1)产生背景
1、OSI抢占市场失败
2、OSI划分的层次太多,会话层和表示层存在的意义不大
(2)模型类型及区别
![](https://img-blog.csdnimg.cn/7fb0de9ea00b4664a07bb9a27488c928.png)
(3)通讯过程(封装与解封装)
![](https://img-blog.csdnimg.cn/8858d5723ef44bfca016edf3c5196db7.png)
![](https://img-blog.csdnimg.cn/11a95c01d7f247828ef1d38605732756.png)
PDU:协议数据单元
三、TCP/IP协议簇及抓包分析
![](https://img-blog.csdnimg.cn/a25809c54ebf47948e5b2a866495f4f2.png)
1、TCP协议------传输控制协议
(1)头部:固定的头部长度20字节
![](https://img-blog.csdnimg.cn/9134d91f73584b5995e80f56de7454f1.png)
source port:源端口
destination port :目标端口
sequence number:序列号,标识本机发送的数据报文的编号
Acknowledgment number:确认号,表示收到了对方的消息,请求对方下次发送的数据报文的编号
data offset:数据偏移,标识数据分段在完整数据中的位置
reserved:保留,留给将来要开发的功能去使用
Window:窗口,通告本机的接收能力
1字节=8位 1Byte=8bit
checksum:校验和
urgent pointer:紧急指针
options:可选项
padding:填充
data:数据
URG:紧急指针的标志
PSH:推,让缓冲区的数据能够尽快到达接受者这边
RST:重置,重置TCP的连接
(2)TCP的可靠机制:
TCP三次握手:
![](https://img-blog.csdnimg.cn/847b444eb58f480f96a22342b5db4cf7.png)
SYN:标志连接的建立
ACK:标志着对对方消息的确认
TCP的四次挥手:
![](https://img-blog.csdnimg.cn/e1b283d0d4df4c0c9ea50f527d3eee05.png)
FIN:标志着断开连接
TCP确认重传机制;
![](https://img-blog.csdnimg.cn/19107b751f8948d7bb43f4be66dc9d28.png)
Ack=上一次的seq+上一次的len
seq=上一次的Ack
![](https://img-blog.csdnimg.cn/05b2d31a1fbf47c3a1509eea1e60c234.png)
滑动窗口机制:通过窗口大小,通告本机的接收能力,从而实现流量控制
完整性校验机制:通过checksum字段,实现对数据完整性的校验
(3)TCP协议的特点
面向连接、可靠协议;
有流量控制机制;
保证数据的完整性;
进行数据分段;
(4)适用场景:
对传输效率要求低,准确性要求高的场景(发送文件、邮件)
2、UDP协议----用户数据协议
(1)头部
![](https://img-blog.csdnimg.cn/4795e79fddba49f6938b2eb70e4d13d0.png)
length:在传输层整体数据的长度(UDP头部+从应用层传输的数据长度)
(2)UDP特点:
无连接、不可靠协议,传输数据时,尽最大努力交付
没有流量控制机制;
(3)使用场景
对传输效率要求高,准确性要求低的场景(聊天、直播)
3、IP协议-----网络层事实上的,标准的、唯一的协议
(1)IP头部格式
![](https://img-blog.csdnimg.cn/81162faf5f954c70b7d98c413407fb9f.png)
version:版本(IPV4 IPV6)
IHL:IP的头部长度,IP头部的固定长度20字节
type of service:服务类型,标识业务的优先级
total length:总长度=IP头部长度+从传输层传下的数据长度
identification:标识,区分网络上不同的IP数据
flages:标志位,是否分片
DF:DF=1,表示不分片
MF:MF=1,表示分片
fragment offset:片偏移,表示该IP包在该片分组中的位置
time to live:生存时间,经过路由器的数量,每经过一个路由器TTL值减1
protocol:协议,表示从上层板传下来的数据所使用的协议
header checksum:头部校验和
source address:源地址(源IP地址)
destination address:目的IP地址
(2)tcp分段和IP分片
TCP分段:MSS ---最大数据分段长度,1460字节
IP分片:MTU-----最大传输单元,1500字节
4、ICMP协议-----网际报文控制协议
(1)头部
![](https://img-blog.csdnimg.cn/94a13cb4c09d440da684404ac6a1d457.png)
ping命令 :ICMP协议的执行者
ECHO REPLY:ping命令回复
网络不可达:网络故障
主机不可达:寻找的IP地址有问题
协议不可达:协议不兼容
端口不可达:防火墙禁ping服务,端口不连通
ECHO REquest:ping命令请求
5、以太网帧协议
(1)头部
![](https://img-blog.csdnimg.cn/aae6304a7ea843d0b68dec37a71d21e7.png)
FCS:MAC帧的尾部,帧校验序列
帧开始定界符:标识数据帧的开始