1.網路模型
A:電腦網路之間以何種規則進行通訊,就是網路模型研究問題。
B:網路模型一般是指
OSI(Open System Interconnection開放系統互相連線模型)參考模型
TCP/IP參考模型
C:網路參考模型圖
網路模型7層概述:
1.物理層:主要定義物理裝置標準,如網線的介面類型、光纖的介面類型、各種傳輸介質的傳輸速率等。它的主要作用是傳輸位元流(就是由1、0轉化為電流強弱來進行傳輸,到達目的地後在轉化為1、0,也就是我們常說的數模轉換與模數轉換)。這一層的資料叫做位元。
2. 資料連結層:主要將從物理層接收的資料進行MAC地址(網卡的地址)的封裝與解鎖裝。常把這一層的資料叫做幀。在這一層工作的裝置是交換器,資料通過交換器來傳輸。
3. 網路層:主要將從下層接收到的資料進行IP地址(例192.168.0.1)的封裝與解鎖裝。在這一層工作的裝置是路由器,常把這一層的資料叫做資料包。
4. 傳輸層:定義了一些傳輸資料的協議和連接埠號碼(WWW連接埠80等),如:TCP(傳輸控制通訊協定,傳輸效率低,可靠性強,用於傳輸可靠性要求高,資料量大的資料),UDP(使用者資料包通訊協定,與TCP特性恰恰相反,用於傳輸可靠性要求不高,資料量小的資料,如QQ聊天資料就是通過這種方式傳輸的)。 主要是將從下層接收的資料進行分段和傳輸,到達目的地址後再進行重組。常常把這一層資料叫做段。
5.會話層:通過傳輸層(連接埠號碼:傳輸連接埠與接收埠)建立資料轉送的通路。主要在你的系統之間發起會話或者接受會話請求(裝置之間需要互相認識可以是IP也可以是MAC或者是主機名稱)
6.展示層:主要是進行對接收的資料進行解釋、加密與解密、壓縮與解壓縮等(也就是把電腦能夠識別的東西轉換成人能夠能識別的東西(如圖片、聲音等)。
7.應用程式層: 主要是一些終端的應用,比如說FTP(各種檔案下載),WEB(IE瀏覽),QQ之類的(可以把它理解成我們在電腦螢幕上可以看到的東西.就是終端應用)。
2.網路通訊三要素
A:IP地址:InetAddress
網路中裝置的標識,不易記憶,可用主機名稱
B:連接埠號碼
用於標識進程的邏輯地址,不同進程的標識
C:傳輸協議
通訊的規則
常見協議:TCP,UDP
3.IP地址
IP地址 = 網路編號+主機地址
A類IP地址:第一段號碼為網路編號,剩下的三段號碼為本機電腦的號碼
B類IP地址:前二段號碼為網路編號,剩下的二段號碼為本機電腦的號碼
C類IP地址:前三段號碼為網路編號,剩下的一段號碼為本機電腦的號碼
特殊地址:
127.0.0.1 迴環地址,可用於測試原生網路是否有問題. ping 127.0.0.1
DOS命令 ipconfig:查看本機IP地址
xxx.xxx.xxx.0 網路地址
xxx.xxx.xxx.255 廣播位址
A類 1.0.0.1—127.255.255.254
(1)10.X.X.X是私人地址(私人地址就是在互連網上不使用,而被用在區域網路絡中的地址)
(2)127.X.X.X是保留地址,用做迴圈測試用的。
B類 128.0.0.1—191.255.255.254 172.16.0.0—172.31.255.255是私人地址。169.254.X.X是保留地址。
C類 192.0.0.1—223.255.255.254 192.168.X.X是私人地址
D類 224.0.0.1—239.255.255.254
E類 240.0.0.1—247.255.255.254
4.InetAddress:此類表示互連網協議 (IP) 地址。
該類構造方法,那麼如何使類提供的功能呢。
沒有構造方法的類:
A:成員全部是靜態(Math,Array,Collections)
B:單例設計模式(Runtime)
C :類中有靜態成員方法返回該類的對象(public static InetAddress getByName(String host)使用該方法)
要掌握的功能
擷取任意主機:public static InetAddress getByName(String host):在給定主機名稱或者IP地址的字串的情況下確定主機的 IP 位址。
擷取主機名稱:public String getHostName()
擷取主機Ip地址:public String getHostAddress()
5.連接埠
物理連接埠 網卡口
邏輯連接埠 我們指的就是邏輯連接埠
A:每個網路程式都會至少有一個邏輯連接埠
B:用於標識進程的邏輯地址,不同進程的標識
C:有效連接埠:0~65535,其中0~1024系統使用或保留連接埠。
6.協議
UDP:
把資料打包
資料有限制(資料包最大64k)
面向無串連
不可靠
速度快
舉例:聊天留言,線上視頻,視頻會議,發簡訊,郵局包裹。
TCP:
連線導向(通過三向交握確保串連的建立)
資料無限制
安全可靠
效率稍低
舉例:下載,打電話,QQ聊天
7.socket:網路通訊端,網路編程
Socket通訊端:IP地址+連接埠號碼
Socket原理機制:
通訊的兩端都有Socket。
網路通訊其實就是Socket間的通訊。
資料在兩個Socket間通過IO傳輸。
UDP協議發送資料
A:建立發送端Socket對象(DatagramSocket)
B:建立資料,並把資料打包
C:調用Socket對象的發送方法發送資料包 send(DatagramPacket p)
D :釋放資源close()
UDP協議接收資料
A:建立接收端Socket對象DatagramSocket
B:建立一個資料包(接受容器)DatagramPacket
C:調用Socket對象的接收方法接收資料包 void receive(DatagramPacket p)
D:解析資料包 DatagramPacket
InetAddress getInetAddress() :返回某台機器的 IP 位址
byte[] getData() :返回資料緩衝區。
int getLength() :返回將要發送或接收到的資料的長度。
E:釋放資源 DatagramSocket->close()
TCP協議發送資料
A:建立發送端的Socket對象 Socket
這一步如果成功了就說明連結成功了
B:擷取輸出資料流,寫資料 OutputStream write()
C:釋放資源 close()
串連被拒絕,TCP協議一定要先開伺服器。
TCP協議接收資料
A:建立接收端的Socket對象 ServerSocket
B:監聽用戶端串連,返回一個對應的Socket對象 Socket accept()
C:擷取輸入資料流,讀取資料 InputStream
D:釋放資源 Socket -> close()