咱們大學在宿舍裏若是須要聯網玩單機魔獸的話,能夠組建一個局域網,利用交換機就能完美解決網絡
若是咱們須要跟遠在另外一城市的朋友玩魔獸時,就須要拉一條寬帶去訪問外網並與外網通訊。spa
咱們能夠在宿舍的A主機弄兩個網卡,一個插公網寬帶.一個跟交換機鏈接。這樣宿舍裏的電腦就能訪問外網了,前提是A主機必須是開機狀態,由於其充當網關的做用(全部訪問外網的出口都在插着公網寬帶的網卡上)路由
固然,咱們也能夠買路由器,咱們能夠發現有一個插孔是區分於其餘(wan端口),他是鏈接外網的。io
網關每每就是一個路由器,是一個三層轉發的設備。啥叫三層設備?也就是把MAC頭和IP頭都取下來,而後根據裏面的內容,看看接下來把包往哪裏轉發的設備class
那路由器就是網關嗎,嚴格來說不是.路由器是一臺設備,它由五個網口或者網卡,至關於無之手,分別連着五個局域網。每隻手的IP地址都和局域網的IP地址相同網段,每隻手都是它握住的那個局域網的網關路由器
如上圖所示,當192.168.0.2咱們訪問219.155.195.236。首先根據192.168.0.1/24的CIDR協議能夠得知不在同一網絡。因而:im
1. 發起一個IP包.源IP192.168.0.2目的IP219.155.195.236通信
而後MAC層基於IP包再加上源MAC地址(192.168.0.2)及目的MAC地址(網關192.168.0.1)協議
2. 網關收到這個包(目的MAC地址是本身),而後把摘掉MAC頭的包給下一層(IP網絡層)處理,IP層折現這個包的目的IP不是本身,因而就發給下一跳219.155.195.235/24(它目的MAC地址).img
3.這個219.155.195.235/24網關接收到這個包而後發給下一IP層,發現目標IP不是本身,可是在同一網絡因而根據ARP協議得到219.155.195.236的MAC地址,而後發給它
理想情況下這麼玩是沒錯的。但這裏有個問題,咱們用的是私網IP進行外網訪問的,萬一目標地址的私網也是192.168.0.*呢?
NAT
這時候NAT閃亮登場,它的全拼Network Address Translation.訪問外網的時候,源IP會轉換成網關IP並被路由器標記下來,而目的地址也是同樣,由接收的網關經過NAT轉換爲局域網內的私有IP
如圖,路由器具備NAT工功能