前提概要:
我們知道當我們訪問網際網路是,是在瀏覽器的導航欄輸入乙個**, 而乙個**對應的是乙個ip位址,所以我們訪問**,那麼就很清楚的認識到訪問**,就是訪問另外乙個ip位址的計算機上儲存的網頁。那麼我們已知的只有計算機的ip,我們就根據這個來了解一下網際網路的世界是如何做到的查詢到另外的計算機的。
網際網路的模型有7層模型, 4層模型的說法,5層模型是結合這兩種更加利於理解的一種說法。5層模型從上往下分別是:應用層,傳輸層,網路層,資料鏈路層,物理層。(名詞可能會有點出入,翻譯問題)
物理層就是最底層的電路之間的傳輸,不同的電腦與電腦之間相互通過網線,wifi等,構建起了整個網際網路的基礎。
網際網路的電腦數不勝數,我們兩台電腦之間怎麼相互連線,傳遞資料呢?首先就需要將電腦相互區分——mac位址,然後傳遞資料需要單位吧,不然一堆0101傳遞過去計算機接受了也無法識別那部分屬於什麼應用程式的,當時不同得企業選擇不同的單位,不同的風格,然後漸漸統一,出現了網際網路的乙個重要協議 ——乙太網協議, 規定資料單位為:幀。
乙太網協議規定了網路資料傳輸過去的單位是一幀, 兩台計算機之間的mac位址也必須儲存在幀中,所以一幀又分為標頭(head)和資料(data)兩部分。 標頭(head)存放兩台計算機的mac位址, 資料部分(data)存放需要傳輸的資料。
現在傳送方知道了接收方是誰,也就是網路ip(網域名稱),資料也寫成幀的形式,那麼怎麼確定在眾多電腦中哪台是接收方呢?乙太網的方式非常簡單——廣播,給所有的計算機都傳送資料,讓其他計算機自己判斷,其他計算機接受到了資料,判斷是不是自己,不對就將其拋棄,對就將自己的mac位址傳送回去。具體的實現——arp協議(在網路層介紹)
廣播技術理論上是能成立的。但是網際網路的眾多計算機中,用廣播的方式給每台計算機傳送乙個資料報明顯不現實。但是我們又需要知道對方計算機的mac位址傳輸資料。那麼就需要縮小範圍,如果是在同一子網中的計算機,用廣播的方式就能夠實現。所以網路層提出了乙個新的概念——ip。
每台計算機分配乙個ip位址,目前廣泛使用的是第四版,稱為ipv4。由32位二進位制組成,為了方便理解,我們分為四段十進位制數從0.0.0.0到255.255.255.255,假設前24位為網路部分,後8位為主機部分。假設我們有乙個ip位址為:192.168.0.123,那麼192.168.0.* , 都為同一子網。該子網最多為2^8=256臺, 如何確定多少位是網路多少位是主機呢?——子網掩碼。
1&1 = 1, 1&0=0, 0&0 = 0。 假設24位為網路部分,那麼子網掩碼為:1111 1111. 1111 1111.1111 1111.0000 0000 = 255.255.255.0, ip1 和ip2 兩個ip是否在同一子網呢? ip1 & 子網掩碼 == ip2& 子網掩碼,那麼就是在同一子網。192.168.0.123&255.255.225.0 = 192.168.0.0。
1.不在同一子網: 傳送方將資料交給自己的閘道器,閘道器再去找到接受方ip的閘道器,然後就是在同一子網的情況了。
2.在同一子網:根據arp協議,用廣播的方式傳送給接收方,接收方回應後得到接收方的mac位址。
arp協議:位址解析協議,即arp(address resolution protocol),是根據ip位址獲取mac位址的乙個tcp/ip協議。主機傳送資訊時將包含目標ip位址的arp請求廣播到該子網的網路上的所有主機,所有主機確認該ip是否是自己本身,不是則拋棄該資訊,是的話接收返回自身的mac位址,以此確定目標的實體地址。
根據乙太網協議,資料報的單位為:幀: head+data, head中存放了mac位址,但是我們又需要ip位址才能查詢到。所以我們將資料部分繼續拆分為head+data。head中存放ip位址。所以一幀資料變成了:head+head+data。
我們已經知道ip和mac位址,我們可以準確的找到我們需要傳送資料的那台計算機,但是計算機接受了資料怎麼判斷資料是交給哪個應用的呢?網上聽歌和看電影那麼傳送過來的資料是歌曲應用的還是電影應用的呢? ——埠。
計算機可以選擇0到65535個埠,正好16個二進位制位。0到1023的埠被系統占用,使用者程式可以在1024~65535埠之間選擇乙個。使用者計算機埠與伺服器計算機埠相連線,然後就可以傳輸資料了。
如你所料,埠號當然也是要儲存到資料報中,所以就有了udp協議和tcp協議。udp和tcp協議也同樣繼續將data分為head和data。head中存放埠號資訊。
tcp協議:比較安全的將一些資訊放入head中,通過協議不會丟包,通過三次握手保證資訊的安全。是比較安全的一種協議。但是因為安全所以傳輸速度較慢。
這時候一幀資料就變成了上面這樣。
不同的應用需要的資料都是不同的,向ftp傳輸資料格式,和郵件傳輸通過smtp格式。應用層就是這些資料格式的協議組成的。為使用者提供各種服務。
物理層:構成網際網路基礎,使得所有計算機能夠物理連線在一起。
傳輸層:tcp或udp協議,資料再細分, 確定資料埠。head存放了埠號。
應用層:處理資料,為應用提供服務,使得使用者能夠明白和使用。
以上內容參考至阮一峰網路日誌,需要更加詳細了解可以去看看。
網際網路協議
常見的應用層協議使用的埠號 http tcp 80 http協議使用的tcp協議的80埠,下同 共享資料夾 tcp 445 smtp tcp 25 pop3 tcp 110 telnet tcp 23 sql tcp 1433 dns udp 53 服務和應用層協議之間的關係 通過目標埠識別計算機相...
網際網路協議
爭取做乙個懂點網路概念且有趣的程式設計師。tcp ip是網際網路採用的協議標準,它是乙個協議系列,包含了100多個協議,用來將各種計算機和資料通訊裝置組成計算機網路,tcp和ip是最基本 最重要的兩個核心協議,因此,通常用tcp ip協議來代表整個網際網路協議系列 即tcp ip的定義 tcp ip...
網際網路協議
tcp協議 arp協議屬於網路層協議。用途是根據ip位址計算出mac位址。主機傳送資訊時將包含目標ip位址的arp請求廣播到網路上的所有主機,並接收返回訊息,以此確定目標的實體地址 收到返回訊息後將該ip位址和實體地址存入本機arp快取中並保留一定時間,下次請求時直接查詢arp快取以節約資源。位址解...