理解OSI参考模型(转)
文章转自 https://www.cnblogs.com/evablogs/p/6709707.html
一个视频网站上不小心搜到网络知识的视频,突然以前大学的没有真正接受的知识点,一下子豁然开朗,赶紧整理了下笔记。
一、OSI参考模型
自下而上:物理层(物理介质,比特流)、数据链路层(网卡、交换机)、网络层(IP协议)、传输层(TCP/UDP协议)、会话层(创建/建立/断开连接)、表示层(翻译,编码,压缩,加密)、应用层(HTTP协议)
简化为TCP/IP模型:网络层(物理层、数据链路层、网络层)、传输层,会话层,应用层(表示层,应用层)
1.物理层
主要设备:中继器、集线器
物理层中双绞线的传输距离是有限的,信号会缩减,影响数据的传输。为了使传输的数据能够准确的传输,中继器是可以放大传输信号,保持原数据的准确。
比如,双绞线的传输距离是100m,而超过100m则信号会衰减
在两台pc中间加上一个中继器,则相当于两台pc到中继器的距离均为100m,有助于信号的增强。
集线器和中继器的区别是:中继器只有两个以太网接口,而集线器相当于多个端口的中继器。
知识点:冲突域、广播域
冲突域:当两个比特流在同一介质上同时传输就是产生冲突,冲突域是指发送数据给一个单一目标(单播)所影响的范围
广播域:发送数据给一个不明确的目标所影响的范围
集线器有一个冲突域和一个广播域
IP地址192.168.1.1ping1.2:
>ping 192.168.1.2(ping命令所用的协议有ICMP/ARP协议)
返回数据说明两者是相通的,可以发送信息
当1.1想向1.2发送数据时,发送报文时,将包发送到集线器,集线器将包广播发送给所有连接在集线器上的其他端口,当1.3,1.4发现该包不是发送给他们的,就将拒绝接收,而1.2发现是发送给它时,就做出应答,返回一个应答包,应答包先发到集线器,集线器又进行广播,然后再发送到1.1上。
但是!!数据包向所有的端口发送,不安全,且所有的机器共享带宽,更容易产生拥塞,所以不能用于较大的网络
集线器是物理设备,不是智能的,所以不具备学习能力,故每次发送数据只能使用广播的方式。
2.数据链路层
功能:完成网络之间相邻结点的可靠传输,通过Mac地址负责主机之间的数据的可靠传输。
物理层传输的是比特流,而数据链路层传输的是帧。
主要设备:网卡、网桥、交换机
网卡:网络适配器,连接计算机与网络的硬件设备,整理计算机发往网线的数据,将数据分解成大小的数据包之后向网络上发送
Mac地址与IP地址的区别:
Mac地址:是厂商烧录在只读存储器上的,出厂厂商的唯一标识,且不可更改
IP地址:网络地址,相当于门牌号
查看网卡的Mac地址(十六进制)命令:
ipconfig /all
Pysical Address :xx-xx-xx-xx-xx-xx
网桥:将两个LAN链接在一起,变成一个LAN,并按Mac地址转发;分割冲突域;
例如:如何分割冲突域
每个PC机网卡的Mac地址:AA-AA-AA-AA-AA-AA、BB....
网桥更具Mac地址学习能力,目标Mac地址转发
IP地址192.168.1.1ping1.2:
>ping 192.168.1.2(ping命令所用的协议有ICMP/ARP地址解析协议)
过程:
1.1第一次发送ICMP数据包到集线器,集线器发给1.2和网桥,网桥接收到数据包后(工作原理是根据原Mac地址(1.1的Mac地址)学习,目标Mac地址(1.2Mac地址)进行转发,Eth0/1端口学到Mac地址),学到1.1Mac地址,网桥把包传输到下一个集线器,集线器会把包发给1.3,1.4,这两个会扔掉不属于它们的包,1.2接收到后会返回数据给集线器,集线器发送给网桥,这时网桥会学到1.2的Mac地址,由于网桥已经记录了1.1的Mac地址,则会直接发送给1.1而不会又进行广播发给1.3和1.4。
通过第一次发送数据包和接受目标的应答,网桥的每个端口都将学到也就是记录到两个Mac地址,原Mac地址和目标的Mac地址。
交换机:工作过程和网桥类似
交换机有三种转发方式:
(1)对已知单播帧只往对应端口进行转发
(2)对未知单播帧,即交换机还没有学习到的Mac进行广播转发,所有端口进行广播
(3)对广播帧或组播帧进行广播
IP地址192.168.1.1ping1.2:
>ping 192.168.1.2(ping命令所用的协议有ICMP/ARP地址解析协议)
工作过程:
工作过程与网桥一致,交换机的端口通过原Mac地址发送数据学到Mac地址,接收应答的数据包学到目标Mac地址,最终每个端口都学到Mac地址记录在交换机Mac地址表中
可以通过命令查找交换机的Mac地址表:
show mac-address-tables
交换机有几个端口就有几个冲突域,且只有一个广播域
交换机和网桥的区别:
网桥只有两个端口,交换机至少有四个端口也有8个、16个等端口,网桥基于软件转发,交换机基于硬件转发,可以通过命令查看Mac地址表,而网桥不行。且交换机的造价比网桥低。
交换机分类:
(1)传统二层交换机
(2)VLAN交换机,有网管功能
(3)三层交换机:VLAN交换机+路由器,属于网络层的设备,而不是数据链路层的设备
3.网络层
完成网络中主机间的报文传输(物理层比特流,数据链路层帧),网络层识别的地址是IP地址。
涉及的协议:IP/IPX
主要设备:路由器
路由器:通信中转站,例如快递的中转站,将不同网络和网段进行数据翻译,使其可以相互理解,构成一个大的网络。
IP地址192.168.1.1ping1.2:
>ping 192.168.1.2
1.2与1.1属于同一个网段,可以接收数据和应答
IP地址192.168.1.1ping2.2:
>ping 192.168.2.2
显示超时,没有返回任何数据,两者不属于同一个网段,不能通信
如何使两者进行通信?有两种方法:
(1)添加一个路由器:
工作原理:
路由器之所以可以翻译不同网段之间的通信是因为其本身具备丰富的协议,可以连接不同的网段和网络。路由器可以判断网络地址以及选择路径的功能。
(2)修改子网掩码,这点后面IP地址再补充
物理层、数据链路层、网络层之间的区别:
4.传输层
是整个网络关键的部分,是实现两个用户进程间端到端的可靠通信,处理数据包的错误等传输问题。是向下通信服务最高层,向上用户功能最底层。即向网络层提供服务,向会话层提供独立于网络层的传送服务和可靠的透明数据传输。
主要协议:TCP传输控制协议/UDP用户数据报协议,涉及服务使用的端口号,主机根据端口号识别服务,区分会话。
TCP协议:解决数据是否完整传输,是否正确
UDP协议:UDP协议实现了端口,从而使数据包传送到IP地址的基础上,还可以进一步将其送到具体的某一个端口上。
UDP传输与IP传输相似,但IP协议是ip地址之间的通信,但通信需要多个通信通道,将每个通道分配给每一个进程使用,UDP则是实现端口的通信。
服务与以及相对应的端口文件:C:\Windows\System32\drivers\etc\servies
例如:www服务端口号为80
5.会话层:主要功能是在两个结点间建立、维护和释放面向用户的连接,并对会话进行管理和控制,保证会话数据可靠传送。
例如:你通过秘书与对方建立联系,则你发出建立联系的请求相当于一个会话,秘书相当于传输层,然后秘书进行拨号联系对方,当对方接通对话,则会话的连接建立。
6.表示层:主要负责数据格式的转换,即翻译,压缩与解压缩,加密与解密。
例如:你想下午两点出发去上海,你对上海的朋友说下午两点过来,朋友的理解却是你下午两点到上海,两个人两种理解,而表示层则是进行格式转换和信息的表示。
7.应用层:应用层是网络体系中最高的一层,也是唯一面向用户的一层,也可视为为用户提供常用的应用程序,例如电子邮件,上网浏览等网络服务都是应用层程序。
对于这三层的定义还是不能理解,上网搜了以上比较通俗的解释。
应用层的主要协议:HTTP,HTTPS,FTP(上传,下载),SMTP(邮件)
HTTP协议:超文本传输协议,包括url地址,域名,源地址,发送的数据方法(Get,Post等),浏览器信息等
OSI模型的总结
OSI模型上层(会话层,表示层,应用层)处理用户接口、数据格式、应用访问。
OSI模型下层(物理层,数据链路层,网络层,传输层)处理数据在网络介质中的传送。
二、数据封装过程
封装:
应用层:发送数据---------表示层:数据格式转换,加密,压缩等----------会话层:建立连接-----------传输层:差错校验,流量控制,TCP/UDP传输,添加端口号信息(源端口,目标端口)+数据------------网络层:分组,数据包(IP地址+数据)--------数据链路层:帧(帧头(帧头包含Mac地址)+帧数据)------------物理层:比特流(0,1)
解封装:
物理层:比特流(0,1)---------数据链路层:帧(帧头(帧头包含Mac地址)+帧数据)--------网络层:分组,数据包(IP地址+数据)-------传输层:差错校验,流量控制等;UDP/TCP(传送和接收端口信息+数据)---------会话层:建立连接-----------表示层:数据格式转换,解密,解压缩等-----------应用层:接收的数据
图解:(网上找的)