TCPIP第三层网络层.docx

上传人:b****8 文档编号:10506318 上传时间:2023-02-17 格式:DOCX 页数:6 大小:18.65KB
下载 相关 举报
TCPIP第三层网络层.docx_第1页
第1页 / 共6页
TCPIP第三层网络层.docx_第2页
第2页 / 共6页
TCPIP第三层网络层.docx_第3页
第3页 / 共6页
TCPIP第三层网络层.docx_第4页
第4页 / 共6页
TCPIP第三层网络层.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

TCPIP第三层网络层.docx

《TCPIP第三层网络层.docx》由会员分享,可在线阅读,更多相关《TCPIP第三层网络层.docx(6页珍藏版)》请在冰豆网上搜索。

TCPIP第三层网络层.docx

TCPIP第三层网络层

TCPIP第三层--网络层

1.功能目的1)主要功能:

负责点到点(point-to-point)的传输(这里的“点”指主机或路由器)

网络层是为传输层提供服务的,传送的协议数据单元称为数据包或分组。

该层的主要作用是解决如何使数据包通过各结点传送的问题,即通过路径选择算法(路由)将数据包送到目的地。

另外,为避免通信子网中出现过多的数据包而造成网络阻塞,需要对流入的数据包数量进行控制(拥塞控制)。

当数据包要跨越多个通信子网才能到达目的地时,还要解决网际互连的问题。

2)网络地址:

网络层地址由两部分地址组成:

网络地址和主机地址。

网络地址是全局唯一的。

3)路由寻址:

1.通过路由选择算法为分组通过通信子网选择最佳路么.

2.实现路由选择,拥塞控制以及网络互联等.2.网络层协议网络层的主要协议:

IP,ARP、RARP

ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息。

数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据信息。

1.IP协议

IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输。

要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制--这被认为是上层协议--TCP或UDP要做的事情。

所以这也就出现了TCP是一个可靠的协议,而UDP就没有那么可靠的区别。

这是后话,暂且不提1.1.IP协议头

数据格式如图所示:

IP数据报的首部长度和数据长度都是可变长的,但总是4字节的整数倍。

4位版本字段:

对于IPv4,4位版本字段是4。

4位首部长度:

该数值是以4字节为单位的,最小值为5,也就是说首部长度最小是4x5=20字节,也就是不带任何选项的IP首部,4位能表示的最大值是15,也就是说首部长度最大是60字节。

8位TOS字段:

8位TOS字段有3个位用来指定IP数据报的优先级(目前已经废弃不用),还有4个位表示可选的服务类型(最小延迟、最大呑吐量、最大可靠性、最小成本),还有一个位总是0。

总长度是整个数据报(包括IP首部和IP层payload)的字节数。

每传一个IP数据报,

16位的标识加1,可用于分片和重新组装数据报。

3位标志和13位片偏移用于分片。

TTL(Timetolive)是这样用的:

源主机为数据包设定一个生存时间,比如64,每过一个路由器就把该值减1,如果减到0就表示路由已经太长了仍然找不到目的主机的网络,就丢弃该包,因此这个生存时间的单位不是秒,而是跳(hop)。

这个字段的最大值也就是255,也就是说一个协议包也就在路由器里面穿行255次就会被抛弃了,根据系统的不同,这个数字也不一样,一般是32或者是64,Tracerouter这个工具就是用这个原理工作的,tranceroute的-m选项要求最大值是255,也就是因为这个TTL在IP协议里面只有8bit。

协议字段指示上层协议是TCP、UDP、ICMP还是IGMP。

然后是校验和,只校验IP首部,数据的校验由更高层协议负责。

IPv4的IP地址长度为32位。

1.2.IP路由选择

当一个IP数据包准备好了的时候,IP数据包(或者说是路由器)是如何将数据包送到目的地的呢?

它是怎么选择一个合适的路径来"送货"的呢?

最特殊的情况是目的主机和主机直连,那么主机根本不用寻找路由,直接把数据传递过去就可以了。

至于是怎么直接传递的,这就要靠ARP协议了,后面会讲到。

稍微一般一点的情况是,主机通过若干个路由器(router)和目的主机连接。

那么路由器就要通过ip包的信息来为ip包寻找到一个合适的目标来进行传递,比如合适的主机,或者合适的路由。

路由器或者主机将会用如下的方式来处理某一个IP数据包

如果IP数据包的TTL(生命周期)以到,则该IP数据包就被抛弃。

搜索路由表,优先搜索匹配主机,如果能找到和IP地址完全一致的目标主机,则将该包发向目标主机搜索路由表,如果匹配主机失败,则匹配同子网的路由器,这需要“子网掩码(1.3.)”的协助。

如果找到路由器,则将该包发向路由器。

搜索路由表,如果匹配同子网路由器失败,则匹配同网号(第一章有讲解)路由器,如果找到路由器,则将该包发向路由器。

搜索陆游表,如果以上都失败了,就搜索默认路由,如果默认路由存在,则发包如果都失败了,就丢掉这个包。

这再一次证明了,ip包是不可靠的。

因为它不保证送达。

1.3.子网寻址

IP地址的定义是网络号+主机号。

但是现在所有的主机都要求子网编址,也就是说,把主机号在细分成子网号+主机号。

最终一个IP地址就成为网络号码+子网号+主机号。

例如一个B类地址:

210.30.109.134。

一般情况下,这个IP地址的红色部分就是网络号,而蓝色部分就是子网号,绿色部分就是主机号。

至于有多少位代表子网号这个问题上,这没有一个硬性的规定,取而代之的则是子网掩码,校园网相信大多数人都用过,在校园网的设定里面有一个255.255.255.0的东西,这就是子网掩码。

子网掩码是由32bit的二进制数字序列,形式为是一连串的1和一连串的0,例如:

255.255.255.0(二进制就是11111111.11111111.11111111.00000000)对于刚才的那个B类地址,因为210.30是网络号,那么后面的109.134就是子网号和主机号的组合,又因为子网掩码只有后八bit为0,所以主机号就是IP地址的后八个bit,就是134,而剩下的就是子网号码--109。

2.ARP协议

还记得数据链路层的以太网的协议中,每一个数据包都有一个MAC地址头么?

我们知道每一块以太网卡都有一个MAC地址,这个地址是唯一的,那么IP包是如何知道这个MAC地址的?

这就是ARP协议的工作。

 

在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。

因此在通讯前必须获得目的主机的硬件地址。

ARP协议就起到这个作用。

 

工作原理:

1)每台主机都维护一个ARP缓存表,当源主机要发送一个IP包的时候,会首先查一下自己的ARP高速缓存(就是一个IP-MAC地址对应表缓存)。

2)如果查询的IP-MAC值对不存在,那么源主机就向网络发送一个ARP协议广播包,这个广播包里面就有待查询的IP地址,比如询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:

FF:

FF:

FF:

FF:

FF表示广播)。

3)直接收到这份广播的包的所有主机都会查询自己的IP地址,如果收到广播包的某一个主机发现IP地址与本机相符,那么就准备好一个包含自己的MAC地址的ARP包传送给发送ARP广播的源主机,而广播源主机拿到ARP包后会更新自己的ARP缓存(就是存放IP-MAC对应表的地方)。

4)发送广播的主机就会用新的ARP缓存数据准备好数据链路层的的数据包发送工作。

每台主机都维护一个ARP缓存表,可以用arp-a命令查看。

 

[dev@writedb~]$arp-a

(192.168.1.145)at24:

1f:

a0:

c0:

f7:

bc[ether]onem1

(192.168.1.1)at3c:

8c:

40:

99:

24:

05[ether]onem1

(192.168.1.137)at3c:

15:

c2:

ee:

a8:

b2[ether]onem1

(192.168.1.122)at28:

b2:

bd:

4f:

1e:

ba[ether]onem1

缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址。

想一想,为什么表项要有过期时间而不是一直有效?

ARP数据报的格式如下所示:

注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。

硬件类型指链路层网络类型,1为以太网,协议类型指要转换的地址类型,0x0800为IP地址,后面两个地址长度对于以太网地址和IP地址分别为6和4(字节),op字段为1表示ARP请求,op字段为2表示ARP应答。

3.IP地址与路由

 

IPv4的IP地址长度为4字节,通常采用点分十进制表示法(dotteddecimalrepresentation)例如0xc0a80002表示为192.168.0.2。

Internet被各种路由器和网关设备分隔成很多网段,为了标识不同的网段,需要把32位的IP地址划分成网络号和主机号两部分,网络号相同的各主机位于同一网段,相互间可以直接通信,网络号不同的主机之间通信则需要通过路由器转发。

过去曾经提出一种划分网络号和主机号的方案,把所有IP地址分为五类,如下图所示:

A类0.0.0.0到127.255.255.255

B类128.0.0.0到191.255.255.255

C类192.0.0.0到223.255.255.255

D类224.0.0.0到239.255.255.255

E类240.0.0.0到247.255.255.255

一个A类网络可容纳的地址数量最大,一个B类网络的地址数量是65536,一个C类网络的地址数量是256。

D类地址用作多播地址,E类地址保留未用。

随着Internet的飞速发展,这种划分方案的局限性很快显现出来,大多数组织都申请B类网络地址,导致B类地址很快就分配完了,而A类却浪费了大量地址。

这种方式对网络的划分是flat的而不是层级结构(hierarchical)的,Internet上的每个路由器都必须掌握所有网络的信息,随着大量C类网络的出现,路由器需要检索的路由表越来越庞大,负担越来越重。

针对这种情况提出了新的划分方案,称为CIDR(ClasslessInterdomainRouting)。

网络号和主机号的划分需要用一个额外的子网掩码(subnetmask)来表示,而不能由IP地址本身的数值决定,也就是说,网络号和主机号的划分与这个IP地址是A类、B类还是C类无关,因此称为Classless的。

这样,多个子网就可以汇总(summarize)成一个Internet上的网络,例如,有8个站点都申请了C类网络,本来网络号是24位的,但是这8个站点通过同一个ISP(Internet

serviceprovider)连到Internet上,它们网络号的高21位是相同的,只有低三位不同,这8个站点就可以汇总,在Internet上只需要一个路由表项,数据包通过Internet上的路由器到达ISP,然后在ISP这边再通过次级的路由器选路到某个站点。

下面举两个例子:

划分子网的例子1IP地址

140.252.20.68

8CFC1444

 

子网掩码

255.255.255.0

FFFFFF00

 

网络号

140.252.20.0

8CFC1400

 

子网地址范围

140.252.20.0~140.252.20.255

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1