最近学了网络通信原理,说 http 数据嵌在 tcp 数据包中,tcp 嵌在 ip 数据包中,最后 ip 嵌在以太网数据包。我想请问一下,为啥不是以太网数据包嵌在 ip 数据包中呢?我的理解找到因特网中某个节点总是先找到子网,再从子网中找到那台主机。那不就应该是先解析 ip 包再以太网包吗?这样的话 ip 包应该在外面是吧.....
最近学了网络通信原理,说 http 数据嵌在 tcp 数据包中,tcp 嵌在 ip 数据包中,最后 ip 嵌在以太网数据包。我想请问一下,为啥不是以太网数据包嵌在 ip 数据包中呢?我的理解找到因特网中某个节点总是先找到子网,再从子网中找到那台主机。那不就应该是先解析 ip 包再以太网包吗?这样的话 ip 包应该在外面是吧.....
1
cctv6 Mar 22, 2019 via iPhone
你说的以太网包应该是指的帧吧?
知道 IP 还不行,还需要网卡的 mac 地址。 |
2
ruiowe Mar 22, 2019 我要从广州寄一封信给北京的张三
IP 地址写的就是 北京张三 收 我作为一个傻白甜直接把这封信交给了我门口的路由器君 路由器君内心是拒绝的,因为它并不知道北京张三在哪儿,但它知道广州邮政局在哪儿(广州邮局 MAC 地址) 广州邮局表示内心是崩溃的,因为它也不知道北京张三在哪儿,但它知道北京邮局的地址( MAC 地址) 北京邮局表示为啥受伤的总是我,鬼知道北京张三在哪儿? 于是北京邮局广播,谁知道张三这龟儿子在哪儿? 朝阳邮局回复:给我吧,我知道! 朝阳邮局君知道张三的地址( MAC 地址),于是把信交给了张三同学 |
3
nfroot Mar 22, 2019
从协议设计的时候,数据包的内容其实是在变化的,数据包经过的每个设备,都要对数据拆开看看,如果是属于我的,我就继续拆下一层,否则就不拆了。
如果我是交换机,数据包不属于我,我就继续往下传播,只拆第二层,如果我是路由器,我最多拆到第三层,我还要修改其中的 mac 地址,重新包装一下,如果我是变态,我可能会拆到第七层。 数据包内容(类似快递包裹你要输送的物品) 这一层数据不会变 源和目标 IP+端口(相当于快递的源地址,目的地),源 IP 可能会变 源和目标 MAC,每经过一个路由器都会发生变化(记录您的货物已由 XXX 快递节点接手,下一站是什么点,不过只会存一份,历史节点不存) 因为数据包是要整个传输出去的,每次拆包和包装,都是有代价的,所以经常变化的放最底层,不经常变化的放上层。 |
4
nfroot Mar 22, 2019
修改次数最多,使用最多的其实是 mac 地址而不是 IP 地址,所以 IP 地址在上层而不是下层。
|
5
goofool Mar 22, 2019
那你想想在子网里怎么就能找到那台主机
|
6
mansurx Mar 22, 2019
|
7
mart1nN OP 谢谢大佬们
|