-
OSI(Open System Interconnection 開放系統互連)參考模型
-
物理層: 物理設備,主要作用 - 傳輸比特流
-
數據鏈路層: 將從物理層接收的數據進行 MAC 地址的封裝與解封裝。這一層的數據叫做幀,數據由交換機進行傳輸。
-
網絡層: 住要將從下層接收到的數據進行 IP 地址封裝與解封裝。
-
傳輸層: 定義傳輸數據的協議與端口號,如 TCP(傳輸控制協議)等。
-
會話層: 通過傳輸層建立數據傳輸通路,在系統之間發起會話請求。
-
表示層: 主要進行對接收的數據進行解釋、加密與解密、壓縮與解壓縮。
-
應用層: 一些終端的應用,如 FTP (文件的下載),WEB (IE 瀏覽)等。
-
TCP/IP 參考模型
-
應用層 & 表示層 & 會話層 -> 應用層
-
傳輸層 -> 傳輸層
-
網絡層 -> 網際層
-
數據鏈路層 & 物理層 -> 主機至網絡層
- IP地址
- 網絡中設備的標示
- 不易記憶,可用主機名(localhost)
- 端口號
- 用於標示近程的邏輯地址,不同進程的標示
- 傳輸協議
- 通訊規則
- 常見協議: TCP, UDP
- UDP
- 將數據及源和目的封裝於數據包中,不需要建立連接。
- 每個數據包的大小限制在 64k 內。
- 因無連接,是不可靠協議。
- 不需要建立連接,速度快
- TCP
- 建立連接,形成傳輸數據的通道。
- 在連接中進行大數據量傳輸。
- 通過三次握手完成連接,是可靠協議。
- 必須建立連接,效率會稍低。
import java.net.InetAddress;
import java.net.UnknownHostException;
public class IPDemo {
public static void main(String[] args) throws UnknownHostException {
//獲取本地主機 ip 地址對象
InetAddress ip = InetAddress.getLocalHost();
//獲取其他主機 ip 地址對象
ip = InetAddress.getByName("www.google.com");
// ip = InetAddress.getByName("172.217.160.68");
System.out.println(ip.getHostAddress());
System.out.println(ip.getHostName());
}
}
打印結果
172.217.160.68
www.google.com