第二章
一、OSI--互联参考模型(ISO--国际标准化组织)
1、背景
(1)各大厂商都有自己的协议(不利于通信)
(2)跨厂商设备不兼容
(3)用户购买维护设备成本高
2、每层作用
- 应用层:为应用程序提供网络服务
- 表示层:定义数据的格式,对数据进行加密、解密、压缩、解压缩
- 会话层:对通信双方间的回话进行建立、维护、拆除---sesssion id--同一个应用程序的不同(进程)页面
- 传输层:建立端到端的连接(逻辑上的连接)--端口号
端口号:0-65535,0和65535系统保留端口号
知名端口号:1-1023, 众所周知的协议提供给端口号
HTTP:超级文本传输协议--80---TCP
HTTPS:安全的超级文本传输协议(加密)--8080---TCP
FTP:文件传输协议--20、21---TCP
SMTP:简单邮件传输协议,发送--25---TCP
POP3:邮局协议(第三版),接收--110---TCP
DNS:域名解析系统--将域名和IP地址进行转换--53---TCP/UDP
DHCP:动态主机配置协议,自动获取IP地址--67、68
Telenet协议:远程登录协议--23---TCP
动态端口号:1024-65534,客户端
- 网络层:网络层地址寻址(IP地址),提供路由--路由器
- 数据链路层:交换机--MAC地址寻址,封装成帧、差错检测、流量控制
- 物理层:传输比特流(传输二进制)、定义一些参数标准(定义电压【一根线两端电压,防止烧坏设备】、接口【原厂商充电线】、线缆、传输距离【依线缆而定】、物理拓扑、信号传输的模式等物理参数)
信号传输的模式:
- 单工模式:同一时刻,只有一个设备进行收或者发
- 半双工模式:同一时刻,两端的设备不能同时发送或者接收数据(对讲机)
- 全双工模式:同一时刻,两端的设备都能同时发送或者接收数据
- 通讯过程(封装与解封装)
封装:在原始数据的基础上额外加了一些头部信息
解封装:拆掉封装的额外头部信息,漏出最原始的数据
过程:
数据发送:从上至下层层封装
接收时:从下至上层层解封
- TCP/IP参考模型
- 背景
- OSI抢占市场失败
- OSI划分层次太多,会话层和表示层存在意义不大
- 模型类型or区别
一般为5层模型(实战)
- 通讯过程
PDU:协议数据单元
- TCP/IP协议簇抓包分析
SNMP:简单网络管理协议
TFTP:简单文件传输协议(类似http与https)
TCP/UDP/IP
Ethernet:以太网协议
- TCP协议---传输控制协议
- 头部:固定长度20字节,范围:20-60字节
- Source port:源端口
- Destination port:目标端口号
- Seq number:序列号,标识本机发出的数据报文的编号【找错】
- Ack number:确认序列号
- 标识请求对方下次放松的数据报文的编号
- 表示已经收到对方的数据报文
- Data offset:数据偏移,表示数据分段在完整数据中的位置
- Reserved:保留字段,留给未开发的功能
- URG=1,urgent pointer,紧急指针位(优先发送紧急数据)
- PSH:push推,使缓冲区的数据尽快的到达发送端
- RST:重置字段(路由器-恢复出厂设置)重新发送数据
- Window:窗口,通告我本机的接受或者发送数据的能力(以少的为主)
- Checksum:校验和(两端校验和一致为正确,不一致则在传输中没有丢失或者黑客篡改)保证数据在传输中的完整性
- Data:从应用层传下来的数据
(2)TCP可靠机制
TCP连接机制:
①(一次连接)三次握手:第三次时已经将自己的数据发送出去
SYN:连接建立
(三次连接过程)
第一次:由客户端发出连接请求到服务器,服务器收到后可以确定客户的发送与自身的接收没问题。
第二次:再由服务器回话个客户,让客户知道自己的发送与接受没问题,这时服务器还不知自己的发送是否有碍,
第三次:需客户在此回话表示服务器的发送无碍时,方可以稳定建立连接,三次握手完成后就可以进行数据传输。
TCP三次握手抓包图
(传输层)MSS---最大分段长度--1k5字节
TCP的四次挥手:
FIN:标志断开连接
TCP四次挥手抓包图
(四次挥手过程)
第一次:若由客户端发出断开请求时,当服务器收到后,表明了客户没有要给服务器发送数据的事。
第二次:当服务器收到后,再次回复给客户端表明同意你的请求。
第三次:再次由服务器给客户端发送关闭连接的请求。
第四次:客户端收到后,再次给服务器发送同意的信息时,就会关闭连接,此时当客户端等待2msl时,客户端依旧没有收到信息时,则证明服务器已正常关闭,此时客户端就可以正常关闭。
TCP确认重传机制(发消息/延迟):
Ack=上一次的seq+上一次的len(已连接ing)
Seq=上一次的Ack
滑动窗口机制:通过窗口大小,通告本机的接收能力,从而实现流量控制
完整性校验机制:通过checksum字段,实现对数据完整性的校验,保证数据在传输过程中的完整性
(3)TCP协议的特点
面向连接,可靠协议;
实现流量控制;
进行数据分段;
(4)适用场景:
对传输效率要求较低,对可靠性要求较高,浪费带宽资源
- UDP协议---用户数据协议
- 头部
- UDP特点:
不面向连接,不可靠协议;
没有流量控制机制;
- 适用场景
对传输效率要求高,可靠性要求低,不浪费带宽资源
- IP协议---互联网协议
- IP头部格式
Version:版本号,IPV4/IPV6
IHL:IP报文的头部长度,固定长度:20字节(八位一节、32*5/8),范围:20-60字节
Type of service:服务类型,QOS(服务质量),控制数据的优先级
Total length:总长度=IP头部+上层传下来的数据长度
Identification:标识符,保证数据被分片后区别与网络中其他IP数据报文(防止混淆)
MTU---最大传输单元---1k5字节(超过就分片)
Flags:标志位
- DF=1,不分片
- MF=1,分片
Fragment offset:分片偏移,表示在原始数据报文中分片后的位置(接收端收到数据包不好重组)
TTL:生存时间,代表数据包经过的路由器数量,0-255(每经过一个路由器-1直到为0丢弃)
Protocol:标识上层协议
Header checksum:头部校验和,对IP协议的头部做个校验(只保证头部信息不被篡改)
(2)TCP分段和IP分片
TCP分段:MSS
IP分片:MTU
- ICMP协议---网际报文控制协议
- 作用:差错(异常)报告;---ping
网络探询;---tracert
- 头部
- 实现工具
Ping命令:测试网络连通性
- 查询报文:我们可以通过发包数量与回报数量来判断目标的状况
Echo request:ping命令请求
Echo reply:ping命令回复
- 差错检测报文:
网络不可达:网络故障
主机不可达:寻找的IP地址有问题
协议不可达:协议不兼容
端口不可达:防火墙禁ping服务,端口不连通
重定向:(最优)
指导数据报文的流向,使数据流向正确的网关;
特定情况下,当路由器检测到一台机器使用非优化路由时,它会向该主机发送一个ICMP重定向报文,请求主机改变路由
- 以太网帧协议
- 头部
前同步码:调整接收端的时钟周期使其与发送端一样(做准备)
帧开始定界符:标识数据帧的开始
FCS:MAC帧的尾部,帧校验序列