真正“搞”懂HTTP协议02之空间穿梭( 六 )


还是说回IP协议 , IP的主要任务其实很简单 , 就是根据源主机和目的主机的地址来传递数据 。当数据包到了三层之后 , 就会把源主机和目的主机的IP地址再加入到数据包中传给第二层 。
【真正“搞”懂HTTP协议02之空间穿梭】

真正“搞”懂HTTP协议02之空间穿梭

文章插图
而这一层的IP头 , 形象的比喻一下的话 , 就像是我们所在小区的楼牌号 , 有了楼牌号我们就能找到具体的人 。在互联网中 , 有了IP才可以找到具体是哪一台机器 。
当然 , 我们仅仅只知道楼牌号还不行 , 还得知道是哪个省市区的 , 北京的某某一小区和南京的某某小区 , 极大的可能会有同一个楼牌号 , 这肯定不行 。
所以我们就得来到下一层 , 也就是链路层来解决省市区的问题了 。
第二层/链路层:跳一跳链路层的主要作用是在局域网中专职处理介质的争用与冲突问题 。换句话说 , 就是我到了这个小区 , 要把快递给谁的问题 。而链路层的协议其实也不少 , 其中还有不少大家耳熟能详的协议 , 比如GPRS , Wi-Fi都是链路层协议 , 当然还有很多 , 有兴趣大家可以自行了解 。
链路层也可以叫做MAC层 , MAC的全称叫做Medium Access Control , 媒体访问控制 , 它要控制啥呢?其实就是控制数据发送的顺序和目标 , 谁先发 , 谁后发 , 谁来接收谁来发送的问题 , 不能搞乱了 。
当数据传递到MAC层后 , MAC层会再加上一个MAC头 , 这里有源MAC地址和目标MAC地址:
真正“搞”懂HTTP协议02之空间穿梭

文章插图
按理来说啊 , 到这后面就是一片坦途的到达目标服务器了 , 但是数据包的旅程其实才刚刚开始 。
当数据包出了网关之后 , 也就是出了我们的小区 , 你的小区会告诉这个数据包下一个小区要去哪 , 一个小区一个小区的跳啊跳 , 最终才会到达我们的目的地 , 那你可能会问 , 我直接让我的小区告诉我直接要到哪个小区不行么 , 为啥只能一个一个的跳来跳去的呢 , 嗯……因为全世界的小区数量太大 , 你的小区记不了那么多 。
第一层/物理层:世界的基石到了物理层 , 实际上就脱离了软件层面 , 是实实在在的可以接触到的电子设备了 , 比如光纤 , 同轴电缆 , 双绞线等等 , 嗯……它们是干啥的我都不知道 , 我也不告诉你 。
到了物理层后 , 数据最终会到达服务器 , 然后再反过来经历刚才的阶段 , 层层解开数据包 , 获取当前层所需要的信息 , 最终定位到目标应用的端口号 , 此时 , 我们包的旅程才算是真正的完成了 。
真正“搞”懂HTTP协议02之空间穿梭

文章插图
这张图并不完全 , 明显缺失了很大一块 , 但是我相信你一定知道那缺失的部分有哪些内容 , 也当作是留给你的作业吧~
其实到这里本篇就算是完事了 , 但是完事的有点突然 , 其实在描述上面的整个数据包流转的过程中 , 越到底层我描述的就越少 , 其实我刻意省略了很多关于TCP、IP以及MAC的重要内容 , 但是这篇系列毕竟不是讲互联网络的 , 大家知道它在空间上经历了哪些部分即可 , 如果有兴趣 , 大家可以自行查找资料学习 , 我猜你不会找 , 哈哈哈哈

经验总结扩展阅读