一、OSI参考模型-----OSI/RM-----开放式的系统互联参考模型
ISO-----国际标准化组织
(1)产生背景 :
1、各大厂商都有自己的协议
2、跨厂商设备不兼容;
3、用户购买维护设备成本高
网络通讯模型:
OSI—开放式—七层参考模型(定义网络的标准)
(2)每层作用
应用层—应用程序(接受人类传递的一些参数)为应用程序提供网络服务
表示层—转化为二进制—定义数据的格式,对数据进行加密、解密、压缩、解压缩
会话层—建立维持和断开(PC与服务器的交流)—对通信双方的会话进行建立、维护、拆除------session id----同一个应用程序的不同进程间
以下网络研究的重点
传输层(端口号-16位二进制构成0-65535个)—去优化传输(端对端)—为了区分进程和服务(0-1023知名端口号,著名端口号(16为2进制),标定了特定的服务)
80端口:HTTP协议(不够安全)now(HTTPS:HTTP超文本传输协议+SSL 443端口)
建立端到端的连接(逻辑上的连接)---端口号 端口号:0-65535,其中0和65535系统保留端口号 知名端口号:1-1023,众所周知的协议提供端口号
HTTP:超级文本传输协议---80
HTTPS:安全的超级文本传输协议----8080
FTP:文件传输协议---20、21
SMTP:简单邮件传输协议,发送邮件---25
POP3:邮局协议,接收邮件---110
DNS:域名解析系统------将域名和IP地址做个转换----52
DHCP协议:动态主机配置协议,自动获取IP地址----67、68
telenet协议:远程登录协议---23
动态端口号:1024-65534,客户端
网络层(IP地址)实现逻辑寻址—IP寻址,提供路由----路由器
数据链路层(介质-(物理原件)访问控制层)Mac地址,LLC物理寻址—交换机----MAC地址寻址,封装成帧、差错检测、流量控制
物理层
核心:分层(位于同一层的协议的设备具有相同或相似的功能—而不同层次之间的协议或者设备具有明显的差异)—传输比特流(传输二进制)、定义一些参数标准(定义电压、接口、线缆、传输距离、信号 传输的模式等物理参数)
信号传输的模式:
单工模式:同一时刻,只有一个设备进行收或者发消息(收音机)
半双工模式:同一时刻,两端的设备不能同时发送或者接收数据 (对讲机
) 全双工模式:同一时刻,两端的设备都能同时发送或者接收数据
(3)通讯过程(封装与解封装)
封装:在原始数据的基础上额外加了一些头部信息
解封装:拆掉封装的额外头部信息,漏出最原始的数据 过程: 数据发送:从上到下层层封装 接收时:从下至上层层解封装
二、TCP/IP参考模型
(1)产生背景
1、OSI抢占市场失败
2、OSI划分的层次太多,会话层和表示层存在的意义不大
1.更利于标准化
2.降低层次之间的关联性(每一层都提供自身的服务—每一层都在下层的基础上提供一些增值服务)
TCP/IP模型协议簇一系列协议的组合
1.分的太细
TCP/IP模型
PDU-协议数据单元(首提出OSI)
L(layer层)3 PDU
应用层—数据报文
HTTP:超文本传输协议80
HTTPS:443
Tenet:23(远程登录)
传输层—数据段
三、TCP/IP协议簇及抓包分析
1、TCP协议------传输控制协议 (1)头部:固定的头部长度20字节,范围:20-60字节
source port:源端口号
destination port:目标端口号
seq number:序列号,表示本机发出的数据报文的编号
Ack number:确认序列号:标识请求对方下次发送的数据报文的编号;表示已经收到对方的数据报文 了
reserved:保留字段,留给未开发的功能 URG=1,
urgent pointer ,紧急指针位,优先发送紧急数据
PSH:push,推,让缓冲区中的数据能尽快的到达发送端
RST:重置,重新发送数据
window:窗口,通告本机接收或发送数据的能力
checksum:校验和,保证数据在传输中的完整性
data:从应用层传下来的数据
(2)TCP的可靠机制:TCP三次握手:
SYN:连接建立
第一次:由客户端发出连接请求到服务器,服务器收到后可以确定客户的发送与自身的接收没问题。
第二次:再由服务器回话个客户,让客户知道自己的发送与接受没问题,这时服务器还不知自己的发送是否有碍,
第三次:需客户在此回话表示服务器的发送无碍时,方可以稳定建立连接,三次握手完成后就可以进行数据传输。
TCP三次握手抓包图
MSS---最大分段长度-----1500字节
TCP(报头字段)—面向连接-三次握手(起始+数据量-1)
可靠传输(排序、确认、重传、流控)-可进行流控-可分段-消耗资源多——32为2进制=4个字节URG紧急指针 RSH推送标志位 RST SYN(三次握手的报头)非正常连接 校验和(检测数据是否完整)ACKnumber-确认序号=本地接受到的+1——滑动窗口
TCP的四次挥手:
FIN:标志着断开连接
第一次:若由客户端发出断开请求时,当服务器收到后,表明了客户没有要给服务器发送数据的事。
第四次:客户端收到后,再次给服务器发送同意的信息时,就会关闭连接,此时当客户端等待2msl时,客户端依旧没有收到信息时,则证明服务器已正常关闭,此时客户端就可以正常关闭。
TCP四次挥手抓包图:
TCP确认重传机制
滑动窗口机制:通过窗口大小,通告本机的接收能力,从而实现流量控制
完整性校验机制:通过checksum字段,实现对数据完整性的校验,保证数据在传输中的完整性
Ack=上一次的seq+上一次的len
seq=上一次的Ack
滑动窗口机制:通过窗口大小,通告本机的接收能力,从而实现流量控制
完整性校验机制:通过checksum字段,实现对数据完整性的校验
(3)TCP协议的特点:
面向连接,可靠协议
(4)适用场景:对传输效率要求比较低,可靠性要求高,浪费带宽资源
2、UDP协议----用户数据协议
(1)头部
(2)UDP特点:
不面向连接,不可靠协议;
(3)使用场景:对传输效率要求比较高,可靠性要求低,不浪费带宽资源
UDP—不面向连接-不可靠传输-可进行流控(只管发)-不可分段-消耗资源少
应用场景:TCP用于数据可靠性高-对传输效率较低-eg:传输文件
UDP用于数据可靠性低-对传输效率较高-eg:通讯、直播
网络层—数据包
IP协议
数据链路层—数据帧(frame)
3、IP协议
(1)IP头部格式
version:版本号,IPV4/IPV6
IHL:IP报文的头部长度,固定长度:20字节 ,范围:20-60字节
type of service:服务类型,QOS(服务质量),控制数据的优先级
total length:总长度=IP头部+从上层传下的数据长度
identification:标识符。保证数据被分片后,区别与网络中其他IP数据报文
fragment offset:分片偏移,表示在原始数据报文中分片后的位置
header checksum:头部校验和,对IP协议的头部做个校验
(2)tcp分段和IP分片:
TCP分段:MSS
4、ICMP协议-----网际报文控制协议
(1)作用:差错(或异常)报告; 网络探询;
(2)头部
(3)实现工具
ping命令 :测试网络连通性
查询报文:我们可以通过发包数量与回报数量来判断目标的状况
ECHO REquest:ping命令请求
ECHO REPLY:ping命令回复
差错检测报文:
网络不可达:网络故障
主机不可达:寻找的IP地址有问题
协议不可达:协议不兼容
端口不可达:防火墙禁ping服务,端口不连通
重定向: 指导数据报文的流向,使数据流向正确的网关;
特定情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机 改变路由
tracert命令:路由跟踪
5、以太网帧协议— 以太网协议
(1)头部
前同步码:调整接收端的时钟周期使其与发送端一样
帧开始定界符:标识数据帧的开始
FCS:MAC帧的尾部,帧校验序列
类别:FCS帧校验序列-CRC算法
物理层—比特(bit)
封装(在某一层次数据之前封装上对应的功能数据)和解封装(封装逆过程)
IPV4(4位二进制100)
IPV6(110)
协议—指示上层用户何种协议
标识、标志、片漂移—IP的分片
MTU-(最大传输单元)数据链路层不能超过1500Byte
MSS-最大长度传输—传输分段后大小-1460Byte