欢迎光临
我们一直在努力

Linux网络(一)---- 从协议分层到MAC地址和IP地址

🌟作者介绍:友友们好我是钓鱼的小小猫,可以叫我小猫💕

⏳作者主页:钓鱼的猫猫-CSDN博客🎉

🎉Gitee:袁浩然 (rain_man1215) – Gitee.com

 🎉小猫和友友们一样喜欢代码🤭。很荣幸能向大家分享我的所学所感,和大家一起进步

一.初始协议

        历史的车轮碾过,必然会留下前人的痕迹。踩在巨人的肩膀上,需要不断向上兼容,有江湖的地方必然有规矩,有新启的技术必然有陈旧的保留。因此网络,有很多规矩,有些规矩是陈旧的实现不了,有些规矩是设计极其优秀的/

        ①协议是一种约定,让参与的需要遵守。

        ②协议是分层的,每一层都有对应的规则要求。

二.网络模型

2.1 OSI 模型

        

        这样的模型太详细了,在工程角度有些是实现不了的。

        其实在⽹络⻆度,OSI定的协议7层模型其实⾮常完善,但是在实际操作的过程中,会话层、表示层是不可能接⼊到操作系统中的,所以在⼯程实践中,最终落地的是5层协议。                但是要理解上⾯的话,需要我们学习完⽹络才可以理解,这⾥就知道就可以。

2.2  TCP/IP五层(或四层)模型

        应用层:如何处理数据。

        传输层:数据丢失怎么办。

        互联网层:怎么定位目标主机问题。

        网卡层:怎么解决当下要去哪里的问题。

        硬件:(school里面学的,例如香农定理,电磁波,光纤之类的暂时不需要了解)

三. 局域网通信

局域网通常有三种①以太网②令牌环网③无线LAN

以太网本质:就是发信息给所有人,泛洪

令牌环网:本质是锁

无线LAN:广播

3.1 MAC地址

以太网(内涵一下物理界没有以太,计算机有)

        

        以太网,任何时刻,只允许一台机器向网络中发送数据。但是相当于向宇宙发送坐标,所有文明都能收到,也就是叫泛洪。抓包抓包就是抓局域网以太网的包。

        如果有多台同时发送,会发⽣数据⼲扰,我们称之为数据碰撞,要避免数据碰撞需要有碰撞检测(自己传给自己看能不能行)和碰撞避免(算法随机休眠)

        在没有交换域中,一个以太网就是一个碰撞域。

        所有发送数据的主机要进行碰撞检测和碰撞避免。

       

        要传输数据,需要底层支撑,也就是自顶向下将数据传输,也就是将数据从只顶向下封装,贯穿协议栈。

       

        在数据封装过程中,数据封装 = 本层封装 + 上层的数据。本层的叫报头(里面有各种本层的协议规则),上层的叫有效载荷。数据封装叫报文。

         要使用这些报文,需要解包(分离本层协议段)和分用(交付有效载荷给上层),也就是特别像栈里面的push和pop,因此把协议也叫协议栈。

        在数据链路层,里面有MAC地址(协议),网卡内置6字节,48位,标识内网的主机唯一性,出厂就有。

        这个MAC地址就是去找下一个位置是谁,每当到下一个位置,都会更新MAC位置

四. IP地址

        如果不是局域网通信呢?那么就需要找到去哪个局域网通信,这个工作就是IP地址来做。这好比,

原来IP:我在东土大唐

目标IP:西天取经

原来MAC:女儿国

目标MAC:车迟国

我不知道终点在哪里,但我知道下一站在哪里

       

        在传输过程中,首先是数据进行协议栈字上向下封装,然后到网络层,对比IP地址,发现局域网里面没有,因此继续封装到数据链路层,不知道最终目标在哪里,但知道下一个目标在哪里。由MAC地址找一下个MAC地址即并找到路由器。路由器有两个网卡,第一个接收的,第二个传入下一个,然后路由器进行解析,如果此时需要解包和分用,如果路由器的第二个网卡是目标,就拆包后继续封装,往一下个目标走,直到找到目标IP。

        ⽬的IP是⼀种⻓远⽬标,Mac是下⼀阶段⽬标,⽬的IP是路径选择的重要依据,mac地址是局域⽹ 转发的重要依据 提炼IP⽹络的意义和⽹络通信的宏观流程。

        

        这样做有什么用呢?不是脱裤子放屁吗?为什么还要MAC地址?这个IP难道不能直接解决吗?

        从技术角度出发,IP当然可以直接解决问题,但是这个如果把IP分离处理,若MAC后续有更新的技术,我只需要提供上层的接口,我不管底层新技术的实现,这样就可以解离出来,那么框架不变,只需要更新内核东西,而不是重新改变整个框架。

        从这样来说,更高内聚低耦合

        IP⽹络层存在的意义:提供⽹络虚拟层,让世界的所有⽹络都是 IP ⽹络,屏蔽最底层⽹络的差异

赞(0)
未经允许不得转载:171主机测评 » Linux网络(一)---- 从协议分层到MAC地址和IP地址
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址