網絡是幾乎能夠實現相互發送和接收數據的計算機和其餘設備的集合瀏覽器
網絡一般用纜線鏈接,數據位轉換爲電池波,經過線纜移動安全
無線網絡經過無線電波傳輸數據,長距離的傳輸實現如今會用玻璃纖維發送可見過的光纖電纜來完成服務器
傳輸數據的物理介質:網絡
能夠經過碳驅動的計算機發送煙信號相互傳傳輸(網絡的響應時間可能不好)編碼
網絡中的每臺機器都稱爲一個節點spa
大多數節點是計算機3d
具備完備功能的計算機節點稱爲主機代理
每一個網絡節點都有地址對象
用於惟一標識節點的一個字節序列blog
每一個地址中的字節越多,可用的地址就越多,能夠有更多的設備同時連入網絡
網絡發送數據是一項復炸的操做
必須仔細協調網絡的物理特性以及所發送數據的邏輯特徵
圖中顯示了網絡中可能存在的協議棧
上層和下層的協議變化很大
有些主機使用Ethernet,有些使用WIFI
棧頂使用的協議徹底取決於主機運行的程序
頂層和底層的協議實現分層,互不關心,
(分層模型實現了應用協議與網絡硬件物理特性以及網絡鏈接拓撲結構的解耦合)
Web瀏覽器像Web服務器發送獲取網頁的請求時
瀏覽器實際上只與本地客戶及的傳輸層對象
傳輸層將請求分解爲TCP片,像數據添加序列號和校驗和
而後將請求傳遞給本地網際層
網際層根據本地網絡所須要的大小將各TCP片分紅IP數據報
並傳遞到主機網絡層一邊經過線纜傳遞數據
主機網絡層將數據編碼爲合適特定物理介質的模擬信號
將請求發送到線纜
目標地址的遠程系統的主機網絡層能夠由此讀取請求
遠程系統的主機網絡層將模擬信號解碼爲數字數據
將生成的IP數據報傳遞給服務器的網際層
網際層簡單的檢查IP數據報是否被破壞
若是已經分盤則重組數據
而後傳遞給服務器的傳輸層
服務器的傳輸層檢查是否全部的數據都已到達
對於丟失或者破壞的部分則要求重傳(遠程系統--->客戶端系統 逆向)
一旦服務器的傳輸層接收到足夠多的連續數據報
就將重組寫入一個流
由服務器應用層向上運行的Web服務器
服務器響應這個請求,在經過服務器系統的各個分層發回響應經過Internet進行輸出而且發給Web客戶端
Java的網絡類只工做於TCP/IP網絡中
始終運行在應用層或傳輸層上
Java開發,此時處於最高的位置
網絡中隱藏部分數據主機網絡層(鏈路層)
主機網絡層定義了一個特定的網絡接口如何經過物理鏈接本地網絡或世界其餘地方發送IP數據報
主機網絡層中因爲鏈接不一樣的計算機硬件組成的部分有時稱爲網絡的物理層
出現問題:斷網,
網絡的下一層
在OSI模型中稱爲網絡層
網絡層協議定義了數據位和字節如何組織爲更大的分組,稱爲包
還定義了尋址機制
不一樣計算機按照這個尋址機制找到對象
網際協議(IP)是世界上使用作普遍的網絡層協議,也是Java惟一理解的網絡層協議
兩個協議:IPv四、IPv6
IPv4使用32爲地址,IPv6使用128位地址
還增長一些特性來幫助完成路由
該量協議數據包在網際層上傳輸,這些包稱爲數據包
每一個Ipv4數據報包含一個長度位20-60字節的首部,以及一個包含65515字節數據的有效載荷
實際上大多數IPv4數據報都小的多,供幾十字節到稍大於8K字節不等
IPv6數據報包含一個更大的首部,數據能夠多達4G字節
各部分在Ipv4數據報中是如何排列的
處理路由和尋址網際層的第二個做用是支持不一樣類型的主機網絡相互對象
Internet路由器會完成WIFI和Ethernet、Ethernet和DSL、DSL和光纖往返協議之間的轉換
原始數據有一些缺點
最顯著的就是不能保證可靠傳送
即便能傳送也可能在傳輸過程當中遭到破壞
首部檢驗和只能檢查首部中的破壞狀況,而不能檢測數據報中的數據部分
最後即便數據報到達目的地未破壞名單時也不能準確的到達
傳輸層負責確保各個包以發送的順序接收
保證沒有數據丟失或者破壞
丟包:傳輸層會請求發送方從新發送
IP網絡會給每一個數據報添加一個附加首部,其中包含更多的信息
這一層主要有兩個協議
一、傳輸控制協議(TCP):開銷很高,支持對丟失或破壞的數據進行重傳,而且按照發送時的順序傳送
二、用戶數據報協議(UDP):容許接收方檢測被破的包,反不能保證這些包以正確的順序傳送
UDP一般比TCP快
TCP稱爲可靠的協議
UDP稱爲不可靠的協議
向用戶發送數據的層
下面三層共同定義了數據如何從一臺計算機傳輸到另外一臺計算機
應用層肯定了數據傳輸後的操做
應用層使用HTTP協議能夠確保Web瀏覽器將圖像顯示爲圖片而不是 一長串數字
程序中有關網絡大多都是在應用層花費時間
應用層協議除了Web的HTTP,還有電子郵件的SMTP、POP和MAP,用於文件傳輸的FTP、FSP、TFTP,
用於文件共享的Guntella和BitTorrent等
IP(網際協議)特性:
一、健壯
二、開放
能夠在IP之上運行不少其餘協議,最多見的是就是ICMP(網際控制消息協議)
它使原始IP數據報在主機之間傳遞錯誤信息
使用這個協議最著名的就是ping程序
Java不支持ICMP,也不容許發送原始IP數據報(只容許TCP/UDP)
因此Java支持的協議只有TCP/IP
掌握IP的尋址
IPv4中每臺計算機都由4個字節的數字標識
通常分爲點四分段格式
如192.1.32.90:每一個數都是無符號數字節,範圍從0-255
IPv4網絡中的每臺計算機都有惟一的4字節地址
當數據經過網絡傳輸時,包的首部會包括要發往的機器地址和發送這個包的地址
沿路由器經過檢查目的地址來選擇發送數據的最佳路由
包括源地址是爲了讓接收方知道要向誰回覆
如今IPv4資源基本用完
向IPv6過分,將使用16字節地址
這樣就能夠有足夠的ip地址來標識每個人、每臺計算機
IPv地址一般爲冒號分割的8個區塊
每一個區塊4個十六進行數字
FEDC:BA98:7654:3210:FEDC:BA98:7654:3210
前導的0不須要寫
兩個冒號表示多個0區塊
但每一個地址之多出現一次
在IPv4和IPv6的混合網絡中,IPv6地址的最後4字節有時寫爲IPv4的點分四段
= FEDC:BA98:7654:3210:FEDC:BA98:118.48.50.116
域名系統
能夠更易於記憶的主機名轉換爲數字Internet地址
Java程序訪問網絡時,他們須要處理數字地址和相應的 主機名
每臺計算機一次只作一件事情,那麼地址就可能足夠了
如今的計算機同時須要做不少不一樣的事情
電子郵件須要與FTP請求分開,FTP又要與WEB業務流分開
這裏能夠經過端口實現
每臺有IP地址的計算都有不少個邏輯端口(65535)
這些是計算機內存中的抽象
不表示任何物理實體,與USB端口不一樣
每一個端口由1到65535之間的一個數字表示
每一個端口能夠分配一個特定的任務
已知端口分配:
是世界上最大的基於IP的網絡
他是全部七大洲多個不一樣國家的計算機使用IP相互對話的一個無組織的集合
Internet上每臺計算機都至少有一個標識此計算機的IP地址
大多數還有一個主機名映射到這個IP地址
Internet不屬於任何人
不受任何人控制
只是約定以一種標準的方式相互對象的一個很是大的計算機集合
Internet不是惟一的基於IP的網絡,但倒是最大的一個
其餘的IP網絡稱爲internet:若是麼有鏈接Internet的高安全性內網
Internetda大體描述額公司大量數據置於內部Web服務器的實踐
這些數據對本地網絡之外的用戶不可見
5個標準等級: