第四章 Linux網(wǎng)絡(luò)編程
4.1 網(wǎng)絡(luò)結(jié)構(gòu)模式
C/S結(jié)構(gòu)
簡介
服務(wù)器 - 客戶機(jī),即 Client - Server(C/S)結(jié)構(gòu)。C/S 結(jié)構(gòu)通常采取兩層結(jié)構(gòu)。服務(wù)器負(fù)責(zé)數(shù)據(jù)的管理,客戶機(jī)負(fù)責(zé)完成與用戶的交互任務(wù)。客戶機(jī)是因特網(wǎng)上訪問別人信息的機(jī)器,服務(wù)器則是提供信息供人訪問的計算機(jī)。
客戶機(jī)通過局域網(wǎng)與服務(wù)器相連,接受用戶的請求,并通過網(wǎng)絡(luò)向服務(wù)器提出請求,對數(shù)據(jù)庫進(jìn)行操作。服務(wù)器接受客戶機(jī)的請求,將數(shù)據(jù)提交給客戶機(jī),客戶機(jī)將數(shù)據(jù)進(jìn)行計算并將結(jié)果呈現(xiàn)給用戶。服務(wù)器還要提供完善安全保護(hù)及對數(shù)據(jù)完整性的處理等操作,并允許多個客戶機(jī)同時訪問服務(wù)器,這就對服務(wù)器的硬件處理數(shù)據(jù)能力提出了很高的要求。
在C/S結(jié)構(gòu)中,應(yīng)用程序分為兩部分:服務(wù)器部分和客戶機(jī)部分。服務(wù)器部分是多個用戶共享的信息與功能,執(zhí)行后臺服務(wù),如控制共享數(shù)據(jù)庫的操作等;客戶機(jī)部分為用戶所專有,負(fù)責(zé)執(zhí)行前臺功能,在出錯提示、在線幫助等方面都有強(qiáng)大的功能,并且可以在子程序間自由切換。
優(yōu)點
- 能充分發(fā)揮客戶端 PC 的處理能力,很多工作可以在客戶端處理后再提交給服務(wù)器,所以 C/S 結(jié)構(gòu)客戶端響應(yīng)速度快;
- 操作界面漂亮、形式多樣,可以充分滿足客戶自身的個性化要求;
- C/S 結(jié)構(gòu)的管理信息系統(tǒng)具有較強(qiáng)的事務(wù)處理能力,能實現(xiàn)復(fù)雜的業(yè)務(wù)流程;
- 安全性較高,C/S 一般面向相對固定的用戶群,程序更加注重流程,它可以對權(quán)限進(jìn)行多層次校驗,提供了更安全的存取模式,對信息安全的控制能力很強(qiáng),一般高度機(jī)密的信息系統(tǒng)采用 C/S 結(jié)構(gòu)適宜。
缺點
- 客戶端需要安裝專用的客戶端軟件。首先涉及到安裝的工作量,其次任何一臺電腦出問題,如病毒、硬件損壞,都需要進(jìn)行安裝或維護(hù)。系統(tǒng)軟件升級時,每一臺客戶機(jī)需要重新安裝,其維護(hù)和升級成本非常高;
- 對客戶端的操作系統(tǒng)一般也會有限制,不能夠跨平臺。
B/S結(jié)構(gòu)
簡介
B/S 結(jié)構(gòu)(Browser/Server,瀏覽器/服務(wù)器模式),是 WEB 興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,WEB瀏覽器是客戶端最主要的應(yīng)用軟件。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實現(xiàn)的核心部分集中到服務(wù)器上,簡化了系統(tǒng)的開發(fā)、維護(hù)和使用。客戶機(jī)上只要安裝一個瀏覽器,如 Firefox 或 InternetExplorer,服務(wù)器安裝 SQL Server、Oracle、MySQL 等數(shù)據(jù)庫。瀏覽器通過 Web Server 同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互。
優(yōu)點
B/S 架構(gòu)最大的優(yōu)點是總體擁有成本低、維護(hù)方便、 分布性強(qiáng)、開發(fā)簡單,可以不用安裝任何專門的軟件就能實現(xiàn)在任何地方進(jìn)行操作,客戶端零維護(hù),系統(tǒng)的擴(kuò)展非常容易,只要有一臺能上網(wǎng)的電腦就能使用。
缺點
- 通信開銷大、系統(tǒng)和數(shù)據(jù)的安全性較難保障;
- 個性特點明顯降低,無法實現(xiàn)具有個性化的功能要求;
- 協(xié)議一般是固定的:http/https
- 客戶端服務(wù)器端的交互是請求-響應(yīng)模式,通常動態(tài)刷新頁面,響應(yīng)速度明顯降低
4.2MAC地址、IP地址、端口(1)
MAC地址
網(wǎng)卡是一塊被設(shè)計用來允許計算機(jī)在計算機(jī)網(wǎng)絡(luò)上進(jìn)行通訊的計算機(jī)硬件,又稱為網(wǎng)絡(luò)適配器或網(wǎng)絡(luò)接口卡NIC。其擁有 MAC 地址,屬于 OSI 模型的第 2 層,它使得用戶可以通過電纜或無線相互連接。每一個網(wǎng)卡都有一個被稱為 MAC 地址的獨一無二的 48 位串行號。網(wǎng)卡的主要功能:1.數(shù)據(jù)的封裝與解封裝、2.鏈路管理、3.數(shù)據(jù)編碼與譯碼。
MAC 地址(Media Access Control Address),直譯為媒體存取控制位址,也稱為局域網(wǎng)地址、以太網(wǎng)地址、物理地址或硬件地址,它是一個用來確認(rèn)網(wǎng)絡(luò)設(shè)備位置的位址,由網(wǎng)絡(luò)設(shè)備制造商生產(chǎn)時燒錄在網(wǎng)卡中。在 OSI 模型中,第三層網(wǎng)絡(luò)層負(fù)責(zé) IP 地址,第二層數(shù)據(jù)鏈路層則負(fù)責(zé) MAC位址 。MAC 地址用于在網(wǎng)絡(luò)中唯一標(biāo)識一個網(wǎng)卡,一臺設(shè)備若有一或多個網(wǎng)卡,則每個網(wǎng)卡都需要并會有一個唯一的 MAC 地址。
MAC 地址的長度為 48 位(6個字節(jié)),通常表示為 12 個 16 進(jìn)制數(shù),如:00-16-EA-AE-3C-40 就是一個MAC 地址,其中前 3 個字節(jié),16 進(jìn)制數(shù) 00-16-EA 代表網(wǎng)絡(luò)硬件制造商的編號,它由IEEE(電氣與電子工程師協(xié)會)分配,而后 3 個字節(jié),16進(jìn)制數(shù) AE-3C-40 代表該制造商所制造的某個網(wǎng)絡(luò)產(chǎn)品(如網(wǎng)卡)的系列號。只要不更改自己的 MAC 地址,MAC 地址在世界是唯一的。形象地說,MAC 地址就如同身份證上的身份證號碼,具有唯一性。
IP地址
IP 協(xié)議是為計算機(jī)網(wǎng)絡(luò)相互連接進(jìn)行通信而設(shè)計的協(xié)議。在因特網(wǎng)中,它是能使連接到網(wǎng)上的所有計算機(jī)網(wǎng)絡(luò)實現(xiàn)相互通信的一套規(guī)則,規(guī)定了計算機(jī)在因特網(wǎng)上進(jìn)行通信時應(yīng)當(dāng)遵守的規(guī)則。任何廠家生產(chǎn)的計算機(jī)系統(tǒng),只要遵守 IP 協(xié)議就可以與因特網(wǎng)互連互通。各個廠家生產(chǎn)的網(wǎng)絡(luò)系統(tǒng)和設(shè)備,如以太網(wǎng)、分組交換網(wǎng)等,它們相互之間不能互通,不能互通的主要原因是因為它們所傳送數(shù)據(jù)的基本單元(技術(shù)上稱之為“幀”)的格式不同。IP 協(xié)議實際上是一套由軟件程序組成的協(xié)議軟件,它把各種不同“幀”統(tǒng)一轉(zhuǎn)換成“IP 數(shù)據(jù)報”格式,這種轉(zhuǎn)換是因特網(wǎng)的一個最重要的特點,使所有各種計算機(jī)都能在因特網(wǎng)上實現(xiàn)互通,即具有“開放性”的特點。正是因為有了 IP 協(xié)議,因特網(wǎng)才得以迅速發(fā)展成為世界上最大的、開放的計算機(jī)通信網(wǎng)絡(luò)。因此,IP 協(xié)議也可以叫做“因特網(wǎng)協(xié)議”。
IP 地址(Internet Protocol Address)是指互聯(lián)網(wǎng)協(xié)議地址,又譯為網(wǎng)際協(xié)議地址。IP 地址是 IP協(xié)議提供的一種統(tǒng)一的地址格式,它為互聯(lián)網(wǎng)上的每一個網(wǎng)絡(luò)和每一臺主機(jī)分配一個邏輯地址,以此來屏蔽物理地址的差異。
IP 地址是一個 32 位的二進(jìn)制數(shù),通常被分割為 4 個“ 8 位二進(jìn)制數(shù)”(也就是 4 個字節(jié))。IP 地址通常用“點分十進(jìn)制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是 0~255 之間的十進(jìn)制整數(shù)。
例:點分十進(jìn)IP地址(100.4.5.6),實際上是 32 位二進(jìn)制數(shù)
(01100100.00000100.00000101.00000110)。
IP地址編址方式
最初設(shè)計互聯(lián)網(wǎng)絡(luò)時,為了便于尋址以及層次化構(gòu)造網(wǎng)絡(luò),每個 IP 地址包括兩個標(biāo)識碼(ID),即網(wǎng)絡(luò)ID 和主機(jī) ID。同一個物理網(wǎng)絡(luò)上的所有主機(jī)都使用同一個網(wǎng)絡(luò) ID,網(wǎng)絡(luò)上的一個主機(jī)(包括網(wǎng)絡(luò)上工作站,服務(wù)器和路由器等)有一個主機(jī) ID 與其對應(yīng)。Internet 委員會定義了 5 種 IP 地址類型以適合不同容量的網(wǎng)絡(luò),即 A 類~ E 類。
其中 A、B、C 3類(如下表格)由 InternetNIC 在全球范圍內(nèi)統(tǒng)一分配,D、E 類為特殊地址。
私有IP地址一般不會使用,.255一般用于廣播。
A類IP地址
一個 A 類 IP 地址是指, 在 IP 地址的四段號碼中,第一段號碼為網(wǎng)絡(luò)號碼,剩下的三段號碼為本地計算機(jī)的號碼。如果用二進(jìn)制表示 IP 地址的話,A 類 IP 地址就由 1 字節(jié)的網(wǎng)絡(luò)地址和 3 字節(jié)主機(jī)地址組成,網(wǎng)絡(luò)地址的最高位必須是“0”。A 類 IP 地址中網(wǎng)絡(luò)的標(biāo)識長度為 8 位,主機(jī)標(biāo)識的長度為 24 位,A類網(wǎng)絡(luò)地址數(shù)量較少,有 126 個網(wǎng)絡(luò),每個網(wǎng)絡(luò)可以容納主機(jī)數(shù)達(dá) 1600 多萬臺。
A 類 IP 地址 地址范圍 1.0.0.1 - 126.255.255.254(二進(jìn)制表示為:00000001 00000000 00000000
00000001 - 01111111 11111111 11111111 11111110)。最后一個是廣播地址。
A 類 IP 地址的子網(wǎng)掩碼為 255.0.0.0,每個網(wǎng)絡(luò)支持的最大主機(jī)數(shù)為 256 的 3 次方 - 2 = 16777214 臺。
B類IP地址
一個 B 類 IP 地址是指,在 IP 地址的四段號碼中,前兩段號碼為網(wǎng)絡(luò)號碼。如果用二進(jìn)制表示 IP 地址的話,B 類 IP 地址就由 2 字節(jié)的網(wǎng)絡(luò)地址和 2 字節(jié)主機(jī)地址組成,網(wǎng)絡(luò)地址的最高位必須是“10”。B 類 IP地址中網(wǎng)絡(luò)的標(biāo)識長度為 16 位,主機(jī)標(biāo)識的長度為 16 位,B 類網(wǎng)絡(luò)地址適用于中等規(guī)模的網(wǎng)絡(luò),有16384 個網(wǎng)絡(luò),每個網(wǎng)絡(luò)所能容納的計算機(jī)數(shù)為 6 萬多臺。
B 類 IP 地址地址范圍 128.0.0.1 - 191.255.255.254 (二進(jìn)制表示為:10000000 00000000 00000000
00000001 - 10111111 11111111 11111111 11111110)。 最后一個是廣播地址。
B 類 IP 地址的子網(wǎng)掩碼為 255.255.0.0,每個網(wǎng)絡(luò)支持的最大主機(jī)數(shù)為 256 的 2 次方 - 2 = 65534 臺。
C類IP地址
一個 C 類 IP 地址是指,在 IP 地址的四段號碼中,前三段號碼為網(wǎng)絡(luò)號碼,剩下的一段號碼為本地計算機(jī)的號碼。如果用二進(jìn)制表示 IP 地址的話,C 類 IP 地址就由 3 字節(jié)的網(wǎng)絡(luò)地址和 1 字節(jié)主機(jī)地址組成,網(wǎng)絡(luò)地址的最高位必須是“110”。C 類 IP 地址中網(wǎng)絡(luò)的標(biāo)識長度為 24 位,主機(jī)標(biāo)識的長度為 8 位,C 類網(wǎng)絡(luò)地址數(shù)量較 多,有 209 萬余個網(wǎng)絡(luò)。適用于小規(guī)模的局域網(wǎng)絡(luò),每個網(wǎng)絡(luò)最多只能包含254臺計算機(jī)。
C 類 IP 地址范圍 192.0.0.1-223.255.255.254 (二進(jìn)制表示為: 11000000 00000000 00000000
00000001 - 11011111 11111111 11111111 11111110)。
C類IP地址的子網(wǎng)掩碼為 255.255.255.0,每個網(wǎng)絡(luò)支持的最大主機(jī)數(shù)為 256 - 2 = 254 臺。
D類IP地址
D 類 IP 地址在歷史上被叫做多播地址(multicast address),即組播地址。在以太網(wǎng)中,多播地址命
名了一組應(yīng)該在這個網(wǎng)絡(luò)中應(yīng)用接收到一個分組的站點。多播地址的最高位必須是 “1110”,范圍從
224.0.0.0 - 239.255.255.255。
特殊的網(wǎng)址
每一個字節(jié)都為 0 的地址( “0.0.0.0” )對應(yīng)于當(dāng)前主機(jī);
IP 地址中的每一個字節(jié)都為 1 的 IP 地址( “255.255.255.255” )是當(dāng)前子網(wǎng)的廣播地址;
IP 地址中凡是以 “11110” 開頭的 E 類 IP 地址都保留用于將來和實驗使用。
IP地址中不能以十進(jìn)制 “127” 作為開頭,該類地址中數(shù)字 127.0.0.1 到 127.255.255.255 用于回路測
試,如:127.0.0.1可以代表本機(jī)IP地址。
子網(wǎng)掩碼
子網(wǎng)掩碼(subnet mask)又叫網(wǎng)絡(luò)掩碼、地址掩碼、子網(wǎng)絡(luò)遮罩,它是一種用來指明一個 IP 地
址的哪些位標(biāo)識的是主機(jī)所在的子網(wǎng),以及哪些位標(biāo)識的是主機(jī)的位掩碼。子網(wǎng)掩碼不能單獨存
在,它必須結(jié)合 IP 地址一起使用。子網(wǎng)掩碼只有一個作用,就是將某個 IP 地址劃分成網(wǎng)絡(luò)地址和
主機(jī)地址兩部分。
子網(wǎng)掩碼是一個 32 位地址,用于屏蔽 IP 地址的一部分以區(qū)別網(wǎng)絡(luò)標(biāo)識和主機(jī)標(biāo)識,并說明該 IP
地址是在局域網(wǎng)上,還是在廣域網(wǎng)上。
ip地址與子網(wǎng)掩碼進(jìn)行與操作,獲得網(wǎng)絡(luò)地址。將子網(wǎng)掩碼取反,再與ip地址與操作,獲得主機(jī)地址。
子網(wǎng)掩碼是在 IPv4 地址資源緊缺的背景下為了解決 lP 地址分配而產(chǎn)生的虛擬 lP 技術(shù),通過子網(wǎng)掩碼將
A、B、C 三類地址劃分為若干子網(wǎng),從而顯著提高了 IP 地址的分配效率,有效解決了 IP 地址資源緊張
的局面。另一方面,在企業(yè)內(nèi)網(wǎng)中為了更好地管理網(wǎng)絡(luò),網(wǎng)管人員也利用子網(wǎng)掩碼的作用,人為地將一
個較大的企業(yè)內(nèi)部網(wǎng)絡(luò)劃分為更多個小規(guī)模的子網(wǎng),再利用三層交換機(jī)的路由功能實現(xiàn)子網(wǎng)互聯(lián),從而
有效解決了網(wǎng)絡(luò)廣播風(fēng)暴和網(wǎng)絡(luò)病毒等諸多網(wǎng)絡(luò)管理方面的問題。
在大多數(shù)的網(wǎng)絡(luò)教科書中,一般都將子網(wǎng)掩碼的作用描述為通過邏輯運(yùn)算,將 IP 地址劃分為網(wǎng)絡(luò)標(biāo)識
(Net.ID) 和主機(jī)標(biāo)識(Host.ID),只有網(wǎng)絡(luò)標(biāo)識相同的兩臺主機(jī)在無路由的情況下才能相互通信。
根據(jù) RFC950 定義,子網(wǎng)掩碼是一個 32 位的 2 進(jìn)制數(shù), 其對應(yīng)網(wǎng)絡(luò)地址的所有位都置為 1,對應(yīng)于主
機(jī)地址的所有位置都為 0。子網(wǎng)掩碼告知路由器,地址的哪一部分是網(wǎng)絡(luò)地址,哪一部分是主機(jī)地址,
使路由器正確判斷任意 IP 地址是否是本網(wǎng)段的,從而正確地進(jìn)行路由。網(wǎng)絡(luò)上,數(shù)據(jù)從一個地方傳到另
外一個地方,是依靠 IP 尋址。從邏輯上來講,是兩步的。第一步,從 IP 中找到所屬的網(wǎng)絡(luò),好比是去
找這個人是哪個小區(qū)的;第二步,再從 IP 中找到主機(jī)在這個網(wǎng)絡(luò)中的位置,好比是在小區(qū)里面找到這個
人。
子網(wǎng)掩碼的設(shè)定必須遵循一定的規(guī)則。與二進(jìn)制 IP 地址相同,子網(wǎng)掩碼由 1 和 0 組成,且 1 和 0 分別
連續(xù)。子網(wǎng)掩碼的長度也是 32 位,左邊是網(wǎng)絡(luò)位,用二進(jìn)制數(shù)字 “1” 表示,1 的數(shù)目等于網(wǎng)絡(luò)位的長
度;右邊是主機(jī)位,用二進(jìn)制數(shù)字 “0” 表示,0 的數(shù)目等于主機(jī)位的長度。這樣做的目的是為了讓掩碼
與 IP 地址做按位與運(yùn)算時用 0 遮住原主機(jī)數(shù),而不改變原網(wǎng)絡(luò)段數(shù)字,而且很容易通過 0 的位數(shù)確定子
網(wǎng)的主機(jī)數(shù)( 2 的主機(jī)位數(shù)次方 - 2,因為主機(jī)號全為 1 時表示該網(wǎng)絡(luò)廣播地址,全為 0 時表示該網(wǎng)絡(luò)
的網(wǎng)絡(luò)號,這是兩個特殊地址)。通過子網(wǎng)掩碼,才能表明一臺主機(jī)所在的子網(wǎng)與其他子網(wǎng)的關(guān)系,使
網(wǎng)絡(luò)正常工作。
端口
簡介
“端口” 是英文 port 的意譯,可以認(rèn)為是設(shè)備與外界通訊交流的出口。端口可分為虛擬端口和物理端口,其中虛擬端口指計算機(jī)內(nèi)部或交換機(jī)路由器內(nèi)的端口,不可見,是特指TCP/IP協(xié)議中的端口,是邏輯意義上的端口。例如計算機(jī)中的 80 端口、21 端口、23 端口等。物理端口又稱為接口,是可見端口,計算機(jī)背板的RJ45 網(wǎng)口,交換機(jī)路由器集線器等 RJ45 端口。電話使用 RJ11 插口也屬于物理端口的范疇。如果把 IP 地址比作一間房子,端口就是出入這間房子的門。真正的房子只有幾個門,但是一個 IP地址的端口可以有 65536(即:2^16)個之多!端口是通過端口號來標(biāo)記的,端口號只有整數(shù),
范圍是從 0 到65535(2^16-1)。
不能用進(jìn)程號進(jìn)行標(biāo)識,因為每次的進(jìn)程號都是隨機(jī)分配的。
端口類型
1.周知端口(Well Known Ports)
周知端口是眾所周知的端口號,也叫知名端口、公認(rèn)端口或者常用端口,范圍從 0 到 1023,它們緊密綁定于一些特定的服務(wù)。例如 80 端口分配給 WWW 服務(wù),21 端口分配給 FTP 服務(wù),23 端口分配給Telnet服務(wù)等等。我們在 IE 的地址欄里輸入一個網(wǎng)址的時候是不必指定端口號的,因為在默認(rèn)情況下WWW 服務(wù)的端口是 “80”。網(wǎng)絡(luò)服務(wù)是可以使用其他端口號的,如果不是默認(rèn)的端口號則應(yīng)該在地址欄
上指定端口號,方法是在地址后面加上冒號“:”(半角),再加上端口號。比如使用 “8080” 作為 WWW服務(wù)的端口,則需要在地址欄里輸入“網(wǎng)址:8080”。但是有些系統(tǒng)協(xié)議使用固定的端口號,它是不能被改變的,比如 139 端口專門用于 NetBIOS 與 TCP/IP 之間的通信,不能手動改變。
2.注冊端口(Registered Ports)
端口號從 1024 到 49151,它們松散地綁定于一些服務(wù),分配給用戶進(jìn)程或應(yīng)用程序,這些進(jìn)程主要是用戶選擇安裝的一些應(yīng)用程序,而不是已經(jīng)分配好了公認(rèn)端口的常用程序。這些端口在沒有被服務(wù)器資源占用的時候,可以用用戶端動態(tài)選用為源端口。文章來源:http://www.zghlxwxcb.cn/news/detail-482057.html
3.動態(tài)端口 / 私有端口(Dynamic Ports / Private Ports)
動態(tài)端口的范圍是從 49152 到 65535。之所以稱為動態(tài)端口,是因為它一般不固定分配某種服務(wù),而是動態(tài)分配。文章來源地址http://www.zghlxwxcb.cn/news/detail-482057.html
到了這里,關(guān)于第四章 Linux網(wǎng)絡(luò)編程 4.1 網(wǎng)絡(luò)結(jié)構(gòu)模式 4.2MAC地址、IP地址、端口的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!