局域網內和局域網間的通訊

一、交換機和路由器區別
交換機主要是用於組建局域網,而路由器則是負責讓主機鏈接外網。緩存

二、局域網間通訊
例子1:網絡

1. PC1與PC2通訊時,在PC1電腦中,應用層產生數據交給傳輸層;傳輸層進行數據的分段,使數據的大小適合在網絡上傳遞,根據應用層不一樣軟件產生的數據,選擇不一樣協議棧進行封裝TCP或UDP,再進行不一樣服務端口號的封裝(例:WWW 80 ,FTP 21),再傳遞給網絡層;網絡層在數據包頭部進行封裝源IP、目的IP,根據上層協議棧標識不一樣協議號,當IP包頭封裝TCP時協議號爲六、UDP協議號爲17,用來標識上層使用的協議,繼續傳遞給數據鏈路層; 數據鏈路層在數據包頭部進行幀的封裝,封裝源MAC、目的MAC,因爲不知道目的MAC地址,會進行ARP的廣播包,封裝一個全F的類型字段爲0X0806廣播包,交付給物理層,物理層轉換成電信號(bit流),發送到交換機;
2. 交換機接收後發現爲ARP的廣播包,進行其解封學習到PC1的MAC地址,繼續封裝併除接受端口之外的端口再次進行ARP的廣播;
3. 路由器收到交換機發來的ARP廣播,進行解封,查看到數據包中的類型字段爲0X0806即ARP的廣播包,進行回覆,源MAC爲路由(網關)的MAC,目的MAC爲PC1的MAC,類型字段爲0X0806,通過物理層將數據轉換爲電信號(bit流)發送給交換機;
4. 交換機收到後進行解封,學習到源MAC(路由器的MAC ),發現目的MAC已經存在本身的MAC表中,查看目的MAC對應的端口,並從對應的端口發送到PC1;
5. PC1接收數據包後進行解封,學習到路由器(網關)的MAC,在數據鏈路層將目的MAC封裝爲路由器(網關)的MAC, 類型字段爲0X0800,並在數據幀尾部封裝FCS,來校驗數據的完整性,而後向下層傳遞給物理層,物理層把數據幀轉換成電信號(bit流),發送到交換機;
(注:不一樣網段的通訊,PC機先把數據傳送到網關)
6. 交換機接收到數據包,查看到目的MAC已存在本身的MAC表中,根據本身MAC表中對應的端口發送出去;
7. 路由器接收到數據包後進行解封裝,在數據包頭部發現目的ip,便查找路由表條目中對應的端口,便對數據進行重寫,因爲不知道目的主機的MAC地址,路由器會發送ARP廣播,PC2收到數據包進行解封,發現是ARP廣播,類型字段爲0X0806,
而後對其進行封裝回復,源MAC爲PC2的MAC,目的MAC爲路由器的MAC,路由器收到後把PC2對應的MAC地址和端口記錄在MAC表中,
8. pc2接受到信息,便對數據進行解封裝,發現目的ip是給本身的,而後繼續解封裝,而後把數據傳送給應用程序qq。而後對路由回覆,在傳輸層設源端口號爲8000,目的端口號爲4000,封裝udp頭部。在網絡層將源ip設爲192,。168.2.1,目的ip設爲192.168.1.2,協議號爲17,在數據鏈路層將源mac設爲12個3,目的mac設爲12個1,類型字段爲0x0800,封裝FCS,而後經物理層將數據轉爲bit流傳給路由器,路由器再查找路由表,並對數據進行重寫,從f0/0傳送出去,交換機解封裝,查找mac表,再對數據進行封裝,從f0/0傳送給pc1.通訊完成。學習

例子2:接口


1)HostA在網絡層未來自上層的報文封裝成IP數據包,其中源IP地址爲本身,目標IP地址是HostB,HostA會用本機配置的24位子網掩碼與目標地址進行「與」運算,得出目標地址與本機不是同一網段,所以發送HostB的數據包須要通過網關路由A的轉發。ip

2)HostA經過ARP請求獲取網關路由A的E0口的MAC地址,並在鏈路層將路由器E0接口的MAC地址封裝成目標MAC地址,源MAC地址是本身。路由

3)路由器A從E0可接收到數據幀,把數據鏈路層的封裝去掉,並檢查路由表中是否有目標IP地址網段(即192.168.2.2的網段)相匹配的的項,根據路由表中記錄到192.168.2.0網段的數據請發送給下一跳地址10.1.1.2,所以數據在路由器A的E1口從新封裝,此時,源MAC地址是路由器A的E1接口的MAC地址,封裝的目標MAC地址則是路由器2的E1接口的MAC地址。it

4)路由B從E1口接收到數據幀,一樣會把數據鏈路層的封裝去掉,對目標IP地址進行檢測,並與路由表進行匹配,此時發現目標地址的網段正好是本身E0口的直連網段,路由器B經過ARP廣播,獲知HostB的MAC地址,此時數據包在路由器B的E0接口再次封裝,源MAC地址是路由器B的E0接口的MAC地址,目標MAC地址是HostB的MAC地址。封裝完成後直接從路由器的E0接口發送給HostB。軟件

5)此時HostB纔會收到來自HostA發送的數據。配置

三、局域網內通訊
ARP協議:ARP協議是工做在網絡層的協議,它負責將IP地址解析爲MAC地址。路由器

1)若是主機A想發送數據給主機B,主機A首先會檢查本身的ARP緩存表,查看是否有主機B的IP地址和MAC地址的對應關係,若是有,則會將主機B的MAC地址做爲源MAC地址封裝到數據幀中。若是沒有,主機A則會發送一個ARP請求信息,請求的目標IP地址是主機B的IP地址,目標MAC地址是MAC地址的廣播幀(即FF-FF-FF-FF-FF-FF),源IP地址和MAC地址是主機A的IP地址和MAC地址。

2)當交換機接受到此數據幀以後,發現此數據幀是廣播幀,所以,會將此數據幀從非接收的全部接口發送出去。

3)當主機B接受到此數據幀後,會校對IP地址是不是本身的,並將主機A的IP地址和MAC地址的對應關係記錄到本身的ARP緩存表中,同時會發送一個ARP應答,其中包括本身的MAC地址。

4)主機A在收到這個迴應的數據幀以後,在本身的ARP緩存表中記錄主機B的IP地址和MAC地址的對應關係。而此時交換機已經學習到了主機A和主機B的MAC地址了。

四、總結
1)每一個主機內都有ARP表。

2)交換機主要是轉發數據的,根據MAC表,轉發給指定接口,MAC表沒有的話從非接受接口發送出去(也就是廣播)。

3)局域網內通訊是經過交換機的(同功能的),假如主機ARP表中沒有目標MAC地址,發送ARP請求信息到交換機,交換機有的話直接回,沒有的話就廣播等目標返回,更新ARP表。源主機獲得目標MAC從新填充數據包發送給交換機轉給目標主機。

4)局域網間的通訊經過路由器,目標主機在另外一網絡,這裏能夠將路由器看出目標主機,源主機發送ARP請求到交換機->路由器,路由器返回更新交換機和源主機的MAC表和ARP表,源主機將數據發送到路由器,檢查路由表是否有目標網段相匹配的項,從新封裝包,源MAC爲路由MAC,目標MAC爲目標路由2MAC,當到達路由2,對目標IP地址進行檢測,並與路由表進行匹配,此時發現目標地址的網段正好是本身E0口的直連網段,路由器B經過ARP廣播,獲知HostB的MAC地址,此時數據包在路由器B的E0接口再次封裝,源MAC地址是路由器B的E0接口的MAC地址,目標MAC地址是HostB的MAC地址。封裝完成後直接從路由器的E0接口發送給HostB。

相關文章
相關標籤/搜索