网络通信的问题

2019-03-22 00:40:36 +08:00
 mart1nN

最近学了网络通信原理,说 http 数据嵌在 tcp 数据包中,tcp 嵌在 ip 数据包中,最后 ip 嵌在以太网数据包。我想请问一下,为啥不是以太网数据包嵌在 ip 数据包中呢?我的理解找到因特网中某个节点总是先找到子网,再从子网中找到那台主机。那不就应该是先解析 ip 包再以太网包吗?这样的话 ip 包应该在外面是吧.....

1258 次点击
所在节点    问与答
7 条回复
cdlnls
2019-03-22 01:20:07 +08:00
你说的以太网包应该是指的帧吧?

知道 IP 还不行,还需要网卡的 mac 地址。
ruiowe
2019-03-22 01:33:23 +08:00
我要从广州寄一封信给北京的张三
IP 地址写的就是 北京张三 收
我作为一个傻白甜直接把这封信交给了我门口的路由器君
路由器君内心是拒绝的,因为它并不知道北京张三在哪儿,但它知道广州邮政局在哪儿(广州邮局 MAC 地址)
广州邮局表示内心是崩溃的,因为它也不知道北京张三在哪儿,但它知道北京邮局的地址( MAC 地址)
北京邮局表示为啥受伤的总是我,鬼知道北京张三在哪儿?
于是北京邮局广播,谁知道张三这龟儿子在哪儿? 朝阳邮局回复:给我吧,我知道!
朝阳邮局君知道张三的地址( MAC 地址),于是把信交给了张三同学
nfroot
2019-03-22 08:15:05 +08:00
从协议设计的时候,数据包的内容其实是在变化的,数据包经过的每个设备,都要对数据拆开看看,如果是属于我的,我就继续拆下一层,否则就不拆了。

如果我是交换机,数据包不属于我,我就继续往下传播,只拆第二层,如果我是路由器,我最多拆到第三层,我还要修改其中的 mac 地址,重新包装一下,如果我是变态,我可能会拆到第七层。

数据包内容(类似快递包裹你要输送的物品) 这一层数据不会变
源和目标 IP+端口(相当于快递的源地址,目的地),源 IP 可能会变
源和目标 MAC,每经过一个路由器都会发生变化(记录您的货物已由 XXX 快递节点接手,下一站是什么点,不过只会存一份,历史节点不存)

因为数据包是要整个传输出去的,每次拆包和包装,都是有代价的,所以经常变化的放最底层,不经常变化的放上层。
nfroot
2019-03-22 08:23:12 +08:00
修改次数最多,使用最多的其实是 mac 地址而不是 IP 地址,所以 IP 地址在上层而不是下层。
goofool
2019-03-22 09:39:02 +08:00
那你想想在子网里怎么就能找到那台主机
mansurx
2019-03-22 11:44:45 +08:00
mart1nN
2019-03-22 20:19:23 +08:00
谢谢大佬们

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/547234

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX