将复杂的流程分解为几个功能相对单一的子过程
●整个流程更加清晰,复杂问题简单化
●更容易发现问题并针对性的解决问题
国际标准化组织(ISO)于1984年颁布了开放互连(OSI)参考模型,一个开放体系结构,将网络分为七层。
●专业解释:网络服务与最终用户的一个接口
●通俗解释:人机交互窗口,把我们(人)语言输入到计算机当中。(例如在qq,微信上输入字符),或者我们访问网页,打开的网页就可以相当于是应用层的东西。
●象征代表:用户操作界面。
●专业解释:数据的表示、安全、压缩
●通俗解释:计算机收到我们发送的语言,它需要将其转化为二进制在计算机中进行传输,转化之后还需要将它们进行压缩,加密等一些功能。
●象征代表:人的语言翻译成计算机语言
●专业解释:建立、管理、中止会话
●通俗解释:管理是否允许不同机器上用户之间建立会话连接,或者可以理解为,我们与别人发送消息时,需要建立一个连接进行会话,这就是会话层所要控制的事情。
●象征代表:通信软件建立会话,比如qq
●专业解释:定义传输数据协议端口号,以及流控和差错校验
●通俗解释:我们在会话层建立连接之后,是不是要遵循一定的协议和协议的端口号,这一层就是在传输过程中需要遵循协议,就像过马路需要走人行道,也是遵循一定的交通规则。
●象征代表:防火墙,端到端
●专业解释:进行地址寻址,实现不同网络之间的路径选择
●通俗解释:不同网络之间的传输就需要网络层来进行寻找路径,比如,你在上海,我在南京,我们之间需要传输数据,那肯定是需要通过网络层来寻找最佳路径来进行通信的。
●象征代表:路由器
●专业解释:建立逻辑连接、进行硬件地址寻址,差错检验等功能
●通俗解释:进行硬件地址寻址,硬件地址就是MAC地址,每一张网卡都有自己独立的MAC地址,根据MAC地址才能找到具体的地址信息。
●象征代表:交换机,网卡
●专业解释:建立、维护、断开物理连接
●通俗解释:一些看得见,摸得着的东西,比如网线,光纤,网卡,中继器等,连接网络需要靠它们才能实现最底层传输。
●象征代表:网线、网卡,中继器。
为了方便理解七层参考模型,现在就举个栗子来讲解一下,例子可以辅助记忆,但是不能一概而论。
例子说明:张三在某网络平台购物
①应用层:购物时,张三需要打开一个购物平台进行购物吧,打开的这个平台,我们就可以理解为应用层的东西。(人机用户的交互界面)
②表示层:假如张三选好一个东西,东西比较大,客服人员需要将东西进行拆卸包装,然后绘画号图纸,以后等张三收到货的时候,再按照图纸进行组装。(数据的表示、压缩、加密,解密,解压)
③会话层:再发货前,客服人员在平台上给张三发了一句:你确定购买了吗?张三回复,已确定。那客服人员就可安排进行发货了。(建立、管理、中止会话)
④传输层:客服要发货了,需要寻找一家合适的快递公司吧,客服不需要知道东西怎么到张三那边,他只需要知道,东西能顺利送到就行了。快递公司就是传输层所表示的协议(定义传输数据的协议端口号)
⑤网络层:快递公司在客服那边拿到东西后,需要进行发货,初始地在深圳,收货地在南京,他可以选择多重的路线方式,可以空运,可以海运,可以火车,还可以漂流瓶。(地址的寻址,也就是IP地址,不同网络之间实现路径选择)
⑥数据链路层:货物到达了南京的派送点,这个时候快递小哥拿到了东西,他就需要根据上面的门牌号以及电话号码,寻找到张三的具体地址,然后再进行派件(硬件地址的寻址,也就是MAC地址,差错校验)
⑦物理层:不管快递小哥以什么方式把东西送到张三那边,他总需要上路吧,他骑车也是在路上,开车也是在路上,这个路包括海陆空。所以这个路就是传输的媒介(建立、维护,断开物理连接)
五层模型跟七层模型类似,将七层模型的三层(应用层、表示层、会话层)融合成了一层(应用层),每一层分工明确,且都有者自己的层对应的设备
协议主要在于上三层(应用层、传输层、网络层)。下面讲解层次主要的协议
●HTTP协议:网页访问协议,属于明文访问的协议
●HTTPS协议:网页访问协议,属于密文访问的协议
●TCP协议:安全、稳定建立连接(如:视频)
●UDP协议:高效(如:QQ)
●IP:ipv4等协议,遵循一定的逻辑地址协议
●ARP协议:将IP地址解析为MAC地址的协议
●ICMP协议:是一种面向无连接的协议,用于传输出错报告控制信息,比如:在cmd窗口ping其它网络时,返回的数据。
●IEEE 802.3 :有限局域网(以太网)标准
●IEEE 802.11:无线局域网标准
数据的封装,是由上层到下层进行封装的,上图所示的是TCP/IP的五层模型封装图,我们以此图进行讲解。
●应用层:人机交换窗口,把我们的语言输入到计算机中,计算机再将收到的数据转换为二进制后再进行压缩、加密。再建立会话。(此处对于七层参考模型,一起解释了上三层的含义)
●传输层:将上层数据加上TCP头部(协议端口号),封装成数据段,传输到网络层。
●网络层:将上层数据加上源IP地址与目标IP地址,封装成数据包,传输到数据链路层。
●数据链路层:将上层数据加上源mac地址与目标mac地址,封装成数据帧,传输到物理层
●物理层:因为以上传输都是二进制,需要将二进制,转化为比特流的形式在网线中进行传输。到此过程,全部封装已经结束。
数据的解封装,是由下层到上层进行解封装的。
●物理层:将比特流转化为二进制语言,传输到数据链路层。
●数据链路层:接收到物理层传来的数据,先查看目的MAC地址与自己是否匹配,如果不匹配,则将数据丢弃,如果匹配,拆除MAC头部,将数据传输到网络层。
●网络层:接收到数据链路层传来的数据,先查看目标IP地址与自己是否匹配,如果不匹配,则丢弃,如果匹配,拆除IP头部,将数据传输到传输层。
●传输层:接收到网络层传来的数据,先查看协议端口号与自己是否匹配,不匹配则丢弃,匹配,拆除IP头部,将数据传输到应用层。
●应用层:接收到输出层传来的数据,建立会话,将数据解压、解密后,再把数据由二进制语言转化为我们语言显示在窗口上。自此,我们的数据解封装已全部完成。
协议数据单元PDU(Protocol Data Unit)是指对等层次之间传递的数据单位。
●物理层的 PDU是数据位(bit),
●数据链路层的 PDU是数据帧(frame),
●网络层的PDU是数据包(packet),
●传输层的 PDU是数据段(segment),
●其他更高层次的PDU是数据(data)。
pc1电脑:
●pc1与pc2之间通信,假设PC1发送消息到PC2上,如何进行发送的?
●PC1应用层:pc1上面发送数据“你还好吗?”,计算机将其转化为二进制后进行压缩加密,并且与pc2建立会话。
●PC1传输层:接收到数据后,将数据加上协议端口号(TCP或UDP)封装成数据段传输到传输层。
●PC1网络层:接到数据后,将数据加上源和目标IP地址封装成数据包,传输到数据链路层
●PC1数据链路层:接收到数据后,将数据加上源和目标MAC地址封装成数据帧,传输到物理层。
●PC1物理层:接收到数据后,将数据转化为比特流发送给交换机
a交换机:
●a交换机物理层:收到数据后,将数据解封装转化为二进制发送给数据链路层
●a交换机数据链路层:查看源MAC地址是否和自己匹配,匹配的话重新封装新的MAC地址,传输给物理层。
●a交换机物理层:接收数据后将数据转化为比特流传输给a路由器物理层
a路由器:
●a路由器物理层:接收到数据后转化为二进制,然后发送给网络层(名义上是发送给网络层,但是实际上,还是需要经过数据链路层,因为数据是一层一层封装,如果想要查看网路层的ip地址,那还需要先解封装mac地址的头部)
●a路由器数据链路层:解封装mac地址的头部
●a路由器网络层:查看目标ip地址找谁,根据目标ip地址进行转发路径,寻找最佳路径,然后再进行封装,传输给路由器物理层(同理,也是需要经过数据链路层的)
●a路由器数据链路层:封装MAC地址头部,传输到路由器物理层
●a路由器物理层:将数据进行转化为比特流,发送到b路由器的物理层
b路由器:
●b路由器物理层:将数据转化为二进制,传输到数据链路层
●b路由器数据链路层:将数据解封装,查看mac地址后,再将数据传输到网络层
●b路由器网络:将数据解封装后,查看目标ip地址,然后将数据进行封装,再发送给数据链路层
●b路由器数据链路层:将数据封装目标mac地址,然后传输给物理层
●b路由器物理层:将数据转化为二进制传输给b交换机的物理层
b交换机:
●b交换机物理层:将数据转化为二进制,然后发送给数据链路层
●b交换机数据链路层:将数据解封装mac地址,查看mac地址后,再重新封装mac地址,将数据传输到物理层
●b交换机物理层:将数据转化为比特流形式,传输到pc2的物理层
pc2电脑:
●pc2物理层:将数据转化为二进制形式,传输到数据链路层
●pc2数据链路层:将数据解封装mac地址头部,查看mac地址头部信息后,再将数据传输到网络层
●pc2网络层:将数据解封装ip地址头部,查看目标ip地址后,将数据发送到传输层。
●pc2传输层:将数据解封装后查看协议端口号,将数据发送到应用层
●pc2应用层:建立会话列表,将数据解密,解压后转化为我们可识别语言后,显示在窗口上。
点到点通信是针对数据链路层或网络层来说的,因为数据链路层只负责直接相连的两个节点之间的通信,一个节点的数据链路层接受ip层数据并封装之后,就把数据帧从链路上发送到与其相邻的下一个节点。 点对点是基于MAC地址和或者IP地址,是指一个设备发数据给与该这边直接连接的其他设备,这台设备又在合适的时候将数据传递给与它相连的下一个设备,通过一台一台直接相连的设备把数据传递到接收端。
根据上图所示,
点到点可以看成为:PC1到路由器A,或路由器A到路由器B,路由器B到路由器C,路由器C到PC2。
端到端是进程到进程之间的通信(传输层)。端到端通信是针对传输层来说的,传输层为网络中的主机提供端到端的通信。因为无论tcp还是udp,都要负责把上层交付的数据从发送端传输到接收端,不论其中间跨越多少节点。只不过tcp比较可靠而udp不可靠而已。所以称之为端到端,也就是从发送端到接收端。
根据上图所示,
端到端就是:PC1到PC2。