V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jtsai
V2EX  ›  问与答

OSI 二层 (数据链路层) 通信为什么要设置 IP 和网关

  •  
  •   jtsai · 2017-07-08 10:52:20 +08:00 · 3692 次点击
    这是一个创建于 2688 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我所理解的二层通信、电脑 A、B 是直接通过 mac 地址通信的。(电脑 A - 交换机 - 电脑 B )。

    以太网的帧 [Preamble | SFD | DST | SRC | Type | Payload (Data) | Pad | FCS | Extension]。

    其中 DST 电脑 B 的 mac 地址( 6btye ),SRC 电脑 A 的 mac 地址( 6byte )。

    电脑 A 发送数据包到交换机、交换机转发到电脑 B。

    我的疑问是 IP 和网关不是网络层,路由那的东西的。二层为什么要设置这个?

    23 条回复    2017-07-09 00:02:39 +08:00
    chinawrj
        1
    chinawrj  
       2017-07-08 11:00:17 +08:00 via Android   ❤️ 1
    主贴内没看到你所描述的要填 IP 的地方
    jtsai
        2
    jtsai  
    OP
       2017-07-08 11:02:43 +08:00
    @chinawrj 我们的局域网,电脑 A 电脑 B 电脑 C 通过交换机连在一起。这三台要脑要通信,为什么都要设置 IP 和网关。这是我想知道的
    wwqgtxx
        3
    wwqgtxx  
       2017-07-08 11:07:24 +08:00 via iPhone   ❤️ 1
    那是因为你是用 tcp/ip 协议通讯的,这本来就已经不是第二层协议了
    xfspace
        4
    xfspace  
       2017-07-08 11:08:58 +08:00 via Android   ❤️ 1
    程序基于 IP 开发的,你不配 IP 怎么通讯?
    你可以造个轮子,用 MAC 通讯
    二层同一广播域同一子网可以不设网关
    jtsai
        5
    jtsai  
    OP
       2017-07-08 11:10:18 +08:00 via Android
    @wwqgtxx 我自己也怀疑过 单片机这样通信可以就可以,被电脑强迫封装一定要 ip 了
    chinawrj
        6
    chinawrj  
       2017-07-08 11:16:32 +08:00 via Android   ❤️ 1
    @jtsai 你所谓的通信已经自认为是 IP 了。以太网不仅仅可以是 IPV4,还可以 IPV6,还可以裸包。
    Septembers
        7
    Septembers  
       2017-07-08 11:18:28 +08:00   ❤️ 1
    你可以实现 MAC 层 telnet
    see https://github.com/haakonnessjoen/MAC-Telnet
    jtsai
        8
    jtsai  
    OP
       2017-07-08 11:20:18 +08:00
    @chinawrj 更上层的协议在以太网帧的 Payload (Data) 里? 像你说的 ip 包
    wwqgtxx
        9
    wwqgtxx  
       2017-07-08 11:34:09 +08:00 via iPhone   ❤️ 1
    @jtsai 你用 wireshark 抓个包看看就知道原始包到底长啥样了
    mazyi
        10
    mazyi  
       2017-07-08 11:55:22 +08:00 via iPhone
    好好看书,计算机网络。
    oska874
        11
    oska874  
       2017-07-08 13:17:22 +08:00
    计算机网络得重学。
    crazycen
        12
    crazycen  
       2017-07-08 13:26:30 +08:00
    大学有本书,叫计算机网络!
    Betacoefficient
        13
    Betacoefficient  
       2017-07-08 13:32:25 +08:00
    看书都不仔细,当然有可能是记性不好。多去背一下计算机网络及其相关的知识。
    AntonChen
        14
    AntonChen  
       2017-07-08 13:48:47 +08:00 via iPhone
    ROS 的 WinBox 能用 MAC 地址连接
    baicheng
        15
    baicheng  
       2017-07-08 14:03:40 +08:00 via iPhone
    不是很懂楼主的意思。
    从以太网帧格式里头没有看到需要直接填 IP 地址的字段,但 Data 字段指的是上层 IP 层的数据帧,需要 IP 地址。
    局域网内 A 与 B 电脑的直接通信过程是:
    A 的应用层数据->A 的传输层( TCP/UDP )->A 的网络层( IP )->A 的数据链路层(以太网)->A 的物理层->B 的物理层->B 的数据链路层->B 的网络层->B 的传输层->B 的应用层

    在局域网内直接通过数据链路层实现通信是 OK 的,不过得自己写程序了。
    lhwj1988
        16
    lhwj1988  
       2017-07-08 15:31:24 +08:00 via iPhone
    很少有只用 mac 地址通信的应用软件,都是基于 ip 地址通信的,arp 协议负责转换 ip 与 mac 地址
    luoqeng
        17
    luoqeng  
       2017-07-08 15:32:56 +08:00
    楼主听说过 IPX/SPX 协议没
    bravecarrot
        18
    bravecarrot  
       2017-07-08 16:16:47 +08:00 via iPhone
    没太看懂楼主的意思,也没看到需要设置 ip 的地方。
    原则上你可以操纵每一层的通信内容。操纵对应的硬件设备即可

    通常说的 A-交换机-B 是为了帮助大家理解其真实过程。在用户使用的时候,还是对网络层的内容设置比较方便即 a 的 ip-a 的 mac-网线-交换机-网线-b 的 mac-b 的 ip
    jtsai
        19
    jtsai  
    OP
       2017-07-08 16:36:20 +08:00
    @baicheng
    @bravecarrot 感谢,没看懂意思 请看二楼 我的补充。

    其实我已经弄明白了。哈哈,二层不是可以直接通过 mac 通信吗? 为什么设置 ip,因为通信的程序要 ip。

    日常使用的软件是没有直接使用二层交流的。纯粹的二层通信、直过 mac 地址通信是可以实现的。但是更高层的通信更强大,所以软件们就直接使用更高层的了。

    理解如果有误导,请帮忙指正。
    feather12315
        20
    feather12315  
       2017-07-08 17:18:47 +08:00 via Android
    需要搞明白:IP 的作用是什么?
    俩个字概括:寻路。
    总线型的网络拓扑,任何连接在总线上的设备,都可以监听并收到这条链路上任何设备发出的包(网卡需要设置成混杂模式才可以收到)。而且,NIC (网络接口卡)的地址(以太网是 MAC )是一般是唯一的(虽说一般,但可以认为是唯一的),也可以唯一确定一个局域网的设备。

    那为什么还需要 IP 呢?

    世界上不止一个局域网呀,许许多多的局域网,怎么路由这些数据包?网络号便是这个作用。(关键词:域间路由)。自治系统都有一个网络号,内部再划分好多小的自治域。每个自治域都有唯一的网络号。每一个局域网内的所有 IP 构成这个网络。
    chinawrj
        21
    chinawrj  
       2017-07-08 17:42:28 +08:00 via Android
    @jtsai 是的。ARP 也是可以在以太网上的。还有很多,具体看以太网帧的 type 定义。我记得 IP 是 0806 ?忘了
    billlee
        22
    billlee  
       2017-07-08 17:55:05 +08:00
    你用过拨号宽带吗?你用网卡连 MODEOM 走 PPPoE 拨号的时候,电脑的以太网卡和 MODEM 都是不需要配置 IP 地址的。
    pigzilla
        23
    pigzilla  
       2017-07-09 00:02:39 +08:00
    lz 还是太年轻,去搜索下 NetWare 和 IPX 吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1432 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:43 · PVG 01:43 · LAX 09:43 · JFK 12:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.