本機地址:127.0.0.1java
import java.math.BigInteger; public class IPCalculator { public static void main(String[] args) throws NumberFormatException{ int[] ip = {101,202,99,12}; String[] listaddr16=new String[4]; for(int i=0;i<ip.length;i++){ String hex = Integer.toHexString(ip[i]); if(hex.length()<2){ hex="0"+hex; } listaddr16[i]=hex; } String address16 =""; for(String addr:listaddr16){ address16 += addr; } System.out.println("IP地址轉化爲16進制:"+ address16); System.out.println(new BigInteger(address16,16)); } }
若是1臺計算機有1個網卡,而且接入了網絡,它會擁有2個IP地址,本地地址127.0.0.1和一個IP地址,並經過這個IP地址鏈接網絡。
若是計算機有2個網卡,除了本地地址,還有2個IP地址,分別接入2個網絡。一般鏈接2個網絡的設備是交換機和路由器,其至少有2個IP地址,分別接入不一樣的網絡,讓網絡之間鏈接起來。
若是2臺電腦位於同一個網絡下,它們能夠直接通訊,由於其IP地址前段是相同的,網絡號也是相同的。
網絡號是IP地址經過子網掩碼之後過濾獲得的。每臺計算機都配備了IP地址和子網掩碼,根據IP地址和子網掩碼能夠計算出網絡號。
計算方法:按組對齊,作與運算。
若是計算出的網絡號相同,證實在同一個網絡,能夠直接通訊。
若是2臺計算機計算出的網絡號不一樣,2臺計算機不在同一個網絡,不能直接通訊。必須經過路由器或交換機等網絡設備間接通訊,咱們把這種設備成爲網關。
網關的做用:鏈接多個網絡,負責把來自一個網絡的數據包發到另外一個網絡,這個過程成爲路由。
因此一臺計算機的網卡會有IP地址、子網掩碼、網關的IP地址這3個關鍵的配置。服務器
直接記憶IP地址很是困難,因此咱們一般使用域名來訪問某個特定的服務。域名解析器DNS負責把域名翻譯爲對應的IP地址,客戶端再根據IP地址來訪問服務器。網絡
TCP/IP協議:繁殖互聯網協議簇,最重要的2個協議是TCP/IP協議。tcp
OSI模型是ISO組織定義的一個計算機互聯的標準模型。只是一個定義,目的是簡化網絡各層的操做,提供標準的接口,便於實現和維護。
應用層:提供應用層序之間的通訊
表示層:處理數據格式、加減密
會話層:負責建議和維護會話
傳輸層:提供端到端的可靠傳輸
網絡層:負責根據目標地址來選擇路由
鏈路層和物理層:負責把數據進行分片,而且真正經過物理網絡進行傳輸,例如無線網、光線等計算機網絡
不保證可靠傳輸翻譯
雙向通訊 TCP容許雙向通訊,雙方能夠同時發送接受數據code
UDP比TCP簡單的多。UDP協議不須要鏈接,不保證可靠傳輸,發送方發送數據後,沒法得知接收方是否收到,由於UDP協議比TCP要簡單的多,因此一樣的數據用UDP傳輸要比TCP效率高。
選擇UDP協議的時候,傳輸的數據,一般是可以容忍丟失一部分的,例如一些語音、視頻通信的應用會選擇UDP協議orm
計算機網絡的基本概念:視頻