linux網(wǎng)絡(luò)編程(一) ---- 基本概念

OSI(open system interconnect)模型用于計算機或通信系統(tǒng)間互聯(lián)的標準體系。它是一個七層的、抽象的模型體,不僅包括一系列抽象的術(shù)語或概念,也包括具體的協(xié)議。

應(yīng)用層

與其它計算機進行通訊的一個應(yīng)用,它是對應(yīng)應(yīng)用程序的通信服務(wù)的。例如,一個沒有通信功能的字處理程序就不能執(zhí)行通信的代碼,從事字處理工作的程序員也不關(guān)心OSI的第7層。但是,如果添加了一個傳輸文件的選項,那么字處理器的程序員就需要實現(xiàn)OSI的第7層。示例:telnet,HTTP,FTP,NFS,SMTP等。

表示層

這一層的主要功能是定義數(shù)據(jù)格式及加密。例如,F(xiàn)TP允許你選擇以二進制或ASCII格式傳輸。如果選擇二進制,那么發(fā)送方和接收方不改變文件的內(nèi)容。如果選擇ASCII格式,發(fā)送方將把文本從發(fā)送方的字符集轉(zhuǎn)換成標準的ASCII后發(fā)送數(shù)據(jù)。在接收方將標準的ASCII轉(zhuǎn)換成接收方計算機的字符集。示例:加密,ASCII等。

會話層

它定義了如何開始、控制和結(jié)束一個會話,包括對多個雙向消息的控制和管理,以便在只完成連續(xù)消息的一部分時可以通知應(yīng)用,從而使表示層看到的數(shù)據(jù)是連續(xù)的,在某些情況下,如果表示層收到了所有的數(shù)據(jù),則用數(shù)據(jù)代表表示層。示例:RPC,SQL等。

傳輸層

這層的功能包括是否選擇差錯恢復(fù)協(xié)議還是無差錯恢復(fù)協(xié)議,及在同一主機上對不同應(yīng)用的數(shù)據(jù)流的輸入進行復(fù)用,還包括對收到的順序不對的數(shù)據(jù)包的重新排序功能。示例:TCP,UDP,SPX。

網(wǎng)絡(luò)層

這層對端到端的包傳輸進行定義,它定義了能夠標識所有結(jié)點的邏輯地址,還定義了路由實現(xiàn)的方式和學習的方式。為了適應(yīng)最大傳輸單元長度小于包長度的傳輸介質(zhì),網(wǎng)絡(luò)層還定義了如何將一個包分解成更小的包的分段方法。示例:IP,IPX等。

數(shù)據(jù)鏈路層

它定義了在單個鏈路上如何傳輸數(shù)據(jù)。這些協(xié)議與被討論的各種介質(zhì)有關(guān)。示例:ATM,F(xiàn)DDI等。
數(shù)據(jù)鏈路層:是為了提供功能上和規(guī)程上的方法,以便建立、維護和釋放網(wǎng)絡(luò)實體間的數(shù)據(jù)鏈路 。
物理鏈路(物理線路):是由傳輸介質(zhì)與設(shè)備組成的。原始的物理傳輸線路是指沒有采用高層差錯控制的基本的物理傳輸介質(zhì)與設(shè)備。
數(shù)據(jù)鏈路(邏輯線路):在一條物理線路之上,通過一些規(guī)程或協(xié)議來控制這些數(shù)據(jù)的傳輸,以保證被傳輸數(shù)據(jù)的正確性。實現(xiàn)這些規(guī)程或協(xié)議的硬件和軟件加到物理線路,這樣就構(gòu)成了數(shù)據(jù)鏈路。從數(shù)據(jù)發(fā)送點到數(shù)據(jù)接收點(點到點 point to point)所經(jīng)過的傳輸途徑。
當采用復(fù)用技術(shù)時,一條物理鏈路上可以有多條數(shù)據(jù)鏈路。[1]

物理層

OSI的物理層規(guī)范是有關(guān)傳輸介質(zhì)的特性標準,這些規(guī)范通常也參考了其他組織制定的標準。連接頭、幀、幀的使用、電流、編碼及光調(diào)制等都屬于各種物理層規(guī)范中的內(nèi)容。物理層常用多個規(guī)范完成對所有細節(jié)的定義。示例:Rj45,802.3等。
工業(yè)應(yīng)用五層:

<前端>
應(yīng)用層5
傳輸層4  網(wǎng)卡端口
網(wǎng)絡(luò)層3  網(wǎng)卡IP 
鏈路層2  mac
物理層1
<底層>

應(yīng)用層協(xié)議:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS。
傳輸層協(xié)議:TCP協(xié)議(傳輸控制,數(shù)據(jù)流,數(shù)據(jù)必達無丟失,類似打電話)、UDP協(xié)議(無連接數(shù)據(jù)報,類似短信,數(shù)據(jù)前有udp頭就說明處理過了。源端口,目的端口,長度,檢驗和。交給網(wǎng)絡(luò)后再給個IP頭)。
網(wǎng)洛層協(xié)議:IP協(xié)議、ICMP協(xié)議、ARP協(xié)議(地址解析)、RARP協(xié)議(逆地址解析)、IGMP協(xié)議

路由器的主要工作就是為經(jīng)過路由器的每個數(shù)據(jù)包尋找一條最佳的傳輸路徑,并將該數(shù)據(jù)有效地傳送到目的站點。由此可見,選擇最佳路徑的策略即路由算法是路由器的關(guān)鍵所在。為了完成這項工作,在路由器中保存著各種傳輸路徑的相關(guān)數(shù)據(jù)——路由表(Routing Table),供路由選擇時使用,表中包含的信息決定了數(shù)據(jù)轉(zhuǎn)發(fā)的策略。

子網(wǎng)掩碼(subnet Mask)又叫網(wǎng)絡(luò)掩碼、地址掩碼、子網(wǎng)絡(luò)遮罩,它是一種用來指明一個IP地址的哪些位標識的是主機所在的子網(wǎng),以及哪些位標識的是主機的位掩碼。子網(wǎng)掩碼不能單獨存在,它必須結(jié)合IP地址一起使用。子網(wǎng)掩碼只有一個作用,就是將某個IP地址劃分成網(wǎng)絡(luò)地址和主機地址兩部分。
子網(wǎng)掩碼的設(shè)定必須遵循一定的規(guī)則。與IP地址相同,子網(wǎng)掩碼的長度也是32位,左邊是網(wǎng)絡(luò)位,用二進制數(shù)字“1”表示;右邊是主機位,用二進制數(shù)字“0”表示。附圖所示的就是IP地址為“192.168.1.1”和子網(wǎng)掩碼為“255.255.255.0”的二進制對照。其中,“1”有24個,代表與此相對應(yīng)的IP地址左邊24位是網(wǎng)絡(luò)號;“0”有8個,代表與此相對應(yīng)的IP地址右邊8位是主機號。這樣,子網(wǎng)掩碼就確定了一個IP地址的32位二進制數(shù)字中哪些是網(wǎng)絡(luò)號、哪些是主機號。這對于采用TCP/IP協(xié)議的網(wǎng)絡(luò)來說非常重要,只有通過子網(wǎng)掩碼,才能表明一臺主機所在的子網(wǎng)與其他子網(wǎng)的關(guān)系,使網(wǎng)絡(luò)正常工作。

網(wǎng)關(guān)(Gateway)就是一個網(wǎng)絡(luò)連接到另一個網(wǎng)絡(luò)的“關(guān)口”。 按照不同的分類標準,網(wǎng)關(guān)也有很多種。TCP/IP協(xié)議里的網(wǎng)關(guān)是最常用的,在這里我們所講的“網(wǎng)關(guān)”均指TCP/IP協(xié)議下的網(wǎng)關(guān)。那么網(wǎng)關(guān)到底是什么呢?網(wǎng)關(guān)實質(zhì)上是一個網(wǎng)絡(luò)通向其他網(wǎng)絡(luò)的IP地址。又叫協(xié)議轉(zhuǎn)換器,是一種復(fù)雜的網(wǎng)絡(luò)連接設(shè)備,可以支持不同協(xié)議之間的轉(zhuǎn)換,實現(xiàn)不同協(xié)議網(wǎng)絡(luò)之間的互連。網(wǎng)關(guān)具有對不兼容的高層協(xié)議進行轉(zhuǎn)換的能力,為了實現(xiàn)異構(gòu)設(shè)備之間的通信,網(wǎng)關(guān)需要對不同的鏈路層、專用會話層、表示層和應(yīng)用層協(xié)議進行翻譯和轉(zhuǎn)換。 網(wǎng)關(guān)是一個智能超群的路由器,一個智能超群的網(wǎng)橋,一個智能超群的中繼器。
若要使兩個完全不同的網(wǎng)絡(luò)(異構(gòu)網(wǎng))連接在一起,一般使用網(wǎng)關(guān),在Internet中兩個網(wǎng)絡(luò)也要通過一臺稱為網(wǎng)關(guān)的計算機實現(xiàn)互聯(lián)。這臺計算機能根據(jù)用戶通信目標計算機的IP地址,決定是否將用戶發(fā)出的信息送出本地網(wǎng)絡(luò),同時,它還將外界發(fā)送給屬于本地網(wǎng)絡(luò)計算機的信息接收過來,它是一個網(wǎng)絡(luò)與另一個網(wǎng)絡(luò)相聯(lián)的通道。為了使TCP/IP協(xié)議能夠?qū)ぶ?,該通道被賦予一個IP地址,這個IP地址稱為網(wǎng)關(guān)地址。也就是說,網(wǎng)關(guān)實質(zhì)上是一個網(wǎng)絡(luò)通向其他網(wǎng)絡(luò)的IP地址。
網(wǎng)關(guān)主要用于不同體系結(jié)構(gòu)的網(wǎng)絡(luò)或者局域網(wǎng)與主機系統(tǒng)的連接。在互連設(shè)備中,它最為復(fù)雜,一般只能進行一對一的轉(zhuǎn)換,或是少數(shù)幾種特定應(yīng)用協(xié)議的轉(zhuǎn)換。網(wǎng)關(guān)一般是一種軟件產(chǎn)品。目前,網(wǎng)關(guān)已成為網(wǎng)絡(luò)上每個用戶都能訪問大型主機的通用工具。

1. A類地址

⑴ A類地址第1字節(jié)為網(wǎng)絡(luò)地址,其它3個字節(jié)為主機地址。另外第1個字節(jié)的最高位固定為0。
⑵ A類地址范圍:1.0.0.1到126.155.255.254。
⑶ A類地址中的私有地址和保留地址:
①10.0.0.0到10.255.255.255是私有地址(所謂的私有地址就是在互聯(lián)網(wǎng)上不使用,而被用在局域網(wǎng)絡(luò)中的地址)。
② 127.0.0.0到127.255.255.255是保留地址,用做循環(huán)測試用的。

2. B類地址

⑴ B類地址第1字節(jié)和第2字節(jié)為網(wǎng)絡(luò)地址,其它2個字節(jié)為主機地址。另外第1個字節(jié)的前兩位固定為10。
⑵ B類地址范圍:128.0.0.1到191.255.255.254。
⑶ B類地址的私有地址和保留地址
① 172.16.0.0到172.31.255.255是私有地址
②169.254.0.0到169.254.255.255是保留地址。如果你的IP地址是自動獲取IP地址,而你在網(wǎng)絡(luò)上又沒有找到可用的DHCP服務(wù)器,這時你將會從169.254.0.0到169.254.255.255中臨得獲得一個IP地址。

3. C類地址

⑴C類地址第1字節(jié)、第2字節(jié)和第3個字節(jié)為網(wǎng)絡(luò)地址,第4個個字節(jié)為主機地址。另外第1個字節(jié)的前三位固定為110。
⑵ C類地址范圍:192.0.0.1到223.255.255.254。
⑶ C類地址中的私有地址:192.168.0.0到192.168.255.255是私有地址。

4. D類地址

⑴ D類地址不分網(wǎng)絡(luò)地址和主機地址,它的第1個字節(jié)的前四位固定為1110。
⑵ D類地址范圍:224.0.0.1到239.255.255.254

5. E類地址

⑴ E類地址也不分網(wǎng)絡(luò)地址和主機地址,它的第1個字節(jié)的前五位固定為11110。
⑵ E類地址范圍:240.0.0.1到255.255.255.254

A類地址默認子網(wǎng)掩碼為255.0.0.0
B類地址默認子網(wǎng)掩碼為255.255.0.0
C類地址默認子網(wǎng)掩碼為255.255.255.0

常用的子網(wǎng)掩碼子網(wǎng)掩碼有數(shù)百種,這里只介紹最常用的兩種子網(wǎng)掩碼,它們分別是“255.255.255.0”和“255.255.0.0”。

  1. 子網(wǎng)掩碼是“255.255.255.0”的網(wǎng)絡(luò):最后面一個數(shù)字可以在0~255范圍內(nèi)任意變化,因此可以提供256個IP地址。但是實際可用的IP地址數(shù)量是256-2,
    即254個,因為主機號不能全是“0”或全是“1”。
  2. 子網(wǎng)掩碼是“255.255.0.0”的網(wǎng)絡(luò):后面兩個數(shù)字可以在0~255范圍內(nèi)任意變化,可以提供2552個IP地址。但是實際可用的IP地址數(shù)量是2552-2,即65023個。

主機數(shù)=2^主機位數(shù)-2,因為主機號全為1時表示該網(wǎng)絡(luò)廣播地址,全為0時表示該網(wǎng)絡(luò)的網(wǎng)絡(luò)號,這是兩個特殊地址,注:這是二進制)

IP地址的子網(wǎng)掩碼設(shè)置不是任意的。如果將子網(wǎng)掩碼設(shè)置過大,也就是說子網(wǎng)范圍擴大,那么,根據(jù)子網(wǎng)尋徑規(guī)則,很可能發(fā)往和本地機不在同一子網(wǎng)內(nèi)的目的機的數(shù)據(jù),會因為錯誤的判斷而認為目的機是在同一子網(wǎng)內(nèi),那么,數(shù)據(jù)包將在本子網(wǎng)內(nèi)循環(huán),直到超時并拋棄,使數(shù)據(jù)不能正確到達目的機,導(dǎo)致網(wǎng)絡(luò)傳輸錯誤;如果將子網(wǎng)掩碼設(shè)置得過小,那么就會將本來屬于同一子網(wǎng)內(nèi)的機器之間的通信當做是跨子網(wǎng)傳輸,數(shù)據(jù)包都交給缺省網(wǎng)關(guān)處理,這樣勢必增加缺省網(wǎng)關(guān)的負擔,造成網(wǎng)絡(luò)效率下降。因此,子網(wǎng)掩碼應(yīng)該根據(jù)網(wǎng)絡(luò)的規(guī)模進行設(shè)置。
如果一個網(wǎng)絡(luò)的規(guī)模不超過254臺電腦,采用“255.255.255.0”作為子網(wǎng)掩碼就可以了,現(xiàn)在大多數(shù)局域網(wǎng)都不會超過這個數(shù)字,校園網(wǎng)可能有2000臺電腦左右,這種規(guī)模的局域網(wǎng)可以使用“255.255.0.0”。
局域網(wǎng)最常使用的IP地址 “192.168.x.x” 默認的子網(wǎng)掩碼是 “255.255.255.0” 。一般情況下,IP地址使用默認子網(wǎng)掩碼就可以了。

網(wǎng)段,用來區(qū)分網(wǎng)路上的主機是否在同一網(wǎng)路區(qū)段內(nèi),在局域網(wǎng)中,每臺電腦只能和自己同一網(wǎng)段的電腦互相通訊.Gateway的出廠IP地址是192.168.123.250,說明它處於192.168.123.X的網(wǎng)段(X代表1-255之間的任意值).若您的路由器的IP地址是192.168.1.X或是其他位址段,只說明二者不處於同一網(wǎng)段,則它們之間無法相互連接。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容