网络七层传输概念:
五层模型:
这里以人送信为案例:
人是大脑记忆了地址,但我们不能想当然地认为计算机也知道祖国人民在哪里,计算机只是一台机器,必须明确告诉它祖国人民的地址是什么,在OSI参考模型,称这个地址为“网络地址”,在TCP/IP协议,称之为IP地址。
通信讲究礼尚往来,以往收到信,都会有回信,确认自己收到信。有去有回才叫通信,所以还需要把本地的地址告诉对方,以方便回程的消息传递,称之为源地址、或源IP地址,祖国人民的地址为目的IP地址。
这些地址信息总需要弄块地方写在“我们胜利了”消息里,对吗?于是设计了一个网络协议头/IP协议头用于容纳通信双方的地址信息,表示为:网络协议头/IP协议头 + “我们胜利了”
有了这些,计算机就可以把消息传递给祖国人民了吗?No!计算机如何在浩瀚无垠的Internet找到祖国人民?有同学说,不是告诉了计算机地址了吗?是的,即使告诉它,它也无法找到,听起来好奇怪,但却是事实。打个比方,我告诉你祖国人民在延安,不用导航、不用地图、不能边走边问,你找得到吗?计算机也不用犯愁,只需要把消息发给网关,网关即使不知道如何找到祖国人民,网关还有自己的上一级网关,一级级网关上去,总能找到一条通向祖国人民的路径。
这个想法很好,当我们沉浸在成功喜悦里不能自拔时,被一盆冷水泼醒:那如何把消息发给网关?网关又是如何发给他们上一级网关?计算机与网关之间的物理连接,有网线、有电话线、有ATM连接、有无线连接,这些都对应不同的硬件接口,这些硬件接口都有自己的电气标准,在计算机与网关两端要么都使用以太网接口、要么都使用ATM接口,却不能一端使用以太网接口,另一端使用ATM接口,这一点应该很好理解吧?计算机通信需要兼容并蓄,这个世界网络层协议头,不仅仅只有IP协议,还有其他协议如AppleTalk,IPX,这些硬件接口需要支持IP、AppleTalk,IPX,硬件接口需要有一个标识符来分辨它们,需要一个容器吧?我们称这个容器为数据链路层头:数据链路层头 + 网络协议头/IP协议头 + “我们胜利了”
以上这些在计算机上已经是一串长长的0、1二进制流,在不同的硬件链路上,可能对0、1有不同的编码方式,我们称这种和特定硬件接口编码方式为物理层,来看看这个逻辑示意:物理层 + 数据链路层头 + 网络协议头/IP协议头 + “我们胜利了”由于物理层+ 数据链路层头只在一条物理链路上有意义,一旦一串0、1二进制流传输到对端时,链路层头已经没有任何存在的必要了,网关会把它扔掉(过河拆桥),那只剩下:网络协议头/IP协议头 + “我们胜利了”网关查询路由表,需要寻找更靠近祖国人民的下一跳网关/路由器,当发现与下一跳是串行接口,数据链路层是HDLC,于是完成了IP包的重新封装:物理层 + 数据链路层/HDLC + 网络协议头/IP协议头 + “我们胜利了”…剩下的过程,以此类推,只是一个重复迭代的过程。最终到达了目的地:延安,计算机不光扔掉链路层,还扔掉网络协议头/IP协议头,它们的使命也完成了,因为它们都只是传输手段。剩下的只有消息:“我们胜利了”!这条消息才是通信的最原始目的!
文章参考:https://www.zhihu.com/question/67310765/answer/25170464