百哥的第5篇原创

本篇文章介绍数据通信中最基础,最关键的原理之一,两台通网段的主机如何通信。

适合两台普通电脑之间,两台服务器之间,两台手机之间,电脑和打印机之间,手机和小爱同学之间,等等,只要两个同网段节点互相通信,都符合以下原理。

上篇文章提到了mac地址,但没详细说明,今天我们来详细认识他一下。

mac地址长这样

mac地址也叫物理地址,和ip地址不同,使用十六进制来表示,十六进制就是0到9后还没完,还有abcdef,然后才进位成20。

mac地址是每个网卡的标识。

不管有线网卡还是无线网卡,电脑还是手机,只要连入网络,一定需要网卡芯片,而mac地址就是网卡芯片上的地址信息。再来看下手机的mac

一般在手机设置的“关于本机”中,都可以看到手机的mac地址。

那么mac地址的作用到底是什么?

很简单,同网段的两个主机通信,归根结底就是数据包从一个网卡,送到另一个网卡,而网卡之间,通过mac地址来识别。

等等,前面不是刚讲了ip地址吗,这里怎么又来个mac地址?

这里说来话长,有网络技术发展的历史原因,本文暂不详述,欢迎关注公众号,后续文章会讲解。

本文咱们先知道,两台同网段主机通信,必须知道双方的mac地址就可以了。

当主机A想给主机B发送数据,如何才能知道主机B的mac地址呢?

通过一个叫ARP的网络协议。

ARP的全称是Address Resolution Protocol地址解析协议,用来解析出某个目标IP所对应的mac地址。

这里假设一台主机A(192.168.0.173)想给另一台主机B(192.168.0.9)发送数据为例,来看ARP的工作原理

第一步

主机A以广播的形式发出ARP请求。广播报文全网主机都会收到,包括主机B。

上图是使用抓包工具捕获的arp请求包,可以看出,这个包是广播发出的(目标mac为全F代表广播)。

也可以看出,这个arp请求包,请求的是192.168.0.9的mac

关于抓包工具的使用,以及常见报文的分析方法,后续文章会详细介绍,本文暂时观察arp报文的关键字段即可。

第二步

这个广播形式的arp请求,所有主机都会收到,无关主机看了”target ip“发现不是找自己的,直接丢弃

而主机B收到,则会回复一个arp回应报文。

上图是主机B给主机A回应的ARP包,告诉主机A自己的mac是什么。

注意看图中”sender ip“和”sender mac“两个信息,包含了主机B和他对应的mac。

本实验环境,主机B是一台苹果手机,通过mac地址也能看出手机品牌apple。

因为标准的mac地址,前半部分是网卡的厂商标识。

第三步

主机A收到arp回应后,会把主机B对应的mac写入自己的arp缓存表,这样就可以给主机B发数据了。

而且后续再给主机B发数据,就不用再去arp解析了,查下arp缓存表即可。

在命令行输入arp -a可以查看arp缓存表。

END

如果你看到了这里,百哥想请你帮个小忙:

1.帮我点赞,分享,设置星标3连,方便你最快找到百哥,也让更多的人真正爱上ICT技术,学好ICT技术

2.关注我和专栏,这是一个会陪你至少10年的技术号,定期分享ICT技术。

3.关注我的知乎   百哥 ,让你的技术之路走的更顺遂。

数据通信原理_跟百哥学网络05同网段主机通信原理相关推荐

  1. 广播地址的作用_跟百哥学网络16:ARP地址解析协议分析

    百哥的第17篇原创 前言:我们知道,数据在网络中传输,和快递包裹一样,必须写上源地址和目标地址.数据包的地址又分为ip地址和mac地址.ip地址是互联网地址,标识了这个数据包的最终目的地.mac地址是 ...

  2. 数据通信原理_同网段主机通信原理

    本篇文章介绍数据通信中最基础,最关键的原理之一,两台通网段的主机如何通信. 获得更多技术资料和免费学习视频,加入讨论群:752160765 适合两台普通电脑之间,两台服务器之间,两台手机之间,电脑和打 ...

  3. 高级架构师_Docker_第2章_ Docker核心原理_ 第2节_Docker网络

    高级架构师_Docker_第2章_ Docker核心原理_ 第2节_Docker网络 文章目录 高级架构师_Docker_第2章_ Docker核心原理_ 第2节_Docker网络 Docker网络 ...

  4. Docker的网络模式和跨主机通信

    文章转载自:http://www.a-site.cn/article/169899.html Docker的四种网络模式Bridge模式 当Docker进程启动时,会在主机上创建一个名为docker0 ...

  5. 图解通信原理与案例分析-4:“烽火连三月“看烽火通信背后的通信原理

    引言: 杜甫<春望> 国破山河在,城春草木深. 感时花溅泪,恨别鸟惊心. 烽火连三月,家书抵万金. 白头搔更短,浑欲不胜簪. 简单的几句诗歌,透析了在古代,人与人之间远距离通信的需求和相应 ...

  6. 跟着迪哥学python 经管之家_跟着迪哥学Python数据分析与机器学习实战

    本书结合了机器学习.数据分析和Python语言,通过案例以通俗易懂的方式讲解了如何将算法应用到实际任务. 全书共20章,大致分为4个部分.第一部分介绍了Python的工具包,包括科学计算库Numpy. ...

  7. stm32 薄膜键盘原理_铅锤哥:市面上的笔记本键盘优缺点解析,看完秒懂

    点击上面↑ 玩转电脑 关注铅锤哥,轻松学电脑 本文转自电脑快科技网 笔记本电脑的键盘,虽然看起来都差不多,但是这小小的键盘也分成许多种不同的类型,今天我们就来系统的介绍一下不同种类的笔记本电脑键盘,以 ...

  8. sql找出2000-3000年中的闰年。_跟飞哥学编程:SQL入门-4-查询和条件

    为了教学方便,我们先引入一个关键字: SELECT 使用SELECT,可以查询得到表数据,比如: SELECT 其中,星号(*)代表所有列.运行上述SQL语句,返回的就是Student表的所有行所有列 ...

  9. android handler的机制和原理_第一百八十回:Android中的Handler机制九

    各位看官们大家好,上一回中咱们说的是Android中Handler机制的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起Talk Android吧! 看官们,由于时间的原因我们在上一回中只 ...

最新文章

  1. linux samba免密码,Ubuntu如何不用密码访问samba服务器
  2. 阿里P8架构师谈:什么是缓存雪崩?服务器雪崩的场景与解决方案
  3. 深入浅出的排序算法-冒泡排序
  4. full outer join 与full join的区别_基础小白的SQL的JOIN语法解析
  5. 怎么调试内存溢出的c++代码_使用jvisualvm排查一次内存溢出(OOM)过程
  6. python xml解析库_Python xml解析库xml_models2
  7. win10重新安装应用商店
  8. java jre 配置_JRE的安装及环境变量配置
  9. linux spyder 安装,Python开发环境Spyder安装方法(示例代码)
  10. JAVA我的世界怎么弄TNT大陆_《我的世界》爷爷的遗言:TNT大陆地图存档
  11. 使用 Python 进行人脸识别(第2部分)
  12. 火山图——直观的特征差异可视化
  13. rlm sql mysql.so_安装freeradius
  14. R语言绘图技巧1:二元隐函数的绘制方法
  15. c语言编程计算税后收入,C语言编写一个计算个人所得税的程序,要求输入收入金额,能够输...
  16. STM32超低功耗入门之认识超低功耗
  17. 二、Linux文件操作命令
  18. 基于STM32单片机智能RFID刷卡汽车位锁设计(论文
  19. 如何让CDC类USB设备批量接收64字节以上数据
  20. JixiPix Romantic Photo for Mac(照片浪漫效果软件)

热门文章

  1. 不添加外键能关联查询_SpringDataJPA关联关系
  2. python 两阶段聚类_Python,如何对多元时间序列进行聚类?
  3. 博文翻译系列——如何入门数据科学 without spending a penny
  4. ## CSP 201409-1相邻数对(C语言)(100分)
  5. Burpsuite工具的代理抓包功能实验
  6. Markdown数学公式、特殊字符、上下标、积分、分式/根式 亲测有效
  7. EC600 QuecPython接入第三方MQTT服务器, 以阿里云物联网平台为例,可替换为自己创建的MQTT服务器
  8. stm32F1的 PA13/PA14/PA15/PB3/PB4 作为普通引脚使用
  9. 生活大爆炸之何为光速
  10. java程序的界面编程详解