第一篇:网络层(IP层)知识总结
网络层
1.网络层提供的两种服务
虚电路(VC):面向链接的,由网络确保提供可靠的服务。借鉴与电信网络。两个计算机通信前先建立链接。
数据报服务:网络层向上只提供简单灵活的,无连接的,尽最大努力交付数据报服务。网络层不提供服务质量承诺。
依据:计算机比电话机智能,有很强的差错处理能力。由于传输网络不提供端到端的可靠服务,因此路由器可以设计的简单,价格低廉。
2.网际协议IP 网际协议IP是TCP/IP体系中最主要的协议之一。IP协议配套使用的有: 地址解析协议ARP(Address Resolution Protocol) 逆地址解析协议RARP(Reverse Address Resolution Protocol) 网际控制报文协议ICMP(Internet Control Message Protocol) 网际组织管理协议IGMP(Internet Group Management Protocol)ICMP和IGMP使用IP协议 IP协议使用ARP和RARP协议
IP协议实现网络互连,使参与互连的性能各异的网络从用户看起来好像是一个统一的网络
3.什么是虚拟互联网络(逻辑互联网络)互连起来的物理网络的异构性本来是客观存在的,但利用IP协议可以使这些性能各异的网络在网络层看起来好像是一个统一的网络。
网络的异构性:由于用户需求不同,网络技术发展,导致网络体系中存在不同性能,不同网络协议的网络。(那么如何使这种存在差别的网络连接到一起,感觉像是一种网络没有障碍的通信——>使用相同的网际协议IP,构成一个虚拟互联的网络。比如我们通信的过程中,有段网络使用了卫星链路,有的使用了无限局域网,但是IP协议可以使信息在这些网络传输)。
用来连接异构网络的设备:路由器。
4.将网络互连起来要使用一些中间设备,根据中间设备所在层次不同分为:
(1)物理层使用的中间设备转发器(repeater)(2)数据链路层使用的中间设备网桥或桥接器(bridge)(3)网络层使用的中间设备路由器(router)(4)网络层以上使用的中间设备网关(gateway)
转发器和网桥只是把网路扩大(因此,由转发器和网桥连接起来的若干个局域网仍属于一个网路,只能有一个网路号(主机号不同))路由器实现网络互连(路由器的每一个接口都有不同的网络号IP地址)5.IP地址和物理地址
物理地址:数据链路层和物理层使用的地址
IP地址:网络层和以上各层使用的地址,是一种逻辑地址(因为IP使用软件实现的)1.IP地址放在IP数据报首部,硬件地址则放在MAC帧首部
2.在局域网中,只能看见MAC帧。MAC帧在不同的网络上传送时,其MAC帧首部的源地址和目的地址是要发生变化的。
3.在IP层抽象的互联网上只能看到IP数据报。4.IP地址有32位,局域网的硬件地址是48位
6.物理地址与IP地址的匹配<——>ARP与RARP(由物理地址怎样找到对应的IP地址/由IP地址怎样找到对应的物理地址)由于DHCP已经包含RARP现在很少单独使用RARP ARP:在主机ARP高速缓冲中存放一个由IP地址到硬件地址的映射表,并且这个表还动态更新(新增和超时删除)。映射表中存放本局域网各主机和路由器IP地址到硬件地址的映射表。
同一局域网中,ARP解决IP地址到硬件地址映射问题:
当主机A向本局域网内某主机B发送IP报,先在自己的ARP高速缓冲中查看有无主机B的IP地址。如果有,根据IP地址找到对应的硬件地址,将硬件地址写入MAC帧中,然后把该MAC帧发往此硬件地址。
当B刚入网,或A刚开机ARP高速缓冲中是空的,则A自动运行ARP,找出B的硬件地址。
1)ARP进程在本局域网广播发送一个ARP请求分组,主要内容是“我的IP地址是209.0.0.5,硬件地址是00-00-C0-15-AD-18,我想知道IP地址为209.0.0.6主机的硬件地址”。
2)本局域网所有主机都收到此分组,但是只有目的IP会写入自己的硬件地址,以普通的单播ARP响应分组响应。同时,B也会把A的IP地址与硬件地址写入自己的ARP高速缓冲中。
3)A收到后,将B的IP和硬件地址写入ARP高速缓冲中。
不同局域网中,ARP解决IP地址到硬件地址映射问题:
A无法直接找到远程主机B的硬件地址。A首先将A所在局域网的路由器IP解析为硬件地址,将IP数据报传送到路由器。路由器从转发表中找到下一跳路由,同时用ARP解析出下一跳路由的硬件地址…直至最后。ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。为什么这样说?当主机A要与另一个网络主机B通信时,首先A是通过ARP找到路由器R1,这是一次ARP的使用,即在A和R1的局域网中使用,由R1找B或与B相连的路由器R2,是在R1和B或R1和R2的局域网中使用的ARP,这是又一次使用ARP,所以说ARP是解决同一个局域网上的IP地址和硬件地址的映射问题。
7.ARP高速缓冲每一个映射项目都设置了生存时间。超过生存时间的项目就删除掉。B的网络适配器(网卡)坏掉等都会造成B的硬件地址变化。8.既然在网络链路上传递的帧最终是按照硬件地址找到目的主机的,那么为什么不直接使用硬件地址进行通信,而是使用抽象的IP地址并调用ARP来寻找相应的硬件地址?(IP地址的意义)
因为全世界存在各种各样的网络,使用不同的硬件地址。要使这些异构的网络能够相互通信需要非常复杂的硬件地址转换工作,这由用户主机来完成几乎是不可能的,有了统一的IP地址,通信就像连在一个网络上,并且ARP工作过程是由软件自动完成的。
9.网际控制报文协议ICMP
为了更有效地转发IP数据报和提高交付成功机会,使用ICMP(Intetnet Control Message Protocol),ICMP不是高层协议,而是IP层协议。
ICMP分为两种:ICMP差错报告报文和 ICMP询问报文
ICMP询问报文请求报文的应用ping应用层直接使用网络层ICMP的一个例子,没有通过TCP或UDP ICMP差错报告报文时间超时的应用traceroute IP数据报中包含不可交付的UDP
10.路由选择协议(核心:路由算法):使用何种方式获得路由表中各项目
由算法能否随网络的通信量或拓扑自适应进行调整分为
静态路由选择策略:非自适应路由选择,简单,开销小,不能适应网络变化,适合简单小网络
动态路由选择策略:自适应、复杂,开销大,能适应网络变化
因特网采用的路由选择协议:自适应(动态的)、分布式路由选择协议
11.自治系统(AS):单一技术管理下的一组路由器
即一个自治系统内使用的是相同的路由选择策略。由路由选择协议是在自治系统内使用还是系统外使用分为:内部网关协议和外部网关协议。(由历史原因称为网关协议其实是路由器协议)
内部网关协议(IGP):RIP和OSPF(力求最佳路由)
外部网关协议(EGP):BGP-4(力求较好路由,不兜圈)
12.路由信息协议RIP(Routing Information Protocol)RIP协议让一个自治系统内所有路由器(交换信息时只和相邻路由器交换)都和自己相邻的路由器定期交换信息,并不断更新其路由表,使得每一个路由器到每一个目的网络的路由器都是最短的。
基于距离向量路由选择协议最大特点简单 缺点:限制网络规模,最大距离为15 每次交换完整路由表,随网络扩大,开销增大
“坏消息传的慢”
跳数:即到目的网络的距离(与路由器直接相连的网络距离为1,RIP允许一条路径最多包含15个路由器,因此跳数为16表示不可达)
RIP协议特点(与哪些路由器交换信息,交换什么信息,什么时候交换)
1)仅与相邻路由器交换信息
2)交换信息为当前本路由器所知道的全部信息。包括,我到本自治系统所有网络的距离,到每个网络的下一跳路由(只知道下一跳路由,不知道整个网络拓扑结构)3)按固定时间交换:30秒
距离向量算法:
首先,对每一个相邻路由器发送RIP报文(使用了UDP,即RIP报文+UDP首部+IP首部构成IP数据报),报文包括“目的网络N,距离d,下一跳路由是R”
然后,接受到的路由器进行分析: 1)对地址为X的路由器发来的报文,先将所有报文的下一跳路由改为X,并将所有距离+1。(对于本网络来说,如果准备按X发来的报文项目通信目的网络,则须经过X,即下一跳路由为X,而与目的网络的距离为X到目的网络的距离+1)。2)对修改后的报文,与自己原路由表对比:
a.原路由表中,没有此目的网络N,直接添加
b.原路由表有目的网络N,比较下一跳路由地址,若原来下一跳路由地址也是X,直接更新(网络状态可能发生变化,因此以此次新信息为准)c.若下一跳地址不是X,则比较距离d,以小的为准 d.否则什么也不做
3)若3分钟没有收到相邻路由器的更新路由表,则把此相邻路由器距离标为16(不可达)4)返回
一个RIP报文最多包括25个路由,RIP报文最大长度4(首部)+25*20(一个路由器信息20字节)= 504字节
13.开放最短路径优先OSPF(Open Shortest Path First)最主要特征:使用分布式链路状态协议
OSPF协议特点(与RIP比较)1)向本自治系统所有路由器发送信息,但是使用洪泛法发送,路由器向所有相邻的路由器发送信息,而每一个相邻路由器也会把此信息发送给其相邻的路由器(不发给刚刚发来信息的路由器),这样,整个系统都能收到。(RIP只给相邻发送)2)发送信息:相邻所有路由器链路状态。包括本路由器和哪些路由器相邻,以及该链路的“度量”(费用,距离,时延,带宽),可以知道整个网络拓扑。(RIP只发送到所有网络距离和下一跳路由)
3)只有链路状态发生变化,才以洪泛法再次发送信息。(RIP定期)
OSPF将自治系统划分为更小范围,区域。OSPF只在自己区域交换信息,而不再是整个自治系统。减少整个网络上通信量,此时只知道本区域网络拓扑。
OSPF报文直接使用IP数据报(OSPF+IP首部)
OSPF五种分组类型
1)类型1,问候分组,确定邻站可达性(10秒交换一次)2)类型2,数据库描述分组,向邻站发送自己的链路状态数据库摘要信息 3)类型3,链路状态请求分组,向对方请求发送某些链路状态详细信息 4)类型4,链路状态更新分组,用洪泛法全网更新链路状态协议核心部分 5)类型5,链路状态确认,对更新的确认
14.外部网关协议——BGP(边界网管协议)BGP是不同AS的路由器之间交换路由信息的协议
不同的AS为什么不能使用内部网关协议:
1)英特网规模太大,使得AS之间路由选择非常困难。主干网已超过5万路由前缀,使用链路状态数据库(OSPF方法),用Dijkstra计算花费时间也很长。不同的AS中,度量的量度也不一样,不能通用。
2)AS之间的路由选择协议必须考虑相关策略。不同的网络性能差距较大,根据最短路径找出的路径,可能并不是最快的(在同一个AS中,网络相差不大,最短路径基本实现最快速度)。并且AS间路由选择也应考虑到政治,安全和经济,允许使用多种路由选择策略,如我国国内传送数据,尽量不要经过其他国家,尤其是可能造成威胁的国家。
BGP只是力求寻找一条能够到达目的网络比较好的路由,而非一条最佳采用路径向量路由选择协议
BGP发言人:每一个AS至少选择一个作为本AS的BGP Speaker,一般是边界路由器,该路由器代表整个AS与其他AS交换信息。一个BGP Speaker与其他AS的BGP Speaker交换路由信息,首先建立TCP连接(端口号179),然后交换报文建立会话,使用TCP为了提供可靠的服务。相邻的两个Speaker成为邻站会对等站。
每一个Speaker除了运行BGP,还要运行RIP或OSPF
BGP的路由表(与RIP相似)包含
目的网络前缀下一跳路由到达目的网络所要经过AS序列(RIP是跳数)BGP在路由反生变化时更新路由表有变化的部分 BGP4种报文(TCP报文)1)OPEN(打开)报文,与邻站建立关系,通信初始化
2)UPDATE(更新)报文,通告某一路由的信息,更新路由信息核心内容
每个报文只能宣布增加1个新路由,但可以宣布撤销多个。
3)KEEPALIVE(保活)报文,周期性保持与邻站的连同 4)NOTIFICATION(通知)报文,发送检测差错
两个邻站属于不同AS,交换信息前先建立链接(某个路由器可能因为负荷过高而不愿通信),先发送OPEN,建立连接,发送KEEPALIVE(30秒一个,防止开销过大,只用BGP的首部19字节),保持连接,在用UPDATE更新信息。
15.路由器的结构
路由器:一种具有多个输入端口和多个输出端口的专用计算机,其任务就是转发分组(转发分组正是网络层的主要工作)
路由器结构可划分两大部分:路由选择+
分组转发
路由选择:控制部分,核心部件为路由选择处理机任务是根据所选定的路由选择协议构造出路由表,并不断维护路由表。
分组转发:三部分交换结构、一组输入端口和一组输出端口(此处为硬件端口,与运输层端口不同)
交换结构的作用就是根据转发表对分组进行处理,将某个输入端进入的分组从一个合适的端口转发出去,交换结构本身就是一种网络。
交换的方式:通过存储器、通过总线、通过互联网络
16.IP多播
单播(一对一)
多播(也称组播,实现一对多,但是是对选择好的多个用户播送)
广播(一对多,无法选择特定用户,对所有用户都播送,DHCP获取IP使用了广播,ARP寻找目的主机硬件地址也使用了广播)
多播可以节约网络资源,能够运行多播协议的路由器称为多播路由器 多播组的标识符就是IP地址中的D类地址(与广播的差异)。前四位1110 D类地址的范围
224.0.0.0——239.255.255.255,共可标识228个多播组 多播数据报与一般数据报的区别使用D类地址作为目的地址,并且首部协议字段值为2,表明使用IGMP协议(多播地址只用用于目的地址,不能用于源地址,对多播不产生ICMP差错报文,PING多播地址,不会受到响应)
17.IP多播的种类
a)只在本局域网上进行硬件多播,b)在因特网范围内进行多播
在硬件多播中,以太网多播地址范围01-00-5E-00-00-00到01-00-5E-7F-FF-FF只由低23位用于多播,与IPD类地址低23位对映,因此多播IP地址与以太网硬件地址的映射不是唯一的。当主机收到多播数据,还要在IP层利用软件进行过滤,把不是本机接受的数据丢弃。
IP多播需要两种协议:IGMP(网际组管理协议)和多播路由选择协议
IGMP是让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出可某个多播组。IGMP使用IP数据报传送报文。
IGMP工作阶段:
1)有主机新加入多播组,向多播组地址发送IGMP报文。
2)本地多播路由器周期性检测本地局域网是否有主机处于多播组。多播数据报的发送者和接受者都不知道一个多播组有多少成员
只有IGMP协议,无法把多播数据报以最小代价传送给组成员,此时需要多播路由选择协议。
多播路由选择协议的特点:
1)多播转发必须动态适应组成员变化。只要有成员增加或退出及应更新,而普通的单播路由选择协议只在网络拓扑发生变化时才更新。2)多播路由转发协议转发数据报不仅仅要考虑目的地址。3)多播数据报的发送者可以使组成员,也可以不是。多播路由选择协议转发数据报使用的方法
1)洪泛法与减除(最小生成树,最短路径),适于较小多播组
2)隧道技术,对于多播组位置地理上分散情况使用,远距离传送在数据报外 再加普通数据报首部单播。
3)核心发现技术。多播组在较大的范围内变化也适用。
18.19.VPN(虚拟专用网)与NAT(网络地址转换)由于IP地址短缺,一个机构能申请到的IP地址小于本机构主机数,而且也不是所有主机都需连如因特网。但是这些主机还需要内部通信,从原则上讲,内部通信的主机可以由本机构自行分配IP地址(本地地址),但如果自行分配的地址与因特网上实际分配的有冲突,出现地址二义性问题。
因此,可以指明一些专用地址,这些地址只能机构内部通信,因特网上所有路由器,对目的地址是专用地址的数据报不转发。
全世界有很多专用互联网络具有相同IP地址,但这些地址只在本地内部使用,不会引起麻烦,专用IP地址也叫可重用地址。
对于很大的机构相距比较远,可以利用公用的因特网作为本机构专用网之间的通信载体,这样的专用网成为虚拟专用网VPN(相比但购买一条通信线路作为专用简单,节省)
VPN不同网点之间通过互联网通信,所以对这些数据加密,需要专门软硬件。VPN通信:每个网点至少有一个路由器有合法IP地址,这样一个内部主机向另一个主机通信时,开始使用专用地址,到达这个路由器时转换为合法到的IP(将原数据报加密,变为内部数据报,在外面再加一层数据报首部),到达另一个网点,由其路由器将合法IP转换为这个网点的本地IP。
NAT:解决VPN上多个主机想同时访问互联网。
在专用网链接因特网的路由器上安装NAT软件,这样的路由器叫做NAT路由器。一个NAT路由器至少有1个合法IP地址。这样有n个合法地址的NAT路由器即可满足n个主机同时访问互联网(转换地址)。
NAPT,将IP地址与端口号一起转换,这样当本地地址中通信具有两个相同端口号时,可以转换为同一个合法的IP,但是端口号不同。这样两个主机可以使用同一个合法的IP
20.IP数据报格式
1)版本(4位):目前是v4,以后可能IPv6
2)首部长度(4位):可表示十进制15,但是这个字段单位是32位(4字节),即当首部长度为15时,表示此首部长度为15*4字节最常用的首部20字节(0101)。数据部分总是从4字节整数倍开始。固定首部最大值是希望用户节省开销,缺点,容易不够用。
3)区分服务(8位):一般不使用
4)总长度(16位):字段单位字节,即数据报最大长度为216-1=65535字节。
由于数据链路层都有自己的最大传输单元MTU,所以IP数据报封装链路层帧时,数据报最大长度不能超过MTU。一般IP数据报长度不长于1500字节,但为了效率,所有主机和路由器处理的IP报不小于576(512+60?)字节。当IP报长度超过MTU,就需要分片,这时首部总长度字段指的是分片后总长度。
5)标识(16位):每产生一个IP报,标识加1。为了分片后区分到底哪几个片在以后组装时成为一个。(IP报是无连接的,接收也不存在顺序,所以此标识不是为了标识接受顺序)
6)标志(3位):只有两个有意义
MF: =1表示此分片后还有分片,=0表示此分片后无分片 DF:此报不能分片。DF=0允许分片
7)片偏移(13位):分片后,此片相对原片位移。此字段单位8字节,所以片偏移以8字节为单位。也就是说每个分片一定是8字节整数倍。
8)生存时间(8位):TTL,9)协议(8位):使目的主机知道此报上交给谁
10)首部检验和(16位):
11)源地址(32位)
12)目的地址(32位)
21.关于IP首部检验和
IP/ICMP/IGMP/TCP/UDP 等协议检验和算法一样,但IP只检验首部,TCP/UDP会检验首部+数据。
检验方式:二进制反码求和(若最高位产生进位,则进位和结果相加)此处以UDP首部检验和为例(考虑数据部分)
16~1列每列1的个数 2 4 1 3 5 4 4 5 0 4 2 4 7 7 7 9 1)首先是第1列9个1相加得1001(9),低位1保留,其余三位分别向上进位,即0向第二列进位,0向第3列进位,1向第4列进位。
2)然后是第2列7个1和第1列进位的0相加,为7(0111),同理低位1保留,其余三位向上进位。
3)第3列7个1和第1列进位0,第2列进位1相加得8(1000),低位0保留,高位进位 ……
4)最后第15列结果为0110,16列结果为0011,两个进位1的和(10)会与结果相加 5)计算结果为10010110 11101011与15、16列进位和10相加结果为10010110 11101101 然后求反码。
22.23.
第二篇:计算机网络网络层实验报告参考
XX 理 工 学 院
实验报告
课程 计算机网络 题目 基于Cisco Packet Tracer的网络层实验
院系名称 计算机学院 班 级 计科班 学生姓名
学 号
指导教师 时 间 2016.11.14
实验二:网络层协议实验
实验说明:
1.实验中的问题按照自己的方式回答,如文字,图片,表格等形式。2.实验报告共四份,于期末通知时再统一打包上交。
3.报告文档模板中如有错误,请反映到计算机网络QQ群上。
实验内容目录:
实验2.1: IP分析
实验2.2: IP地址分配实验 实验2.3: ARP分析 实验2.4: ICMP分析 实验2.5: 路由协议分析
实验2.6: VPN与NAT协议分析
实验2.1:IP分析
实验目的:
1、熟悉IP的报文格式以及关机字段的含义。
2、掌握IP地址的分配方法。
3、理解路由器转发IP数据报的流程。
实验思考题:
1.一个IP分组经路由器转发后,有哪些字段会发生变化?
答:TTL字段需要减一,而IP头部的校验和需要重新计算,因此这两个字段会发生变化。
2.为什么任务三中的两个分片的长度分别为1500字节和48字节。
答:原数据长度为1500+8(ICMP报文头长度)=1508字节,超过以太网帧的最大传输能力,因此需要分成两片。长度分别为1480字节和28字节,封装成IP后,每片的长度分别为1480+20=1500字节,28+20=48字节。实验2.2:IP地址分配实验
实验目的:
1.掌握主机和路由器的IP地址配置。2.熟悉CIDR的IP地址编址方法。3.理解CIDR的路由聚合功能。
实验思考题:
1.与分类的IP编址方法相比,CIDR编址方案具有什么优点?
答:1)CIDR的地址分配更高效,因为CIDR采用可变长掩码,能根据网络的实际大小量身定制主机地址空间。2)CIDR具有路由聚合功能,能减少路由器的路由表项。
2.路由器的不同接口能否使用相同的网络号?
答:不能,路由器的不同接口必须使用不同的网络号。实验2.3:ARP分析
实验目的:
1.掌握基本的ARP命令。
2.熟悉ARP报文格式和数据封装方式。3.理解ARP的工作原理。
实验思考题:
1.任务一完成后,哪些PC的ARP缓存拥有PC0的MAC地址记录?哪些PC新添加了PC1 的MAC地址记录?
答:任务一完成后,PC1和PC2拥有PC0和MAC地址记录,PC0添加了PC1和PC2的MAC地址记录。
2.ARP缓存的作用是什么?缓存中记录的保存时间是否越长越好?请解释理由。
答:ARP缓存可以提高工作效率,避免主机重复进行地址查询询问。缓存时间不是越长越好,因为网络可能经常有设备动态加入或撤出,并且更换设备的网卡或IP地址也会引起主机地址映射发生变化,如果缓存时间过长会造成数据更新过慢,造成地址解析错误。
3.主机使用ARP能查询到其他网络的MAC地址吗?为什么?
答:不能。因为ARP广播询问包会被路由器阻拦。
4.在任务二的步骤3中,ARP被执行了几次?
答:共执行两次,第一次是PC0查找路由器Fa0/0的MAC地址,第二次是路由器查找PC4的MAC地址。实验2.4:ICMP分析
实验目的:
1.熟悉ICMP报文格式和数据单元的封装方式。
2.利用ping程序和tracert命令,熟悉ICMP的工作原理。3.进一步理解ICMP的作用。
实验思考题:
1.在tracert命令中,为什么源主机对于每个TTL值都要重复进行多次探测?
答:由于IP网络是不可靠的,通过多次重复探测可以避免因个别丢包而造成检测失败。
2.ICMP是否会给Internet带来安全隐患?
答:ICMP是网络层控制协议,不仅可以对网络层设备进行各种探寻,也可能更改主机配置,功能强大,但从另一面讲,这也是一个网络安全隐患,例如死亡Smurf攻击就利用ICMP进行网络攻击,因此许多操作系统的防火墙都拒绝ICMP包访问本机。实验2.5:路由协议分析
实验目的:
1.理解网络路由,学习静态路由配置能力。2.理解RIR动态路由协议的工作原理。3.理解OSPF动态路由协议的工作原理。
实验思考题
1.如果路由器转发数据报的目标不在路由表中,则会如何处理?
答:如果有默认路由,则按默认端口转发,否则丢弃处理。
2.在任务二的步骤2中,环路造成的循环转发过程会不会停止?原因是什么?
答:当被转发的IP包的TTL字段被降到0时,该循环发的工程将停止。
3.在任务三的步骤3中,Router3几次更新才能获得网络10.1.1.0的路由信息?
答:需要两个周期。
4.RIP和OSPF协议分别采用哪种通信协议?请解释理由。
答:RIP报文知识在临近节点进行传输,因此采用低开销的UDP来传输,而OSPF报文需要在网络进行泛洪传输,因此使用IP。实验2.6:VPN与NAT协议分析
实验目的:
1.理解VPN使用的IP隧道技术的工作原理。2.理解NAT技术的工作原理。
实验思考题: 1.在任务一中,Router1如何区分Server0返回给不同主机的HTTP报文。
答:NAT服务器(Router1)通过不同的端口号来识别不同的主机的报文。
2.在任务二中,VPN中采用隧道技术的原因是什么?
答:由于Net1和Net2都是使用私有地址,因此无法直接通过Internet进行通信:采用隧道技术可以方便地将源目地址转换为全局地址,而且到达目标路由器后,也很容易获得真正目标主机的IP地址。
3.Net1网络和Net2网络的IP地址能否编在同一段?
答:不行,这样容易造成两个网段间主机的IP地址发生冲突。
第三篇:网络原理实验报告网络层
苏州科技学院
电子信息实验中心
实验报告
课
程 学
号 姓
名 班
级 专
业 指导教师 学年 / 学期
计算机网络原理 *** 闫自立 软件1311 计算机科学与技术
陶滔
2015~2016学年第1学期
实验三
网络层实验
实验项目性质:设计性
计划学时:4 实
验 环 境:Microsoft Visual Studio 2010
实验日期:2015年12月2日
一、实验目的
1.理解通信子网的完整概念,掌握网络层的作用和功能。2.掌握分组数据包格式设计方法、分组的分片与重装的方法。3.掌握网络层简单路由选择协议的实现方法。
二、实验内容
在已经实现的数据链路层基础上:
(1)设计简易实用的分组数据包格式;
(2)设计并实现类IP的网络层协议,路由选择采用静态路选择协议。(3)设计并实现分组的分片与重装。
(4)设计一个应用程序,利用网络层的功能直接将文件传输到目标主机的接收窗口中。(5)编写路由配置route_tab.cfg及本机主机地址local.cfg文件,以便与远地的其他计算机进行通信。
三、实验(设计)仪器设备和材料清单
计算机一台,串行电缆一根。
四、实验指导
本实验采用静态路由选择算法,每个结点上通过配置文件route_tab.cfg确定路由选择的结果,该文件的格式可设计如下:
主机地址
端口号
注释
555
#主机地址555的转发端口号为COM1
556
558
888
*
#默认路由
其中,端口号指PC的COM1(对应端口号1)或COM2(对应端口号2)等。同时为简化设计,去掉流量控制和拥塞控制,数据包的格式参考IP数据包格式,但尽可能简化。分组及其他数据结构设计
网络层的分组设计一方面要考虑到路由选择的实现,即分组中应含有路由寻址所必要的信息,另一方面要考虑到分组太大时的分片与重装,主机地址用4位数字字符表示。设计的分组格式如下。
(1)分组(“数据报”)的首部
typedef struct{ //定义数据报首部格式
unsigned char
vers_hlen;
//高4位是版本, 低4 位是首部长度
unsigned char
type;
//类型(保留)
unsigned short
Dlen;
//数据报数据部分长度
unsigned short ident;
//数据报标识
unsigned short frag;
//分片标识,1-分片,0-不分片 unsigned short offset;
//数据报分片偏移量
unsigned char
TTL;
//生存期
unsigned char
prot[3];
//保留
unsigned short checksum;
//校验和
IPhost source;
//源主机地址
IPhost dest;
//目标主机地址
} TIPheader;typedef struct { unsigned char cAddr[4];}IPhost;(2)数据报格式
typedef struct { unsigned char cData[MTU];} Msg;typedef struct{
//定义数据报格式
TIPheader
IpHdr;
//分组首部
Msg
Info;
//分组信息部分 } TPacket;(3)分片与重装的结构
typedef struct fid{
//用于识别同一IP 分组的各分片结构,用于组装分组
IPhost
source;
//源主机地址
IPhost
dest;
//目标主机地址
unsigned short
ident;
//IP分组标识
long int iLength;
//已接收到的数据长度
unsigned short iCount;//已接收到的分组数 }FragId;typedef struct fragif{
//包含一个分片的结构
unsigned char frgData[MTU];//分片的数据部分
unsigned short iMsgLength;
//当前分片数据部分的长度 unsigned short frag;
//分片标识,1-分片,0-不分片
unsigned short offset;
//分片在数据报中的偏移量
struct fragif *next;
//下一个分片 }FragInfo;(4)路由表结构
typedef struct { //定义路由表
unsigned char cHostAddr[4];//主机地址 char cPort;
//转发端口
char cComment[30];
//注释 } TRouteItem;2 分片与重装
在一个异构的网络的集合中,提供统一的主机到主机服务模型需要面对的问题之一是每种网络技术都试图自己定义分组的大小。例如,以太网能接收的长度最多为1500字节的分组,而FDDI能够接收的分组长度可达到4500字节。因此网络层要确保所有的分组足够小,使得其适合任何网络技术的分组;或者当分组对某一网络技术来说太大时,提供一种方法将分组拆分和重组。后一种方法是一种理想的选择,TCP/IP中的IP数据报传输就采用了后一种技术。
这样每一种网络类型有一个最大传输单元(Maximum Transmission Unit,MTU),这是一帧中所能携带的最大数据报,而这个值应比网络上的最大分组要小。
五、结果分析(可根据需要附加页)
六、主要源代码(可根据需要附加页)#pragma hdrstop #include
#include “..includeNllEntity.h” #include “..includeFtpClass.h” //-------------#pragma package(smart_init)//---------void TNLLNetEntity::readroute(){
#define MAXITEMS 100
// 路由表最大表项数
#define MAXLINE 81
// 路由表文件最大行长度
char fileName[]=“.route_tab.cfg”;
if(fst.fail())return;fst.getline(line,MAXLINE);while(!fst.fail()&&!fst.eof())// 当文件有内容时 {
} iRouteEntries=i;if(iRouteEntries){
routeTab=new TRouteItem[iRouteEntries];for(i=0;i