作者q1472587 (风)
看板Network
标题[问答] LAN host 透过Gateway送封包到google历程
时间Tue Sep 18 11:08:22 2018
大家好,最近被人问了一个问题,觉得有点深奥不知道要
去哪里获取这方面的知识,想请各位大大解惑。
假设现在 PC1 --
Router(Gateway) -- 外网许多Gateway -- Google
PC2 --
PC1的电脑第一次想要 ping google.com ,
1. 问PC1的封包怎麽到google的所有流程
2. PC1 一开始要决定封包的 SA DA(Destination MAC)要怎麽决定,PC1网路卡
driver(思考一般通用网路卡的行为)是不是会先过滤一下封包是不是要往哪里丢
? PC1网卡driver怎麽判断, 丢出去的封包 DA怎麽决定?
3. 假设封包跑到了Gateway , Gateway 怎麽知道要步要Routing? 如果是看routing
table决定,那麽 Gateway Routing Table怎麽查表的?
4. 最後从Gateway出去时会经过NAT转换source IP,在经过很多层的Gateway到达
Google, 那传回来的封包 Gateway 怎麽知道要 DNAT 到哪一个 PCx?会有port
纪录吗还是什麽方法? NAT表怎麽查表?
以上问题我只会回答上层大概,关於底层和如何查表都没概念呢?
例如:
一开始先检查PC1 MAC cache有没有那个MAC,找对应的IP。如果没有就先发
一个ARP 封包,然後没人回应就往 Gateway发,但是不知道 DA MAC会是谁(可能是
先填Gateway?),所以 目的IP 可能先写8.8.8.8(假设已经知道google IP),
然後Gateway,看到目标查表发现要routing,帮忙做MASQARE(类似SNAT改源地址),
然後就送出去了。
希望有大大能够提供很详细的解答呢,谢谢各位。
封包
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.248.93.45
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Network/M.1537240105.A.2F5.html
1F:推 asdfghjklasd: CCNA 09/18 16:26
2F:→ s801107: 你回答的有错 09/19 01:16
3F:→ johnhjwu: 建议先了解layer 2 and 3的处理方式才好解释, 如果是以I 09/19 10:37
4F:→ johnhjwu: P层来看封包传送的话, 当IP层看到destination不在自己LA 09/19 10:37
5F:→ johnhjwu: N网路内时就直接找default GW送IP Packets, 这时候 L2 09/19 10:37
6F:→ johnhjwu: 的动作也就只是如何用 MAC address 传data frame到 GW, 09/19 10:37
7F:→ johnhjwu: 其他的部份应该不用重覆了 09/19 10:37