網路 基礎 1
將在前面:
MAC地址世界唯一, 交換機只認mac, 有(廣播/單播/組播)之分, 路由器路由表認識IP地址(虛擬地址,隨時間/空間變化而變化).
IP 127.0.0.1 迴環地址 測試地址 本機通訊 不涉及交換機,路由器 ,和外機通訊要寫實際 ip 地址.
arp 協議: a機器-->交換機---> 廣播 正確的機器都到廣播--->返回MAC給交換機 ---> a機器(單播)
按位與
兩個網段資訊一致說明在一個交換機內 ,不一致要用路由器.
兩臺機器間 只要 一根網線就能通訊.
網路開發的架構:
c/s ---客戶端應用client/服務端server
b/s ---web瀏覽器客戶端browser/服務端server
b/s 是特殊的 c/s , b/s架構更好為啥呢? 因為基於web瀏覽器減少了桌面應用的安裝,解放了你的桌面圖示,web程式設計都是b/s架構的.
計算機-網絡卡-是 硬體. 在資料鏈路層
MAC--實體地址 全世界唯一的 (head中包含的源和目標地址由來:ethernet規定接入internet的裝置都必須具備網絡卡,傳送端和接收端的地址便是指網絡卡的地址,即mac地址。mac地址:每塊網絡卡出廠時都被燒製上一個世界唯一的mac地址,長度為48位2進位制,通常由12位16進位制數表示(前六位是廠商編號,後六位是流水線號)
廣播 --- 主機之間“一對所有”的通訊模式,網路對其中每一臺主機發出的訊號都進行無條件複製並轉發,所有主機都可以接收到所有資訊(不管你是否需要),由於其不用路徑選擇,所以其網路成本可以很低廉。有線電視網就是典型的廣播型網路,我們的電視機實際上是接受到所有頻道的訊號,但只將一個頻道的訊號還原成畫面。在資料網路中也允許廣播的存在,但其被限制在二層交換機的區域網範圍內,禁止廣播資料穿過路由器,防止廣播資料影響大面積的主機。
ip地址與ip協議 --- 點分十進位制
- 規定網路地址的協議叫ip協議,它定義的地址稱之為ip地址,廣泛採用的v4版本即ipv4,它規定網路地址由32位2進製表示
- 範圍0.0.0.0-255.255.255.255
- 一個ip地址通常寫成四段十進位制數,例:172.16.10.1
- ipv6---6位冒號分16進位制 0:0:0:0:0:0---255:255:255:255:255:255 據說強大到可以給沙灘上每粒沙子都分配個地址--哈哈也是醉了
arp協議 ——查詢IP地址和MAC地址的對應關係
地址解析協議,即ARP(Address Resolution Protocol),是根據IP地址獲取實體地址的一個TCP/IP協議。
主機發送資訊時將包含目標IP地址的ARP請求廣播到網路上的所有主機,並接收返回訊息,以此確定目標的實體地址。
收到返回訊息後將該IP地址和實體地址存入本機ARP快取中並保留一定時間,下次請求時直接查詢ARP快取以節約資源。 地址解析協議是建立在網路中各個主機互相信任的基礎上的,網路上的主機可以自主傳送ARP應答訊息,其他主機收到應答報文時不會檢測該報文的真實性就會將其記入本機. ARP快取;由此攻擊者就可以向某一主機發送偽ARP應答報文,使其傳送的資訊無法到達預期的主機或到達錯誤的主機,這就構成了一個ARP欺騙。ARP命令可用於查詢本機 ARP快取中IP地址和MAC地址的對應關係、新增或刪除靜態對應關係等。相關協議有RARP、代理ARP。NDP用於在IPv6中代替地址解析協議。 路由器(Router)--是連線因特網中各區域網、廣域網的裝置,它會根據通道的情況自動選擇和設定路由,以最佳路徑,按前後順序傳送訊號。 路由器是網際網路絡的樞紐,"交通警察"。目前路由器已經廣泛應用於各行各業,各種不同檔次的產品已成為實現各種骨幹網內部連線、骨幹網間互聯和骨幹網與網際網路互聯互通業務的主力軍。路由和交換機之間的主要區別就是交換機發生在OSI參考模型第二層(資料鏈路層),而路由發生在第三層,即網路層。這一區別決定了路由和交換機在移動資訊的過程中需使用不同的控制資訊,所以說兩者實現各自功能的方式是不同的。 路由器(Router)又稱閘道器裝置(Gateway)是用於連線多個邏輯上分開的網路,所謂邏輯網路是代表一個單獨的網路或者一個子網。當資料從一個子網傳輸到另一個子網時,可通過路由器的路由功能來完成。因此,路由器具有判斷網路地址和選擇IP路徑的功能,它能在多網路互聯環境中,建立靈活的連線,可用完全不同的資料分組和介質訪問方法連線各種子網,路由器只接受源站或其他路由器的資訊,屬網路層的一種互聯裝置。 子網掩碼 ---(所謂”子網掩碼”,就是表示子網路特徵的一個引數。它在形式上等同於IP地址,也是一個32位二進位制數字,它的網路部分全部為1,主機部分全部為0。比如,IP地址172.16.10.1,如果已知網路部分是前24位,主機部分是後8位,那麼子網路掩碼就是11111111.11111111.11111111.00000000,寫成十進位制就是255.255.255.0。知道”子網掩碼”,我們就能判斷,任意兩個IP地址是否處在同一個子網路。方法是將兩個IP地址與子網掩碼分別進行AND運算(兩個數位都為1,運算結果為1,否則為0),然後比較結果是否相同,如果是的話,就表明它們在同一個子網路中,否則就不是)
IP協議的作用主要有兩個,一個是為每一臺計算機分配IP地址,另一個是確定哪些地址在同一個子網路。 埠port --- (我們知道,一臺擁有IP地址的主機可以提供許多服務,比如Web服務、FTP服務、SMTP服務等,這些服務完全可以通過1個IP地址來實現。那麼,主機是怎樣區分不同的網路服務呢?顯然不能只靠IP地址,因為IP 地址與網路服務的關係是一對多的關係。實際上是通過“IP地址+埠號”來區分不同的服務的。 0 --65535 確定應用的. 特殊的3306--mysql, 8080埠, 22埠--系統ssh命令) 傳遞資訊的方法: TCP : 似打電話 特點: 可靠的 面向連線的 佔資源 慢 UDP: 似 發簡訊 特點: 不可靠 無連線 快 消耗資源少osi七層模型
網際網路的核心就是由一堆協議組成,協議就是標準,比如全世界人通訊的標準是英語,如果把計算機比作人,網際網路協議就是計算機界的英語。所有的計算機都學會了網際網路協議,那所有的計算機都就可以按照統一的標準去收發資訊從而完成通訊了。
套接字--socket 引言--(Socket是應用層與TCP/IP協議族通訊的中間軟體抽象層,它是一組介面。在設計模式中,Socket其實就是一個門面模式,它把複雜的TCP/IP協議族隱藏在Socket介面後面,對使用者來說,一組簡 單的介面就是全部,讓Socket去組織資料,以符合指定的協議.
其實站在你的角度上看,socket就是一個模組。我們通過呼叫模組中已經實現的方法建立兩個程序之間的連線和通訊。
也有人將socket說成ip+port,因為ip是用來標識網際網路中的一臺主機的位置,而port是用來標識這臺機器上的一個應用程式。
所以我們只要確立了ip和port就能找到一個應用程式,並且使用socket模組來與之通訊。)
人們按照分工不同把網際網路協議從邏輯上劃分了層級:
應用層 (應用,表示,會話) python程式碼 http https(加密 證書) ftp smtp(郵件)
------------socket------ 抽象層----
傳輸層 TCP UDP 埠(port) 4層路由器 4層交換機
網路層 ip 3層路由器 3層交換機
資料鏈路層 mac/ arp 協議 2層交換機 網絡卡
物理層
上個圖: