当前位置: 技术问答>linux和unix
向高手请教(至少200分)一个局域网内发送以太帧的问题
来源: 互联网 发布时间:2016-05-21
本文导语: 最近维护了一份代码 被管理机器(vxworks)向管理机器(linux)发送 accept me 消息 linux 返回 response accept 再加上 confirm 消息 vxworks 最后 confirm ack. 用的不是 tcp/ip 协议族。 vxworks 已经事先 从一个数据库中 (s...
最近维护了一份代码
被管理机器(vxworks)向管理机器(linux)发送 accept me 消息
linux 返回 response accept 再加上 confirm 消息 vxworks 最后 confirm ack.
用的不是 tcp/ip 协议族。 vxworks 已经事先 从一个数据库中 (snmp) 得知了
linux的 mac 地址。 所以是 只是个以太帧 类型 0x8686 帧数据部分 格式自定义。
我代码还没全部看全。
问题:
1. 以太网帧在局域网内的发送,即知道对方mac地址,是以广播方式发送,还是直接
的点对点。 我了解 arp 协议的工作机制。 arp 使得主机能维护一份 mac ip的索引
表,以后应用层发包 网络层的IP包 下到链路层 内核查看 目的IP 查找索引表 找到
就把mac地址 在以太帧上填上,找不到 用arp 协议方式获得。 关键是,之后这个以
太帧是不是以广播方式在局域网传播的。
个人理解是,但是我的mentor说是1个数据包,不过他也不确定。为啥我的理解是呢?
因为我感觉,局域网是一个所谓的载波冲突域,把网卡设成混杂模式是可以连不是本
机mac地址的以太帧都可以抓捕。(非混杂模式的话,就直接过滤掉,实际还是拿到过)
2. 这样的以太帧能否被路由器转发? 我知道普通路由器只可以转发IP包的,这样以mac
地址的行不行?如果是 交换机呢?
谢谢!期待比较详细的解释,分不要担心,可以慢慢加。
被管理机器(vxworks)向管理机器(linux)发送 accept me 消息
linux 返回 response accept 再加上 confirm 消息 vxworks 最后 confirm ack.
用的不是 tcp/ip 协议族。 vxworks 已经事先 从一个数据库中 (snmp) 得知了
linux的 mac 地址。 所以是 只是个以太帧 类型 0x8686 帧数据部分 格式自定义。
我代码还没全部看全。
问题:
1. 以太网帧在局域网内的发送,即知道对方mac地址,是以广播方式发送,还是直接
的点对点。 我了解 arp 协议的工作机制。 arp 使得主机能维护一份 mac ip的索引
表,以后应用层发包 网络层的IP包 下到链路层 内核查看 目的IP 查找索引表 找到
就把mac地址 在以太帧上填上,找不到 用arp 协议方式获得。 关键是,之后这个以
太帧是不是以广播方式在局域网传播的。
个人理解是,但是我的mentor说是1个数据包,不过他也不确定。为啥我的理解是呢?
因为我感觉,局域网是一个所谓的载波冲突域,把网卡设成混杂模式是可以连不是本
机mac地址的以太帧都可以抓捕。(非混杂模式的话,就直接过滤掉,实际还是拿到过)
2. 这样的以太帧能否被路由器转发? 我知道普通路由器只可以转发IP包的,这样以mac
地址的行不行?如果是 交换机呢?
谢谢!期待比较详细的解释,分不要担心,可以慢慢加。
|
以太网是链路层协议,是一种局域网技术,就是以广播方式发送的。
路由器是工作在网络层(IP层),这个工作是负责决定通过哪一个网口转发,通常你局域网的网关就是一个路由器。
具体的数据包的传输过程是这样的。
首先,由目的包的IP跟掩码结果看是不是处于同一个局域网内,如果是属于同一个局域网,则进行ARP找到目的对应的MAC地址,直接进行分组交换,也就是广播以太多帧,目的机会接收属于自己的以太多帧,其它机器会丢弃不属于自己的以太网帧,从而完成球数据交换。如果不是属于同一个局域网,则发往网关,数据发往网关的方式跟发往本局域网内的任何一台机器一样,过程跟上面完全一样。网关(可以当成是一个路由器,肯定有多个网口,不同的网口属于另一个不同的局域网)收到这个分组后,去链路层包头,得到IP包,然后决定通过哪一个网口发送,注意这里的发送网口是属于另一个网络了(可以看成另一个局域网),这样又是重复上面提到的分组交换,然后又到下一个路由器,直到最后一个路由器,进行分组交换的时候,被目的机接收。
可能说得不是很清楚,关键就是链路层负责分组交换,通俗的讲就是传输数据,IP层只是决定这个数据传输的方向.
路由器是工作在网络层(IP层),这个工作是负责决定通过哪一个网口转发,通常你局域网的网关就是一个路由器。
具体的数据包的传输过程是这样的。
首先,由目的包的IP跟掩码结果看是不是处于同一个局域网内,如果是属于同一个局域网,则进行ARP找到目的对应的MAC地址,直接进行分组交换,也就是广播以太多帧,目的机会接收属于自己的以太多帧,其它机器会丢弃不属于自己的以太网帧,从而完成球数据交换。如果不是属于同一个局域网,则发往网关,数据发往网关的方式跟发往本局域网内的任何一台机器一样,过程跟上面完全一样。网关(可以当成是一个路由器,肯定有多个网口,不同的网口属于另一个不同的局域网)收到这个分组后,去链路层包头,得到IP包,然后决定通过哪一个网口发送,注意这里的发送网口是属于另一个网络了(可以看成另一个局域网),这样又是重复上面提到的分组交换,然后又到下一个路由器,直到最后一个路由器,进行分组交换的时候,被目的机接收。
可能说得不是很清楚,关键就是链路层负责分组交换,通俗的讲就是传输数据,IP层只是决定这个数据传输的方向.
|
至于交换机,有二层跟三层交换机之分,通常说的交换机属于二层交换机,主要起分隔分组交换时的文播域的功能。
三层交换机,带路由功能,可以看成一个简单的路由器了。
二层跟三层也就是对应链路层跟网络层的意思。
三层交换机,带路由功能,可以看成一个简单的路由器了。
二层跟三层也就是对应链路层跟网络层的意思。
|
1楼说得蛮清楚的.
顶一个
顶一个