網(wǎng)絡(luò)模型
OSI參考模型
7 應(yīng)用層
6 表示層
5 會話層
4 傳輸層
3 網(wǎng)絡(luò)層
2 數(shù)據(jù)鏈路層
1 物理層
TCP/IP參考模型
4 應(yīng)用層
3 傳輸層
2 網(wǎng)絡(luò)層
1 數(shù)據(jù)鏈路層
IP地址和端口號
1、ip用于標(biāo)識網(wǎng)絡(luò)中的一個通信實體,可以是主機(jī)、打印機(jī)、路由端口?;贗P協(xié)議傳輸?shù)臄?shù)據(jù)包必須使用IP地址標(biāo)識,指定目的地址,每個數(shù)據(jù)包都包括源IP和目的IP。
2、一個通信實體可以有多個通信程序同時提供網(wǎng)絡(luò)服務(wù),此時通過端口來區(qū)分具體的通信程序。一個通信實體不能有兩個通信程序使用同一個端口號。
TCP和UDP
1.基于連接和無連接
2.TCP要求系統(tǒng)資源較多,UDP較少
3.UDP程序結(jié)構(gòu)簡單
4.流模式(TCP)數(shù)據(jù)報模式(UDP)
5.TCP數(shù)據(jù)準(zhǔn)確,UDP數(shù)據(jù)可能丟失
6.TCP有數(shù)據(jù)順序,UDP不保證
UDP應(yīng)用場景
1.面向數(shù)據(jù)報方式
2.網(wǎng)絡(luò)數(shù)據(jù)大多為短消息
3.擁有大量Client
4.對數(shù)據(jù)安全要求小
5.網(wǎng)絡(luò)負(fù)擔(dān)重,但對相應(yīng)速度要求高
Socket套接字
定義
將IP地址和端口組合在一起構(gòu)成唯一能識別的標(biāo)識符
原理
- 通信兩端都有Socket
- 網(wǎng)絡(luò)通信就是Socket間的通信
- 數(shù)據(jù)在兩個Socket間通過IO傳輸
通信模型
- 服務(wù)端
建立服務(wù)端傾聽socket
等待接受連接請求
接受請求后創(chuàng)建socket連接
InputStream
OutputStream
關(guān)閉socket及相關(guān)資源
- 客戶端
發(fā)送創(chuàng)建socket連接請求
OutputStream
InputStream
關(guān)閉socket及相關(guān)資源
Socket通信步驟
1.創(chuàng)建ServerSocket和Socket
2.打開連接到Socket的輸入輸出流
3.按照協(xié)議對Socket進(jìn)行讀寫操作
4.關(guān)閉輸入輸出流、關(guān)閉Socket
ServerSocket服務(wù)器端
1.創(chuàng)建ServerSocket對象,綁定監(jiān)聽端口
2.通過accept()方法監(jiān)聽客戶端請求
3.連接建立后,通過輸入流讀取客戶端發(fā)送的請求信息
4.通過輸出流向客戶端發(fā)送相應(yīng)信息
5.關(guān)閉相關(guān)資源