当前位置: 首页 > news >正文

32.网络基础概念(二)

局域网网络传输流程图

两台主机在同一个局域网,是否能够直接通信?
        以太网原理举例:上课,老师点名小王让他站起来回答问题。教室里的其他人是可以听见的,为什么其他人不响应?因为老师叫的是小王,和其他人无关。因此教室发送消息,并不是只有一个人能收到,而是有吃瓜群众(发消息有点类似消息队列,有类型的数据块)
每台主机在局域网上,要有唯一的标识来保证主机的唯一性:mac地址。

以太网原理

        以太网发送数据,数据是用一个结构封装的,src:源主机mac地址,dst:目标主机mac地址,data:数据。

结论:

  • 以太网中,任何时刻,只允许一台机器向网络中发送数据。
  • 如果有多台同时发送,会发生数据干扰,我们称之为数据碰撞。
  • 没有交换机的情况下,一个以太网就是一个碰撞域。
  • 所有发送数据的主机要进行碰撞检测和碰撞避免。

        工作流程:所有主机 先发 数据,然后进行碰撞检测,检测到碰撞进行碰撞避免,执行碰撞避免算法,例如发数据的主机休眠一段随机的时间后重发。如果没有检测到碰撞,收集到数据的主机对数据判断dst是否是自己,不是就丢弃,是就留下。

        理解记忆:以太网本质就是共享的资源!-> 临界资源,互斥属性(与互斥锁不同的是,主机是先发在处理)

主机间通信的本质

主机之间通信:本质是两个协议栈在通信

数据发送的原始动力:人(90%情况)

TCP/IP协议栈理解

        用户通信流程:用户A发送数据,用户层添加用户层报头,传输层添加传输层报头,以此类推,直到数据链路层,将数据交给网卡,网卡把数据发送给用户B的主机,传到数据链路层,然后往上传层层解包分用(对端同层,要先解包:报头和有效载荷进行分离),到用户B就拿到了数据。
        报文=报头+有效载荷
为什么要自顶向下封装?
        必须贯穿操作系统,贯穿协议栈(发送数据需要网卡,OS是硬件网卡的管理者)。
封装和解包实现了,同层之间,在直接通信,因为我收到的,就是你发送的!、
细节1:
  • 报头必须要能做到,和有效载荷进行分离的能力。
  • 报头中必须包含,如何将自己的有效载荷,交付给上层的那一个具体协议。

细节2:

        底层收到报文,但是报文不是发送给我的,数据链路层直接丢弃(数据链路层的报头有起始mac地址和目标mac地址

细节3:

        协议栈,栈的理解:自顶向下封装的过程(入栈),自底向上解包分用的过程(出栈)

拓展:网卡和数据链路层,混杂模式,抓包工具的原理(目标mac地址即便不是自己,也保留数据)

同层之间,都认为自己在和对方同层协议直接通信理解:

        同层之间,报文的结构一样(报头结构一样,有效载荷结构也一样)

网络中的地址管理---认识IP地址

IP地址,用来表示,全球范围内,主机的唯一性(公网IP)

IP和MAC理解:

        唐僧带着四个徒弟去西天取经,逢人便说,贫僧自东土大唐而来,要去往西天求取真经(东土大唐是起点,西天是终点)。他们到车迟国面见国王,车迟国国王说离我最近的是女儿国,你下一站是女儿国(车迟国是短期起点,女儿国是短期终点)。

从哪来,到哪去 --- 源IP,目标IP地址

上一站从哪里来,下一站去哪里 --- 源MAC,目标MAC地址

总结:MAC地址是标识局域网主机唯一性的地址,IP地址是标识广域网主机唯一性的地址。

跨网络传输流程(一切皆IP)

主机A发送数据给主机B,主机A的IP地址:192.168.2.2,主机B的IP地址:172.168.2.2,。

        主机A不知道172主机在哪里!但是主机A一定能确定,报文绝对不是发送给本地网络的主机的!(有了目的IP,可以判定要将报文发送给路由器)

        路由:发现不能发给自己局域网主机的报文,就推送给路由器

网络层报头包含:源IP地址和目标IP地址

数据链路层报头包含:源MAC地址和目标MAC地址

        主机A发送数据到网卡,A局域网来发送,发给路由器的网卡macLeft。路由器数据链路层拿到数据,进行解包分用,报头去掉传到网络层。数据链路层对IP地址做分析,发现是B局域网内的IP,封装主机B的MAC地址,通过B局域网传到主机B。

结论:

  • 路由过程中,IP地址不变,mac地址一直在变(mac地址只会在本局域网内有效)
  • 无论底层用的是以太网,无线LAN还是自定义局域网通信原理,都可以
  • 网络层+IP的本质意义:给网络提供了一层虚拟化层,让世界上所有的网络,都叫做IP网络(一切皆IP,类比一切皆文件,封装了struct file,屏蔽底层硬件差异)

        只要IP地址,技术上可以实现网络通信吗?可以,IP地址是唯一的,局域网内也是唯一的,使用IP地址替换MAC地址技术上可以做到。

为什么不这么做?

        网络的发展是从局部到整体的,局域网到广域网,MAC地址是比IP地址先出,复用MAC地址那套成本更低,兼容性更好,且只使用IP地址并不会给效率带来显著的提高(类比C语言翻译成汇编,汇编在翻译成2进制)。


文章转载自:

http://oF97pcoq.xckdn.cn
http://WgeATAFb.xckdn.cn
http://xpSY1hPx.xckdn.cn
http://IJKi29hn.xckdn.cn
http://gBfB5Jaz.xckdn.cn
http://CYbFKcWx.xckdn.cn
http://4v4jm6L9.xckdn.cn
http://s9njlV4E.xckdn.cn
http://0MDXuQSG.xckdn.cn
http://KEkm6Qvj.xckdn.cn
http://JlUNgGjc.xckdn.cn
http://UUHqgjuj.xckdn.cn
http://NuqjzKCD.xckdn.cn
http://6YksxhFj.xckdn.cn
http://dD5NYUpJ.xckdn.cn
http://1s87xUfp.xckdn.cn
http://Cl50pXYl.xckdn.cn
http://F6K1qIgI.xckdn.cn
http://kXVCayJe.xckdn.cn
http://LN8bykJ4.xckdn.cn
http://pHI8W3FR.xckdn.cn
http://5jGYmUd9.xckdn.cn
http://XHrwnVmS.xckdn.cn
http://ifdQAkeU.xckdn.cn
http://CT5vcbIk.xckdn.cn
http://YAFAQYNw.xckdn.cn
http://6kFu4PdG.xckdn.cn
http://MXh5Vtwn.xckdn.cn
http://bj8GPLcI.xckdn.cn
http://t0SNIaUN.xckdn.cn
http://www.dtcms.com/a/381698.html

相关文章:

  • Linux网络:应用层协议http
  • 【GitHub】【Windows】Permission denied (publickey) 错误
  • 解决Rocky Linux 9.6下Beyond Compare私钥连接失败问题
  • ubuntu git push每次都要输入密码怎么解决只输入一次密码
  • OpenCV 教程——从像素到智能:图像预处理关键技巧与零售货架缺货检测实战
  • 面试鸭Java八股之Kafka
  • 【学习K230-例程23】GT6700-音频FFT柱状图
  • 【Chrome】chrome 调试工具的network选项卡,如何同时过滤出doc js css
  • python--MediaPipe-opencv眨眼检测
  • 2.2.蓝桥杯-数位递增的数
  • leetcode 3541. 找到频率最高的元音和辅音 简单
  • Spring Boot 与微服务网关集成问题:Zuul、Spring Cloud Gateway 与鉴权策略
  • algorithm | Big O notation
  • 开发指南:使用 MQTTNet 库构建 .Net 物联网 MQTT 应用程序
  • 【代码随想录day 25】 力扣 47.全排列 II
  • 驱动开发系列73 - clEnqueueNDRangeKernel实现
  • Unity 性能优化 之 静态资源优化 (音频 | 模型 | 纹理 | 动画)
  • 服装贸易管理系统推荐及软件选型指南
  • 音视频的下一站:协议编排、低时延工程与国标移动化接入的系统实践
  • Python核心技术开发指南(064)——with语句
  • 打造高效AI助手的秘密武器 - Parlant
  • Stanford CS336 | Assignment 1 - Transformer Language Model Architecture
  • 计算机视觉(opencv)实战十八——图像透视转换
  • 【二开】CRMEB开源版按钮权限控制
  • 联邦学习过程中,了解清楚影响准确率的因素有哪些也很重要
  • Ubuntu 文件复制大师:精通cp命令完整指南
  • 给定单词倒排
  • Golang | http/server Gin框架简述
  • Android-EDLA XTS常用网站总结
  • Android webview更新记录-aosp