• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

二层寻址问题把我困住了 来个资深网络工程师给聊几句吧

2018-07-19提问
  • 0关注
  • 1收藏,1105浏览
粉丝:0人 关注:0人

问题描述:

谁能给普及一下二层寻址的和传输的知识啊

A和B在2层环境下传输文件。   A传给B的每一个数据包是不是都要做一次arp的寻址,只是从第二个arp包开始就由交换机做转发了没有寻址的过程了。

例如A传给B  1G的文件,首先A要发arp包对2层环境进行广播寻找B,找到B以后开始传输,但是每发一个数据包也不能避免寻址的过程(一个数据包应该是不到1000bit,我记得大概是700多bit),只不过这个寻址过程走到交换机的时候被交换机收到发现有B的mac和端口信息就不给广播了,直接就做转发了。


问题1:其实我一直认为arp寻址只在传输数据的过程中是一次性的,但我上面的逻辑好像也没错啊。寻到目的的mac地址,不代表就能直接传输啊,那是以什么为依据建立的链接呢?

问题2:在一个二层环境里,A和B传输数据,走的是tcp协议吗?


最佳答案

粉丝:32人 关注:5人

问题1:看实际应用是什么了,广播报文二层直接可达;如果是其他单播业务报文,比如建立TCP连接,得知道peer的地址是多少,这个时候就需要发起ARP请求确认邻居实际对应的MAC,不然没法封装发出去。

问题2:见问题1

为什么得到mac以后就能建立链接? A通过arp找到B以后,是怎么开始建立链接进行传输的。 就说纯2层环境里

勤能补拙 发表时间:2018-07-19

优先得了解TCP报文的封装, 二层(源目MAC)+三层(源目IP)+TCP头+原始数据,不知道对端邻居的MAC,怎么去封装目的MAC?,所以这个ARP肯定是要去请求的。可达之后,以TCP为例,三次握手,建议连接,然后传数据。

爱吃糖的抑郁小逗比 发表时间:2018-07-19
2 个回答
粉丝:13人 关注:11人

问题1:首先了解下交换机的工作原理之一,基于源地址学习,基于目的地址转发。其中的地址就是mac地址。当A和B第一次通信时,A知道B的ip,但是不知道B的mac,需要发送一个arp广播,这个arp广播同网段的机器都能收到,但是只有B是这个ip,此时B回应这个arp,说出自己的mac地址,此时A知道了B的mac,就可以二层直接通信了。这是第一次,此时交换机也学习到了端口及mac的对应关系,并将此关系存到mac地址表里,当第二次通信时,不需要在发arp了,交换机直接转发数据进行通信。

问题2:二层环境通信,到数据层面就是应用层了,比如传文件,会用到很多协议。你可以查一下每个层对应的协议。比如,网络层(ip协议),传输层(tcp,udp),应用层等。

“此时交换机也学习到了端口及mac的对应关系,并将此关系存到mac地址表里,当第二次通信时,不需要在发arp了” 我很想问的一个就是这个,A第一次不知道B所以广播找B,找到B以后(就是拿到B的mac以后),怎么就能建立链接了呢? 拿到B的mac又能意味着什么呢?

勤能补拙 发表时间:2018-07-19

拿到b的mac,就可以直接通信了啊。二层靠mac通信,三层靠ip寻址

颠倒梦想 发表时间:2018-07-19

为什么拿到mac就能通信?

勤能补拙 发表时间:2018-07-19

假如mac地址是门牌号,交换机是门卫,你知道了对方的门牌号了,你说你知道怎么去他家了吧。

颠倒梦想 发表时间:2018-07-19

建议你找本网络书看一下,比如谢希仁计算机网络,看看网络传输过程,封装解封装。能帮你的只有这么多了,剩下的多靠你学习一下原理,多思考多理解。

颠倒梦想 发表时间:2018-07-19
回复颠倒梦想:

其实没说透。 为什么知道mac地址就能通信? 如果是2层交换机环境,mac和端口信息都是交换机做转发的。 如果是一层集线器环境呢,A和B通信,A通过arp获取到B的mac以后,怎么建立链接的呢?ok A知道B的mac了,下一个包我怎么知道这个包要准确的发送到Bmac的那个端口上呢

勤能补拙 发表时间:2018-07-20

如果是集线器环境,每次传输数据都是广播。百科:集线器是一种物理层设备,本身不能识别MAC地址和IP地址,当集线器下连接的主机设备间传输数据时,数据包是以广播的方式进行传输,由每一台主机自己眼中MAC地址来确定是否接收。

颠倒梦想 发表时间:2018-07-20

集线器环境,那A给B传1G的数据,最小单位应该是数据包,每个数据包不到1000bit, 难道每传一个数据包都要向网络内广播一次? ok就算每个数据包都广播一次,那二层交换机环境应该也是每个数据包都广播一次,只是走到交换机被交换机转发的,但二层环境肯定不是这样的,第二个包pcA就不广播了,明确的告诉交换机自己要找Bmac。我想不管是交换机环境还是集线器环境,pcA的工作方式是没有变化的。因此推导出,集线器环境,A跟B传数据肯定不是每个数据包都做一次广播寻址

勤能补拙 发表时间:2018-07-20

交换机有mac地址表啊,当然不用了。刚说过了集线器是冲突域,A像B发包,相当于A广播出去,整个冲突域的C和D都会收到,只是C和D看不是自己的会丢弃,只有B发现是发给自己的,才会接受和回复。

颠倒梦想 发表时间:2018-07-20

你就是说集线器环境A给B传的每个数据包其实都是发给所有端口的,只是B接收了是吗? 如果理论是这样,那交换机环境A也应该是这样,因为A可不知道自己是在集线器环境还是交换机环境,A的工作方式应该都是一样的,只不过走到交换机被交换机转发了。但显然二层环境里A不会每个数据包都要做一次广播。 所以现在我隐约的感觉,通信数据包和传输数据包好像不是一回事

勤能补拙 发表时间:2018-07-20

那我问你下,两台计算器qq发消息,都经历了什么?你还是看下封装和解封装吧

颠倒梦想 发表时间:2018-07-20
回复颠倒梦想:

我感觉你在这方面肯定比我强,但是关于我的这个问题,你也不能解释的很清楚。

勤能补拙 发表时间:2018-07-20
粉丝:0人 关注:0人

“此时交换机也学习到了端口及mac的对应关系,并将此关系存到mac地址表里,当第二次通信时,不需要在发arp了” 我很想问的一个就是这个,A第一次不知道B所以广播找B,找到B以后(就是拿到B的mac以后),怎么就能建立链接了呢? 拿到B的mac又能意味着什么呢?

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明