欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

二层交换机下的电脑 为什么可以互相访问IP通讯~ ...

就是。。。。
接在一个傻瓜二层交换机下面的几个电脑  为什么可以互相访问IP来通信了
交换机是二层的啊 不是只认MAC吗
这样通信是什么原理实现的了?




OSI模型,分层的,。。交换机认识MAC,电脑能认识IP即可
本帖最近评分记录
  • 白门楼 无忧币 +1 热心广援 2010-11-30 23:21





A ---交换机--- B
这个前提 他们都设置IP地址而其都在一个网段
如果没有这个前提他们不能完成通信


二层是这样的
假如A要去B,A就广播的我叫A,我的MAC地址是XXX.我要找B,这个时候B就答应,我是B,我的mac地址是XXX
这个时候,交换有个mac地址和端口对应表,这个表是不断更新的!
他会记录那个mac和端口对应的,下次A在广播他直接接告诉他怎么走!
这个就是简单的说!



闻道有先后,术业有专攻!

反正归根结底 二层交换机是不认得IP的
主要是靠电脑认识IP
那IP地址也会被封装在数据包里 然后在交换机里流通咯  只是交换机不认识IP  要靠电脑回应




发送方封装包 封完ip层 要封数据链路层的时候发现不知道目的ip地址的mac
所以往2层广播地址发arp请求帧请求目的ip地址的mac地址
目的主机收到arp请求帧 发现是问自己的mac 就给他回了一个单播的arp回应帧
发送方收到后知道了目的ip地址的mac地址 继续封装帧

然后发给交换机,交换机看mac地址查cam表 就知道怎么转发了
本帖最近评分记录
  • 白门楼 无忧币 +3 积极参与 2010-11-30 14:15





小狼??
你是不是老师啊??
我们老师也是这么跟我们讲的!!  呵呵`




引用:
原帖由 oracat 于 2010-11-30 13:52 发表 
发送方封装包 封完ip层 要封数据链路层的时候发现不知道目的ip地址的mac
所以往2层广播地址发arp请求帧请求目的ip地址的mac地址
目的主机收到arp请求帧 发现是问自己的mac 就给他回了一个单播的arp回应帧
发送方收到 ...
恩 这个说的比较详细

但是我觉得这样通信有点麻烦哎  问来问去的
有没有什么更好的方式了   或者是更高级的设备




你可以这么想:本来在二层交换机下,要通信要靠MAC地址。当A要访问B的时候,他会发出广播,问B电脑的MAC,这样在整个交换机上所有电脑都可以看到这个广播,但每个电脑都会进行对照,如果自己的IP不是所要求的,就不会对它做出反应,只有IP对的那台会把自己的MAC发给A .交换机虽然不认识IP,但电脑肯定是认识的啊。如果你觉得奇怪,你可以把自己电脑上的TCP/IP协议删除,然后你再看它能不能通信。(当然,如果你通过其它协议来通信不在此例)。
本帖最近评分记录
  • 白门楼 无忧币 +3 积极讨论 2010-11-30 14:15




错!有错着!

恩  基本明白了  电脑的网卡里确实安装了很多协议  其中就有TCP/IP协议
之所以可以这样通信  主要是电脑的TCP/IP协议认得IP
交换机归根结底是通过MAC和端口来转发数据的:victory: :victory:




是的,新手关于这个问题都会有疑问,其实这个问题搞清楚很简单。你就综合一楼和二楼说的。

交换机是二层设备,不管IP的。但是电脑是七层设备,他的所有网络应用只要是查网线的都要使用TCP/IP协议,因此每台电脑都要一个IP的。

交换机端口之间通信是不通过IP的,他是通过维护一张MAC和端口对应的表来指示如何交换数据。而电脑在以太交换网里则是通过ARP协议,广播ARP包来获取通信的路径。因为交换机连接的局域网是一个广播域。
具体过程如下:电脑本机会维护一张IP-MAC对应表,就是ARP表,你在DOS下输入ARP-A可以看到。
如果这台电脑要和一个IP是A,MAC是a的主机通信,通过三层以上的协议了解到A,在进行第二层以太网交换的时候需要知道a,于是现查本机arp表,发现没有A-a对应的。于是向全网广播一个消息X:我的IP是B,MAC是b,谁的IP是A的,请把你的MAC告诉我。这个消息X的就是通过广播地址发出去的,在以太网里面就是全f的物理地址。网里所有的电脑都会收到X。网里所有的交换机也会根据X消息来更新自己的MAC和端口对应表,比如交换机1发现这个X消息是从接口21接收到的,它就会在自己的内存里面记录:转发目的MAC是B的数据就从21接口走。这叫交换机的自学习。

全网都接受到消息X之后呢,就会和自己比对,当然只有一个电脑是A,因此其他电脑比对发现不是找自己就不会回复消息,A呢发现自己就是B要找的对象,然后他就会回复一个消息Y:我就是A,我的MAC是a。当然消息Y就不是广播的了,而是只针对B发送的。因为B在广播问询的时候已经把自己的IP和MAC都让A知道了,让所有的交换机也知道数据到B该从哪个端口走。

这个消息Y走到B那里的同时也让所有的交换机知道了a的数据是从哪个端口进来的,就这样交换机就更新自己的MAC-端口表。以后谁要找a,只要把a这个mac地址告诉交换机,交换机就知道数据往哪个端口转发了。

因此你这样理解,交换机交换的数据里面包含了IP信息,但是这些信息是给电脑看的,或者给路由器看的,交换机自己不看的,他只转发这些数据,靠的是MAC。懂不懂?

或者我这样说吧,我写了一张有你的email地址和QQ号和手机号并且通知你下周来我家做客的纸条拿信封封起来,信封上写上你的家里的地址,然后交给邮局。邮递员把信封交给你。如果他可以看到信里纸条,他只要通过手机或者QQ或者email任何一种方式通知你下周去我家做客就行了,但是邮递员不能拆开信封,因此他只能老老实实把信通过信封上的地址赶几十里山路给你。懂了吧,交换机传输的数据里面包含IP信息,但是交换机本身不参考这些IP,因为他参考了也没用,就好比这个邮递员既没有手机也不能上网,他只能靠蹬自行车送信
本帖最近评分记录
  • 白门楼 无忧币 +3 精彩回复 2010-11-30 14:15





二层就是靠mac地址 三层就是IP地址
A到B
A每层封装数据包 B每层接封装数据包

我不是老师.....



闻道有先后,术业有专攻!

引用:
原帖由 cperhero 于 2010-11-30 14:14 发表 
是的,新手关于这个问题都会有疑问,其实这个问题搞清楚很简单。你就综合一楼和二楼说的。

交换机是二层设备,不管IP的。但是电脑是七层设备,他的所有网络应用只要是查网线的都要使用TCP/IP协议,因此每台电脑都要一个IP的。 ...
这个比喻相当给力




恩 理解了封装的概念 很多问题就不会钻牛角尖了

网络是入门简单 精通很复杂很难

网络从低到高:网络应用——网络原理——网络通信软件开发——协议开发




说的很好啊 呵呵




学习了:victory:




呵呵 大家说的都对




学习了,很精彩啊




不错:handshake :handshake :handshake




以前虽然知道,但是好久没有去看这方面的知识,这就当做是一个复习了,哈哈




我再假设种情况:
上面你们讨论的是同网段的ip
如果我现在把A,B这2台的ip一台设置192.168.1.100另一台192.168.2.100
如果说只认MAC的话,那应该是可以通信的。
但实际是不能通的,如果作解释


来自  http://bbs.51cto.com/thread-800879-1.html

普通分类: