局域网是共用一个网络IP,局域网的本地ip在网络又不能用,从网络传来的数据是怎么知道要传给那台主机的?

是不是数据链路层里的帧有主机的硬件地址?... 是不是数据链路层里的帧有主机的硬件地址? 展开
 我来答
步代芹St
2013-06-18
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

数据链路层是有目的主机的硬件地址的,以下是我为你做的比喻。里面附带着二层和三层寻址以及你所提问的问题!

  1. 你在家里,你的家里非常干净,而且你的家人在家里都穿着拖鞋(拖鞋:本地IP),这个时候你想去趟超市买个“苹果”,但是你出去的时候你不可能穿着拖鞋跑到外面去买苹果(你穿拖鞋出去,你回来了吧地板搞脏了,你妈肯定跟你没完),所以这个时候你在门口会换上外出的运动鞋(运动鞋:网络IP),然后你就穿着运动鞋去往超市的路径,(怎么去超市 你应该知道啊 所谓的三层寻址 之前走的路 你脑子肯定有印象)最终找到超市,然后在买你想要的苹果。

  2. 买到苹果之后你是不是要返回家里?这个时候你会带着苹果按原先的路径回到你家里,走到家门口的时候,你会自觉的换上你”自己“的拖鞋,然后回到你房间慢慢享受你的苹果

分析:

  1. 你的房子就是一个路由器,你就是使用者,你的拖鞋就是内网IP,你的运动鞋就是公网IP,超市就是目的IP,苹果就是目的服务端口,你个人的“嘴巴”就是源端口(端口就是区分服务,说白了就是我需要什么样的服务 是泡妞 还是买东西 你自己看着办)苹果是属于水果一类,我们比喻成TCP类型

  2. 现在就满足一条数据流了:源地址-目的地址-源端口-目标端口-协议类型

  3. 当你想去买苹果的时候,你应该知道自己需要干什么了,那么这个时候计算机就会生成一个数据包,数据包就是:拖鞋+嘴巴+超市+苹果+水果一类

    因你的路由器出接口设置的NAT源地址转换,当这个数据包到路由出接口的时候,数据包会发生改变,数据包则是(请认真看那些参数变更了):”运动鞋“+”模拟嘴巴“+超市+苹果+水果一类

  4. 当路由器变更你的数据包的时候,路由器他很聪明,为了防止忘记我刚才对这个数据包做的更改,我先在纸上做一个记录,表的记录则是:[“拖鞋+嘴巴”+超市+苹果+水果类型<--------->”“运动鞋+模拟嘴巴”+超市+苹果+水果类型 ] ;然后在吧这个数据包从出接口发出去

  5. 当这个数据包到达对方之后,对方就会根据”源地址(运动鞋)“进行回复对方,这个数据包则是:超市+苹果+运动鞋+模拟嘴巴+水果类型

  6. 因出接口做了NAT源地址转换,当这个回复数据包到达路由器接口的时候,路由器会检查我刚才做的变更记录,我对比一下,我发现我改过这条记录(如果这条流在表里没有记录, 这个时候你懂得 要么往死里打 要么丢到一边),然后我在吧这个数据包之前变更过的参数在改回来,然后从路由器的内部接口转发给”最初“请求者。那么这个时候的数据包则是:超市+苹果+”拖鞋+嘴巴“+水果类型(源地址+源端口+目标地址+目标端口+协议)

  7. 关于数据包到了路由器的内部接口是如何转发到内部主机的:这个很简单,比如你换鞋的门口有一块牌子,牌子写着小明<----->1号房间     小明的妈妈<----->2号房间   小明的爸爸<------>3号房间 (在网络中 房间就是电脑的MAC ,名字就是电脑的IP)

  8. 在则如何知道对方的MAC和IP,在现实当中,一家人可以协商吧自己的名字写到门口的牌子上,在网络中 电脑一样,他们也会协商,他们协商是通过ARP广播来实现的,好比小明的爸爸喊:小明 你的房间号是多少,这个时候小明就回答 我的房间号是1 他爸爸听到了之后 就会铭记在心了,或者在自己的笔记本上做个记录,以防我以后有东西需要给的时候,我直接往他的门口一丢,而不用喊他名字了 然后在让他告诉我他在哪个房间里 (为什么要他的门号 因为链路层只认识门口号不认识)。

    你在不懂,我就没辙了!


追问
有个穿皮鞋的人也要到相同超市买苹果,那路由器的记录是皮鞋+嘴巴”+超市+苹果+水果类型”“运动鞋+模拟嘴巴”+超市+苹果+水果类型,那回来一个“运动鞋+模拟嘴巴”+超市+苹果+水果”数据他怎么知道是穿皮鞋的还是穿拖鞋的?
追答
你要明白你所说的皮鞋是指的是内网的IP,内网的IP在全局里也是唯一的,我指的这个嘴巴就是源端口号了,那么这个端口就是随机生成的,也就是说在内网全局里,源地址+源端口是不会重叠的,那么既然不会重叠,就可以区分“内网”的每个请求者,回来的数据包、路由器是如何知道原先请求是皮鞋?还是一样,在出接口的时候,在NAT地址转换表里做转换记录(这个记录你肯定没有仔细观察,NAT在转换的时候把源地址和源端口号给变了:也就是“运动鞋+模拟嘴巴"这个模拟嘴巴在封装新的数据包的时候也是随机生成的源端口,说白了在数据包在出去的时候,是用源端口号来区分内网请求者(一个是公网的端口号、一个是内网的端口号 然后在地址转换表里一一对应,这是运用一个公网IP来上网的,如果你有多个公网IP 那么内网的用户就可以运用到多个IP地址出去了,那么这个地址转换表里也就多了一个IP,这样你的内网电脑就可以增加更多的电脑了))

总之一句话:源地址+源端口+目标地址+目标端口+协议 出去的时候我就变”源地址和源端口号
bilibalachina
2013-06-18
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
局域网数据通信不是通过IP进行的。是通过MAC地址进行的。所以虽然你的ip冲突了,但只要mac地址不同,还是有广播数据过来的。

不过你要是跟别的主机通信,还是要配个ip地址,这样才能使用其他层面的应用。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
后长寿B6
2013-06-18
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
你是说局域网共用一个公网地址上网是吗?那是用的NAT地址转换,把局域网的IP转换成公网的IP,然后IP后面随机分配一个不同的端口来确认的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
近人山水清闲6
2013-06-18
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
局域网是共用一个网络IP
肯定有交换机或者路由器
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fa...x@163.com
2013-06-18
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
局域网的机器上网必须要设置网关,通过路由器来连接到公共网络。常见的不需要设置直接上网是因为路由器给局域网里的机器自动分配了IP地址。公共网络的数据是不会直接传到局域网的机器上的,而是通过路由来中转,路由会根据你主机的IP将你要传输的数据发送到你的主机上
追问
路由器怎么知道数据是哪个主机的,数据上有主机的本地ip地址或MAC地址?
追答
路由器会根据你主机的IP和MAC地址来分配不同的端口,每台机器有自己独立的通道
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式