【图解计算机网络】网络协议分层解析

网络协议分层

网络协议分层一共有OSI七层网络协议,TCP/IP四层网络网络协议,还有五层网络协议。

在这里插入图片描述

七层由于分层太多过于复杂,实际应用中并没有使用,而是使用TCP/IP作为参考模型。但是TCP/IP是四层的模型,网络接口层包含了链路层和物理层,因此不利于学习和理解,所以我们在学习网络协议的时候,一般是使用的五层协议模型。

应用层

应用层定义的是应用程序之间用于通信的报文格式,通过定义好格式的报文,按照一定的规则,应用程序就能互相通信,互相交换数据。

比如我们的浏览器与服务器之间通过http报文通信,浏览器通过http报文描述它需要请求的服务器上的接口或资源,以及请求携带的参数,服务器通过http报文给浏览器返回指定的资源或接口响应的数据。

在这里插入图片描述

传输层

应用层只是定义了应用程序通信使用的协议报文的格式,应用层自己没有办法把报文送到对方手上。要把报文送到对方,还要依赖于下层协议,应用层直接依赖的下层协议就是传输层。

传输层提供了应用程序间通讯的能力,应用层只要依赖传输层,就可以实现彼此间的通讯。传输层定义了端口这个概念,应用程序发送数据需要通过端口发送,接收数据也要通过端口接收。当一个数据包到达对方服务器,通过目标端口,就可以知道这个报文要让哪个应用程序接收。然后目标应用层序也可以通过源端口,知道对方的端口是什么。

在这里插入图片描述

网络层

传输层再依赖于下层的网络层。网络层定义了IP地址,IP地址是一台服务器的地址,通过IP地址就可以定位到一台服务器。路由器通过目标IP地址进行网间路由,最终会把数据包路由到目标服务器。

在这里插入图片描述

路由器通过路由表,就可以判断出一个数据包通过哪个网络接口发出去,它的下一跳地址是什么。

在这里插入图片描述

路由表包含:网络目标、网络掩码、网关(也就是下一跳地址)、接口(本机发送数据包到网关要走的网络接口)。

在这里插入图片描述

只要拿到一个目标IP地址,就可以按如下规则在路由表中进行匹配,匹配成功之后,就可以通过接口把数据包发送到下一跳节点。

在这里插入图片描述

可以看到,匹配规则就是拿目标IP地址与该条目的掩码进行按位与计算,得出的结果如果等于网络目标的IP地址,那么就通过该条目的接口,发送数据包到网关(下一跳节点)。

数据链路层

数据链路层定义了MAC地址,有了下一跳的IP地址,还需要通过IP地址取得对应的MAC地址,才能把数据包发送到下一跳节点。通过ARP协议,就可以根据IP地址获得对应的MAC地址。

在这里插入图片描述

当前节点通过广播发送ARP协议报文,ARP协议报文携带待解析的IP地址,当与该IP地址匹配的节点收到该ARP协议报文时,就会返回自己的IP地址。

在这里插入图片描述

通过ARP协议还可以让我们的服务器通过路由器的IP地址得到路由器的MAC地址,就可以把数据包发送到路由器,路由器就可以帮我们把数据包发送出去。

在这里插入图片描述

MAC地址还被交换机用于子网内的通讯,我们的服务器通过ARP协议获得路由器的MAC地址,然后交换机就可以通过路由器的MAC地址帮我们把数据包转发到路由器,路由器帮我们把数据包发送出去。当对方子网的路由器接收到数据包后,也可以通过交换机把数据包发送到目标服务器。

在这里插入图片描述

可以看到,网络协议分层中的每一层都不是独立的,而是上层依赖于下层的。

在这里插入图片描述

TCP/IP分层模型通讯示例

首先应用层组装好应用层协议报文,比如基于http协议通讯的应用则根据http协议的规则组装好http报文。

在这里插入图片描述

然后应用层把该http报文交给传输层,假如传输层是基于TCP协议的,那么就会把http报文切分成一个个数据包,并且在数据包外面包装上TCP协议报文头,里面包含了源端口和目标端口。

在这里插入图片描述

然后传输层再把每个数据包交给网络层,假如网络层使用的是IP协议,会在外面包裹一个IP协议报文头,IP协议头包含了源IP地址和目标IP地址。

在这里插入图片描述

然后网络层再交给链路层,链路层会再外面再包裹一个MAC头,里面携带当前节点的MAC地址和下一跳MAC地址。

在这里插入图片描述

这个报文就彻底的组装好了,然后就交给网卡,网卡就把它转成特定的物理信号(比如电信号)通过网线把它发送出去。

在这里插入图片描述

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值