前言
OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。ISO为了使网络应用更好的普及,推出了OSI参考模型。网络参考模型的目的就是能够让我们更好地规范网络,所以还出现了TCP/IP四层和五层模型
一、网络分层
在网络中常用的分层模型有两种
OSI参考模型
TCP/IP参考模型
为什么要对网络进行分层呢?因为这样可以将复杂的流程分解为几个功能相对单一的子过程,整个流程更加清晰,复杂问题简单化,更容易发现问题并针对性的解决问题
TCP/IP四层(思科) | TCP/IP五层(华为) | OSI七层(标准参考模型) |
---|---|---|
应用层 | 应用层 | 应用层 |
表示层 | ||
会话层 | ||
传输层 | 传输层 | 传输层 |
网络层 | 网络层 | 网络层 |
网络接口层 | 数据链路层 | 数据链路层 |
物理层 | 物理层 |
二、七层参考模型功能介绍
应用层(第七层) | 网络服务与最终用户的一个接口 |
表示层(第六层) | 数据的表示、安全、压缩 |
会话层(第五层) | 建立、管理、中止会话 |
传输层(第四层) | 定义传输数据的协议端口号,流量控制及差错校验 |
网络层(第三层) | 进行逻辑地址寻址,实现不同网络路径选择 |
数据链路层(第二层) | 建立逻辑地址连接,进行硬件地址寻址及差错校验 |
物理层(第一层) | 建立、维护、断开物理连接 |
在通信的过程中,端口到端口通信属于传输层,点到点通信属于网络层
三、TCP/IP五层模型常见协议
应用层 | HTTP、FTP、TFTP、SMTP、SNMP、DNS |
传输层 | TCP、UDP |
网络层 | ICMP、IGMP、IP、ARP、RARP |
数据链路层 | 由底层网络定义的协议 |
物理层 |
同IP不同协议与服务之间可以通过端口号来区分
协议端口号取值范围:1~65535
1、网络层协议介绍
(1)ICMP
(控制信息协议,所使用IP协议号为1)
ping功能所使用的协议,进行连通性测试和结果的反馈。traceroute使用的也是icmp协议,相比较ping,traceroute能够追踪到到达目标所经过的沿途路由点,如下所示:
C:\Users\1fengtianyunyue>tracert baidu.com
通过最多 30 个跃点跟踪
到 baidu.com [220.181.38.148] 的路由:
1 3 ms 5 ms 3 ms 192.168.1.165
2 * * * 请求超时
3 45 ms 26 ms 19 ms
4 ...........................................省略
(2)IGMP
(组播协议即组管理协议,IP协议号为2)
互联网组管理协议是TCP/IP协议族中负责IP组播成员管理的协议,用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系
(3)IP
(网络之间互连的协议)
它可以向传输层提供各种协议的信息,例如TCP、UDP等,对下可将IP信息包放到链路层,通过以太网、令牌环网络等各种技术来传送
(4)ARP
(正向地址解析协议)
数据传输通讯地址:源IP、源MAC、目标IP、目标MAC
使用场合:已知目标IP,未知目标MAC
工作原理:PC1已知PC2的IP地址,未知PC2的MAC地址,PC1发送ARP广播给二层交换机,二层交换机进行广播泛洪,二层交换机下所有PC都会收到该广播消息,每个PC将自身IP与广播目标IP相比对,一致的话会接收并回数据包给PC1,PC1接收到返回的数据包后会记录下该PC的IP和MAC地址,记录到ARP缓存表中;不一致的则会直接丢弃 主机有ARP缓存表,记录IP地址和MAC地址对应的关系
主机与主机数据通信时会封装源IP、目标IP、源MAC、目标MAC
在当前主机没有在ARP缓存表中查找到目标主机对应的MAC地址信息时
会发送arp请求IP地址的广播报文
非目标主机收到该广播时会丢弃,目标主机收到该广播时,会发送单播的回应报文
主机收到回应报文时,会将目标IP地址和MAC地址写入当前主机的ARP缓存表中
路由器的工作原理:
当数据进入路由器时
拆二层数据,查看三层数据
选路 :查看目标IP地址,找到相应的路由表,来进行数据转发
转发 :通过ARP协议,请求对方接口的MAC地址信息,重新封装二层数据,将数据包转发
特点:IP不变,MAC会变
(5)RARP
(反向地址解析协议)
使用场合:已知目标MAC,未知目标IP时候用
2、传输层协议介绍
(1)TCP
(传输控制协议,ip协议号为6)
TCP传输控制协议被称为面向连接的可靠传输协议,通过三次握手四次挥手建立可靠连接,有重传机制,三次握手、四次断开、分段重传、滑动窗口机制保证了数据完整性,缺点是这些机制需要耗费大量时间,因此效率较低
(2)建立TCP连接的三次握手原理
客户端向服务器发送SYN连接请求,服务器收到SYN请求后,会针对客户端的SYN请求进行ACK响应的同时也会同步发送SYN连接请求,客户端收到服务器发送过来的SYN连接请求时,会回复ACK响应
(3)为什么要三次握手
第一次握手是客户端发送SYN连接请求,服务端收到了,得出结论客户端的发送能力和服务端的接收能力正常,第二次握手服务端发ACK确认和SYN连接请求,客户端收到了SYN连接请求,得出结论:服务端的接收、发送能力和客户端的发送能力均正常,此时服务端还不能确定客户端的接收能力是否正常,第三次握手:客户端发ACK确认,服务端收到了,这时候服务端就得出结论,客户端的接收功能也正常,这样,就建立了可靠的连接,因此,需要三次握手才能确认双方的接收与发送能力是否正常,才能建立可靠的连接
(4)四次断开原理
客户端向服务器发送FIN断开请求,服务器收到请求后,回复一个ACK确认,服务器向客户端发送FIN断开请求,客户端收到后,回复一个ACK确认
(5)握手是三次,为什么断开要四次
那是因为握手的时候并没有数据传输,所以服务端的SYN连接请求和ACK确认报文可以一起发送,但是挥手的时候有数据在传输,所以ACK确认和FIN断开连接请求报文不能同时发送,需要分两步,所以会比握手多一步
(6)什么是TCP半关闭状态
客户机向服务器发送了FIN请求,服务器也给了ACK响应,因为服务器向客户机还有数据要传输,因此服务器并没有向客户机立即发送FIN请求,成了TCP半关闭状态
(7)UDP
(用户数据报协议,ip协议号为17)
面向无连接的不可靠的传输层协议,优点是虽没有机制保证数据传输的可靠性,但是效率很高,缺点是可靠性不高
TCP和UDP是根据浏览大小和效率来选择的
语音、视频等要耗费很多流量且要高效率,用UDP
应用服务对浏览带宽要求不高,可靠性要求较高,用TCP
3、应用层协议介绍
(1)HTTP
(超文本传输协议,端口号为TCP的80)
HTTP是基于客户/服务器模式,且面向连接的,如web服务
(2)FTP
(文件传输协议,端口号为TCP的20和21)
20端口为数据层面,主要用来传输数据,21端口为为控制层面,控制用户是否有权限登录及登陆后权限内容
(3)TFTP
(简单文件传输协议,端口号为UDP的69)
主要用于上传和下载小文件,常用于路由器交换机iso系统升级或更新
(4)SMTP
(简单邮件传输协议,端口号为TCP的25)
主要用于邮件的发送
(5)SNMP
(简单网络管理协议,端口号为UDP的161、162)
主要用于监控网络设备
(6)DNS
(域名解析协议,端口号为UDP的53)
主要用于将域名解析为IP地址,或将IP地址解析为域名
四、五层模型常见设备
应用层 | 计算机,服务器 |
传输层 | 防火墙 |
网络层 | 路由器 |
数据链路层 | 网桥,交换机 |
物理层 | 网卡、网线,集线器,中继器,调制解调器 |
结语
OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型,OSI先有模型,后有协议,先有标准,后进行实践,而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型,OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准