網(wǎng)絡(luò)編程1.網(wǎng)絡(luò):將地理位置不同的具有獨(dú)立功能的多態(tài)計(jì)算機(jī)及其外部設(shè)備,通過通信線路連接起來,在網(wǎng)絡(luò)操作系統(tǒng)、網(wǎng)絡(luò)管理軟件及網(wǎng)絡(luò)通信協(xié)議的管理和協(xié)調(diào)下,實(shí)現(xiàn)資源共享和信息傳遞的資源系統(tǒng) 2.網(wǎng)絡(luò)模型網(wǎng)絡(luò)模型概述 網(wǎng)絡(luò)模型7層概述: 2.數(shù)據(jù)鏈路層:主要將從物理層接收的數(shù)據(jù)進(jìn)行MAC地址(網(wǎng)卡的地址)的封裝與解封裝。常把這一層的數(shù)據(jù)叫做幀。在這一層工作的設(shè)備是交換機(jī),數(shù)據(jù)通過交換機(jī)來傳輸。 3.網(wǎng)絡(luò)層:主要將從下層接收到的數(shù)據(jù)進(jìn)行IP地址(例192.168.0.1)的封裝與解封裝。在這一層工作的設(shè)備是路由器,常把這一層的數(shù)據(jù)叫做數(shù)據(jù)包。 4.傳輸層:定義了一些傳輸數(shù)據(jù)的協(xié)議和端口號(WWW端口80等),如:TCP(傳輸控制協(xié)議,傳輸效率低,可靠性強(qiáng),用于傳輸可靠性要求高,數(shù)據(jù)量大的數(shù)據(jù)),UDP(用戶數(shù)據(jù)報(bào)協(xié)議,與TCP特性恰恰相反,用于傳輸可靠性要求不高,數(shù)據(jù)量小的數(shù)據(jù),如QQ聊天數(shù)據(jù)就是通過這種方式傳輸?shù)模?br/>主要是將從下層接收的數(shù)據(jù)進(jìn)行分段和傳輸,到達(dá)目的地址后再進(jìn)行重組。常常把這一層數(shù)據(jù)叫做段。 5.會(huì)話層:通過傳輸層(端口號:傳輸端口與接收端口)建立數(shù)據(jù)傳輸?shù)耐?。主要在你的系統(tǒng)之間發(fā)起會(huì)話或者接受會(huì)話請求(設(shè)備之間需要互相認(rèn)識可以是IP也可以是MAC或者是主機(jī)名) 3.網(wǎng)絡(luò)編程三要素:IP(確定某個(gè)計(jì)算機(jī))、端口號(確定一個(gè)應(yīng)用,如飛秋)、傳輸協(xié)議(UDP、TCP) A、IP:規(guī)定網(wǎng)絡(luò)地址的協(xié)議,叫做IP協(xié)議。它所定義的地址,就被稱為IP地址,標(biāo)示一臺計(jì)算機(jī)的唯一性。 目前,廣泛采用的是IP協(xié)議第四版,簡稱IPv4。這個(gè)版本規(guī)定,網(wǎng)絡(luò)地址由32個(gè)二進(jìn)制位組成。 習(xí)慣上,我們用分成四段的十進(jìn)制數(shù)表示IP地址,從0.0.0.0一直到255.255.255.255。 互聯(lián)網(wǎng)上的每一臺計(jì)算機(jī),都會(huì)分配到一個(gè)IP地址。這個(gè)地址分成兩個(gè)部分,前一部分代表網(wǎng)絡(luò),后一部分代表主機(jī)。比如,IP地址172.16.254.1,這是一個(gè)32位的地址,假定它的網(wǎng)絡(luò)部分是前24位(172.16.254),那么主機(jī)部分就是后8位(最后的那個(gè)1)。處于同一個(gè)子網(wǎng)絡(luò)的電腦,它們IP地址的網(wǎng)絡(luò)部分必定是相同的,也就是說172.16.254.2應(yīng)該與172.16.254.1處在同一個(gè)子網(wǎng)絡(luò)。 但是,問題在于單單從IP地址,我們無法判斷網(wǎng)絡(luò)部分。還是以172.16.254.1為例,它的網(wǎng)絡(luò)部分,到底是前24位,還是前16位,甚至前28位,從IP地址上是看不出來的。 那么,怎樣才能從IP地址,判斷兩臺計(jì)算機(jī)是否屬于同一個(gè)子網(wǎng)絡(luò)呢?這就要用到另一個(gè)參數(shù)"子網(wǎng)掩碼"(subnet mask)。 所謂"子網(wǎng)掩碼",就是表示子網(wǎng)絡(luò)特征的一個(gè)參數(shù)。它在形式上等同于IP地址,也是一個(gè)32位二進(jìn)制數(shù)字,它的網(wǎng)絡(luò)部分全部為1,主機(jī)部分全部為0。比如,IP地址172.16.254.1,如果已知網(wǎng)絡(luò)部分是前24位,主機(jī)部分是后8位,那么子網(wǎng)絡(luò)掩碼就是11111111.11111111.11111111.00000000,寫成十進(jìn)制就是255.255.255.0。 知道"子網(wǎng)掩碼",我們就能判斷,任意兩個(gè)IP地址是否處在同一個(gè)子網(wǎng)絡(luò)。方法是將兩個(gè)IP地址與子網(wǎng)掩碼分別進(jìn)行AND運(yùn)算(兩個(gè)數(shù)位都為1,運(yùn)算結(jié)果為1,否則為0),然后比較結(jié)果是否相同,如果是的話,就表明它們在同一個(gè)子網(wǎng)絡(luò)中,否則就不是。 IP地址 = 網(wǎng)絡(luò)地址 主機(jī)地址 1.0.0.1—127.255.255.254 B類IP地址:前二段號碼為網(wǎng)絡(luò)地址,剩下的二段號碼為本地計(jì)算機(jī)的號碼 128.0.0.1—191.255.255.254 172.16.0.0—172.31.255.255是私有地址。 C類IP地址:前三段號碼為網(wǎng)絡(luò)地址,剩下的一段號碼為本地計(jì)算機(jī)的號碼 192.0.0.1—223.255.255.254 192.168.x.X是私有地址 D類 224.0.0.1—239.255.255.254 127.0.0.1 回環(huán)地址,可用于測試本機(jī)的網(wǎng)絡(luò)是否有問題. ping 127.0.0.1 B、協(xié)議UDP: 將數(shù)據(jù)源和目的封裝成數(shù)據(jù)包中,不需要建立連接; TCP: 建立連接,形成傳輸數(shù)據(jù)的通道; C、端口端口號(確定一個(gè)應(yīng)用,如飛秋) TCP與UDP段結(jié)構(gòu)中端口地址都是16比特,可以有在0—65535范圍內(nèi)的端口號。對于這65536個(gè)端口號有以下的使用規(guī)定: (1)端口號小于256的定義為常用端口,服務(wù)器一般都是通過常用端口號來識別的。任何TCP/IP實(shí)現(xiàn)所提供的服務(wù)都用1—1023之間的端口號,是由ICANN來管理的; (2)客戶端只需保證該端口號在本機(jī)上是惟一的就可以了。客戶端口號因存在時(shí)間很短暫又稱臨時(shí)端口號; (3)大多數(shù)TCP/IP實(shí)現(xiàn)給臨時(shí)端口號分配1024—5000之間的端口號。大于5000的端口號是為其他服務(wù)器預(yù)留的 4、Socket套接字=IP 端口 網(wǎng)絡(luò)編程也稱套接字編程 網(wǎng)絡(luò)上具有唯一標(biāo)識的IP地址和端口號組合在一起才能構(gòu)成唯一能識別的標(biāo)識符套接字。 Socket原理機(jī)制: 5、InetAddress為了方便我們對IP地址的獲取和操作,java提供了一個(gè)類InetAddress 供我們使用,此類表示互聯(lián)網(wǎng)協(xié)議 (IP) 地址。InetAddress(Inet4Address、Inet6Address) 6、UDP協(xié)議接收數(shù)據(jù)7、TCP協(xié)議接收數(shù)據(jù)來源:https://www./content-1-386601.html
|
|
|