第一篇:子網(wǎng)掩碼中網(wǎng)絡(luò)層的教學(xué)研究探析論文
摘要:IP地址是網(wǎng)絡(luò)層設(shè)備識(shí)別的標(biāo)識(shí),每個(gè)結(jié)點(diǎn)都要靠其區(qū)分和聯(lián)系。如何識(shí)別IP地址以及對(duì)IP地址進(jìn)行合理的分配和管理,子網(wǎng)掩碼起到了至關(guān)重要的作用。本文通過對(duì)子網(wǎng)掩碼的講解實(shí)現(xiàn)對(duì)IP地址的有效利用,便于學(xué)生理解。
關(guān)鍵詞:IP地址;分配和管理;子網(wǎng)掩碼
1分類
IP地址Internet作為全球最大的網(wǎng)絡(luò),負(fù)責(zé)龐大的信息交互與網(wǎng)絡(luò)安全。在Internet上每一臺(tái)計(jì)算機(jī)都有自己的地址,保證相互之間能準(zhǔn)確無誤地發(fā)送、接收信息,這種地址被稱之為IP(InternetProtocol)地址。IP地址位于CPU和存儲(chǔ)器內(nèi),是由32位的二進(jìn)制所組成,為了提高可讀性,按字節(jié)即每八位插入一個(gè)點(diǎn),將對(duì)應(yīng)的八位都轉(zhuǎn)換成相應(yīng)的十進(jìn)制,這種記法稱為點(diǎn)分十進(jìn)制記法,如192.168.0.20。IP地址包括網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)兩個(gè)部分,網(wǎng)絡(luò)號(hào)在前表示該IP地址是屬于Internet中具體哪一個(gè)網(wǎng)絡(luò)范圍;主機(jī)號(hào)在后表示特定的網(wǎng)絡(luò)中具體的某臺(tái)計(jì)算機(jī)的標(biāo)識(shí)。根據(jù)網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)所占的位數(shù)不同對(duì)IP地址進(jìn)行了劃分,A類、B類、C類、D類、E類,D類廣播地址,E類保留地址,在這里著重介紹前面的三類IP地址。A類地址中網(wǎng)絡(luò)號(hào)占8位二進(jìn)制,且最高位是0,網(wǎng)絡(luò)號(hào)字段全0對(duì)應(yīng)的IP地址是指本網(wǎng)絡(luò),網(wǎng)絡(luò)號(hào)127的作為環(huán)回測(cè)試主機(jī)進(jìn)程間通信,所以能分配的網(wǎng)絡(luò)地址數(shù)有27-2=126個(gè)。剩余的24位二進(jìn)制留給主機(jī)號(hào),主機(jī)號(hào)全0對(duì)應(yīng)的IP地址是該主機(jī)所在的網(wǎng)絡(luò)地址,主機(jī)號(hào)全1是該網(wǎng)絡(luò)的廣播地址,這兩個(gè)IP地址不能分配給主機(jī),所以一個(gè)A類網(wǎng)絡(luò)中能容納的主機(jī)數(shù)為224-2個(gè)。B類地址中網(wǎng)絡(luò)號(hào)占16位二進(jìn)制,且前面兩位固定為10,網(wǎng)絡(luò)地址128.0.0.0不指派除外[2],B類網(wǎng)絡(luò)地址數(shù)有214-1個(gè)。主機(jī)號(hào)16位,一個(gè)B類網(wǎng)絡(luò)中能容納的主機(jī)數(shù)為216-2個(gè)。C類地址中網(wǎng)絡(luò)號(hào)占24位二進(jìn)制,且前面兩位固定為110,網(wǎng)絡(luò)地址192.0.1.0不指派除外,C類網(wǎng)絡(luò)地址數(shù)有221-1個(gè)。主機(jī)號(hào)8位,一個(gè)C類網(wǎng)絡(luò)中能容納的主機(jī)數(shù)為28-2=254個(gè)。根據(jù)這三類IP地址的特點(diǎn),可以很快地判斷出一個(gè)IP地址屬于哪一類,IP地址中第一個(gè)字節(jié)對(duì)應(yīng)的十進(jìn)制是1~126,則為A類地址;128~191則為B類地址;192~223則為C類地址。
2子網(wǎng)掩碼
子網(wǎng)掩碼用來區(qū)分IP地址中的網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)位數(shù),其格式與IP地址類似,也是由32位二進(jìn)制組成,以點(diǎn)分十進(jìn)制記入,區(qū)別在于是由連續(xù)的1和連續(xù)的0組成,且1在前0在后。子網(wǎng)掩碼中某位為1,對(duì)應(yīng)于IP地址相應(yīng)位置是網(wǎng)絡(luò)號(hào);某位為0,對(duì)應(yīng)是主機(jī)號(hào)。所以默認(rèn)的A類地址子網(wǎng)掩碼是255.0.0.0,B類是255.255.0.0,C類是255.255.255.0。
3子網(wǎng)掩碼舉例
舉例1:已知IP地址是135.10.54.30,子網(wǎng)掩碼是255.255.192.0。試求網(wǎng)絡(luò)地址、廣播地址以及該網(wǎng)絡(luò)IP范圍。①網(wǎng)絡(luò)地址=IP地址&子網(wǎng)掩碼,網(wǎng)絡(luò)地址的求解②根據(jù)子網(wǎng)掩碼可知,網(wǎng)絡(luò)地址后14位是主機(jī)號(hào),將其全為1,得到的即是廣播地址:135.10.63.255③網(wǎng)絡(luò)地址和廣播地址之間的IP地址即是分配給主機(jī)的IP范圍:135.10.0.0~135.10.63.255。兩層的IP地址容易造成用戶不能有效地利用網(wǎng)絡(luò)資源,針對(duì)這一問題,提出了劃分子網(wǎng)來解決。所謂的子網(wǎng)就是在分類IP地址的基礎(chǔ)上再細(xì)分出若干個(gè)小的網(wǎng)段,達(dá)到擴(kuò)大網(wǎng)絡(luò)數(shù)量的效果[3]。劃分子網(wǎng)的做法:將IP地址中原本是主機(jī)號(hào)位數(shù)的部分劃出一些位數(shù)用作子網(wǎng),剩余的主機(jī)號(hào)則是相應(yīng)子網(wǎng)的主機(jī)地址。劃分子網(wǎng)后,網(wǎng)絡(luò)的數(shù)量增多了,而每一個(gè)網(wǎng)絡(luò)內(nèi)容納的主機(jī)數(shù)則相應(yīng)的減少了。根據(jù)設(shè)計(jì)需求中子網(wǎng)的主機(jī)數(shù)確定需要多少主機(jī)號(hào),然后再確定需要多少子網(wǎng)號(hào);其次定義一個(gè)符合網(wǎng)絡(luò)要求的子網(wǎng)掩碼,確定每個(gè)子網(wǎng)的網(wǎng)絡(luò)地址;最后確定每個(gè)子網(wǎng)內(nèi)的主機(jī)IP地址范圍。舉例2:某單位申請(qǐng)到一個(gè)網(wǎng)絡(luò)地址:192.168.3.0/24,要求劃分5個(gè)子網(wǎng),每個(gè)子網(wǎng)的主機(jī)數(shù)不少于25臺(tái),求每個(gè)子網(wǎng)的IP地址范圍。C類地址,默認(rèn)的網(wǎng)絡(luò)號(hào)24位,主機(jī)號(hào)8位,所以子網(wǎng)的劃分是8位主機(jī)號(hào)部分。①由主機(jī)數(shù)≥25,主機(jī)號(hào)位數(shù)≥5,25-2≥25②子網(wǎng)數(shù)=5,子網(wǎng)號(hào)的位數(shù)≥3,23-2≥5③子網(wǎng)號(hào)+主機(jī)號(hào)=8,所以主機(jī)號(hào)位數(shù)=5,子網(wǎng)號(hào)位數(shù)=3④原來的網(wǎng)絡(luò)號(hào)+子網(wǎng)號(hào)=27,所以新的子網(wǎng)對(duì)應(yīng)的子網(wǎng)掩碼為:255.255.255.224。子網(wǎng)號(hào)3位,變化范圍:001~110⑤以001為例求該子網(wǎng)內(nèi)的IP地址,通式:192.168.3.001XXXXX(X為0或1),除去主機(jī)號(hào)全0和全1IP地址的最小值:192.168.3.00100001(即192.168.3.33)IP地址的最大值:192.168.3.00111110(即192.168.3.62)
4結(jié)語
通過對(duì)子網(wǎng)掩碼的學(xué)習(xí),學(xué)生能夠?qū)P地址的理解更為深刻,使用子網(wǎng)掩碼可以判別一個(gè)IP地址是否進(jìn)行了子網(wǎng)劃分,從而得到該網(wǎng)絡(luò)可以容納的主機(jī)數(shù),方便對(duì)網(wǎng)絡(luò)進(jìn)行管理和分配。
參考文獻(xiàn):
[1]謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].北京:電子工業(yè)出版社,2013.
[2]王興寶.網(wǎng)絡(luò)管理與維護(hù).北京:機(jī)械工業(yè)出版社,2001.
[3]張光勇.校園網(wǎng)IP地址管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].科技創(chuàng)新導(dǎo)報(bào),2007.
第二篇:網(wǎng)絡(luò)原理實(shí)驗(yàn)報(bào)告網(wǎng)絡(luò)層
蘇州科技學(xué)院
電子信息實(shí)驗(yàn)中心
實(shí)驗(yàn)報(bào)告
課
程 學(xué)
號(hào) 姓
名 班
級(jí) 專
業(yè) 指導(dǎo)教師 學(xué)年 / 學(xué)期
計(jì)算機(jī)網(wǎng)絡(luò)原理 *** 閆自立 軟件1311 計(jì)算機(jī)科學(xué)與技術(shù)
陶滔
2015~2016學(xué)年第1學(xué)期
實(shí)驗(yàn)三
網(wǎng)絡(luò)層實(shí)驗(yàn)
實(shí)驗(yàn)項(xiàng)目性質(zhì):設(shè)計(jì)性
計(jì)劃學(xué)時(shí):4 實(shí)
驗(yàn) 環(huán) 境:Microsoft Visual Studio 2010
實(shí)驗(yàn)日期:2015年12月2日
一、實(shí)驗(yàn)?zāi)康?/p>
1.理解通信子網(wǎng)的完整概念,掌握網(wǎng)絡(luò)層的作用和功能。2.掌握分組數(shù)據(jù)包格式設(shè)計(jì)方法、分組的分片與重裝的方法。3.掌握網(wǎng)絡(luò)層簡(jiǎn)單路由選擇協(xié)議的實(shí)現(xiàn)方法。
二、實(shí)驗(yàn)內(nèi)容
在已經(jīng)實(shí)現(xiàn)的數(shù)據(jù)鏈路層基礎(chǔ)上:
(1)設(shè)計(jì)簡(jiǎn)易實(shí)用的分組數(shù)據(jù)包格式;
(2)設(shè)計(jì)并實(shí)現(xiàn)類IP的網(wǎng)絡(luò)層協(xié)議,路由選擇采用靜態(tài)路選擇協(xié)議。(3)設(shè)計(jì)并實(shí)現(xiàn)分組的分片與重裝。
(4)設(shè)計(jì)一個(gè)應(yīng)用程序,利用網(wǎng)絡(luò)層的功能直接將文件傳輸?shù)侥繕?biāo)主機(jī)的接收窗口中。(5)編寫路由配置route_tab.cfg及本機(jī)主機(jī)地址local.cfg文件,以便與遠(yuǎn)地的其他計(jì)算機(jī)進(jìn)行通信。
三、實(shí)驗(yàn)(設(shè)計(jì))儀器設(shè)備和材料清單
計(jì)算機(jī)一臺(tái),串行電纜一根。
四、實(shí)驗(yàn)指導(dǎo)
本實(shí)驗(yàn)采用靜態(tài)路由選擇算法,每個(gè)結(jié)點(diǎn)上通過配置文件route_tab.cfg確定路由選擇的結(jié)果,該文件的格式可設(shè)計(jì)如下:
主機(jī)地址
端口號(hào)
注釋
555
#主機(jī)地址555的轉(zhuǎn)發(fā)端口號(hào)為COM1
556
558
888
*
#默認(rèn)路由
其中,端口號(hào)指PC的COM1(對(duì)應(yīng)端口號(hào)1)或COM2(對(duì)應(yīng)端口號(hào)2)等。同時(shí)為簡(jiǎn)化設(shè)計(jì),去掉流量控制和擁塞控制,數(shù)據(jù)包的格式參考IP數(shù)據(jù)包格式,但盡可能簡(jiǎn)化。分組及其他數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
網(wǎng)絡(luò)層的分組設(shè)計(jì)一方面要考慮到路由選擇的實(shí)現(xiàn),即分組中應(yīng)含有路由尋址所必要的信息,另一方面要考慮到分組太大時(shí)的分片與重裝,主機(jī)地址用4位數(shù)字字符表示。設(shè)計(jì)的分組格式如下。
(1)分組(“數(shù)據(jù)報(bào)”)的首部
typedef struct{ //定義數(shù)據(jù)報(bào)首部格式
unsigned char
vers_hlen;
//高4位是版本, 低4 位是首部長(zhǎng)度
unsigned char
type;
//類型(保留)
unsigned short
Dlen;
//數(shù)據(jù)報(bào)數(shù)據(jù)部分長(zhǎng)度
unsigned short ident;
//數(shù)據(jù)報(bào)標(biāo)識(shí)
unsigned short frag;
//分片標(biāo)識(shí),1-分片,0-不分片 unsigned short offset;
//數(shù)據(jù)報(bào)分片偏移量
unsigned char
TTL;
//生存期
unsigned char
prot[3];
//保留
unsigned short checksum;
//校驗(yàn)和
IPhost source;
//源主機(jī)地址
IPhost dest;
//目標(biāo)主機(jī)地址
} TIPheader;typedef struct { unsigned char cAddr[4];}IPhost;(2)數(shù)據(jù)報(bào)格式
typedef struct { unsigned char cData[MTU];} Msg;typedef struct{
//定義數(shù)據(jù)報(bào)格式
TIPheader
IpHdr;
//分組首部
Msg
Info;
//分組信息部分 } TPacket;(3)分片與重裝的結(jié)構(gòu)
typedef struct fid{
//用于識(shí)別同一IP 分組的各分片結(jié)構(gòu),用于組裝分組
IPhost
source;
//源主機(jī)地址
IPhost
dest;
//目標(biāo)主機(jī)地址
unsigned short
ident;
//IP分組標(biāo)識(shí)
long int iLength;
//已接收到的數(shù)據(jù)長(zhǎng)度
unsigned short iCount;//已接收到的分組數(shù) }FragId;typedef struct fragif{
//包含一個(gè)分片的結(jié)構(gòu)
unsigned char frgData[MTU];//分片的數(shù)據(jù)部分
unsigned short iMsgLength;
//當(dāng)前分片數(shù)據(jù)部分的長(zhǎng)度 unsigned short frag;
//分片標(biāo)識(shí),1-分片,0-不分片
unsigned short offset;
//分片在數(shù)據(jù)報(bào)中的偏移量
struct fragif *next;
//下一個(gè)分片 }FragInfo;(4)路由表結(jié)構(gòu)
typedef struct { //定義路由表
unsigned char cHostAddr[4];//主機(jī)地址 char cPort;
//轉(zhuǎn)發(fā)端口
char cComment[30];
//注釋 } TRouteItem;2 分片與重裝
在一個(gè)異構(gòu)的網(wǎng)絡(luò)的集合中,提供統(tǒng)一的主機(jī)到主機(jī)服務(wù)模型需要面對(duì)的問題之一是每種網(wǎng)絡(luò)技術(shù)都試圖自己定義分組的大小。例如,以太網(wǎng)能接收的長(zhǎng)度最多為1500字節(jié)的分組,而FDDI能夠接收的分組長(zhǎng)度可達(dá)到4500字節(jié)。因此網(wǎng)絡(luò)層要確保所有的分組足夠小,使得其適合任何網(wǎng)絡(luò)技術(shù)的分組;或者當(dāng)分組對(duì)某一網(wǎng)絡(luò)技術(shù)來說太大時(shí),提供一種方法將分組拆分和重組。后一種方法是一種理想的選擇,TCP/IP中的IP數(shù)據(jù)報(bào)傳輸就采用了后一種技術(shù)。
這樣每一種網(wǎng)絡(luò)類型有一個(gè)最大傳輸單元(Maximum Transmission Unit,MTU),這是一幀中所能攜帶的最大數(shù)據(jù)報(bào),而這個(gè)值應(yīng)比網(wǎng)絡(luò)上的最大分組要小。
五、結(jié)果分析(可根據(jù)需要附加頁(yè))
六、主要源代碼(可根據(jù)需要附加頁(yè))#pragma hdrstop #include
#include “..includeNllEntity.h” #include “..includeFtpClass.h” //-------------#pragma package(smart_init)//---------void TNLLNetEntity::readroute(){
#define MAXITEMS 100
// 路由表最大表項(xiàng)數(shù)
#define MAXLINE 81
// 路由表文件最大行長(zhǎng)度
char fileName[]=“.route_tab.cfg”;
if(fst.fail())return;fst.getline(line,MAXLINE);while(!fst.fail()&&!fst.eof())// 當(dāng)文件有內(nèi)容時(shí) {
} iRouteEntries=i;if(iRouteEntries){
routeTab=new TRouteItem[iRouteEntries];for(i=0;i