文档库 最新最全的文档下载
当前位置:文档库 › TCPIP第三层--网络层

TCPIP第三层--网络层

TCPIP第三层--网络层
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 是一个可靠的协议,而

就没有那么可靠的区别。这是后话,暂且不提 1.1.IP 协议头 度都是可变长的,但总是 4 字节的整数倍。

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

4 位首部长度:该数值是以 4 字节为单位的,最小值

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

首部长度最大是 60 字节。

8 位 TOS 字段: 8 位 TOS 字段有 3 个位用来指定 IP 处理机制--这被认为是上层协议--

TCP 或 UDP 要做的

UDP 数据格式如图所示: IP 数据报的首部长度和数据长

数据报的优先级(目前已经废弃不用),还有4 个位表示可选的服务类型(最小延迟、最大呑吐量、最大可靠性、最小

成本),还有一个位总是0。总长度是整个数据报(包括IP

首部和IP 层payload )的字节数。每传一个IP 数据报,

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

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

TTL(Time to live)是这样用的:源主机为数据包设定个生存时间,比如64 ,每过一个路由器就把该值减1,如

果减到0 就表示路由已经太长了仍然找不到目的主机的网络,

就丢弃该包,因此这个生存时间的单位不是秒,而是跳

(hop )。

这个字段的最大值也就是255 ,也就是说一个协议包也就在路由器里面穿行255 次就会被抛弃了,根据系统的不同,这

个数字也不一样,一般是32 或者是64 ,Tracerouter 这个工值是255,也就是因为这个TTL在IP协议里面只有8bit。

具就是用这个原理工作的,tranceroute 的-m 选项要求最大协议字段指示上层协议是TCP 、UDP 、ICMP 还是

IGMP 。然后是校验和,只校验IP 首部,数据的校验由更高层协议负责。IPv4 的IP 地址长度为32 位。1.2.IP 路由选择当一个IP 数据包准备好了的时候,IP 数据包(或者说是路由器)是如何将数据包送到目的地的呢?它是怎么选择一个合适的路径来"送货" 的呢?

最特殊的情况是目的主机和主机直连,那么主机根本不用寻 找路由,直接把数据传递过去就可以了。至于是怎么直接传 递的,这就要靠 ARP 协议了,后面会讲到。

稍微一般一点的情况是, 主机通过若干个路由器 (router) 和目 的主机连接。那么路由器就要通过 ip 包的信息来为 ip 包寻 找到一个合适的目标来进行传递,比如合适的主机,或者合 适的路由。路由器或者主机将会用如下的方式来处理某一个

IP 数据包

如果 IP 数据包的 TTL (生命周期)以到,则该 被抛弃。搜索路由表,优先搜索匹配主机,如果能找到和 地址完全一致的目标主机,则将该包发向目标主机搜索路由 表,如果匹配主机失败, 则匹配同子网的路由器, 这需要“子 网掩码 (1.3.) ”的协助。如果找到路由器,则将该包发向路由 器。搜索路由表,如果匹配同子网路由器失败,则匹配同网 号(第一章有讲解)路由器,如果找到路由器,则将该包发 向路由器。搜索陆游表,如果以上都失败了,就搜索默认路 由,如果默认路由存在,则发包如果都失败了,就丢掉这个 包。

IP 数据包就 IP

这再一次证明了, ip 包是不可靠的。因为它不保证送达

1.3.子网寻址

IP 地址的定义是网络号 +主机号。但是现在所有的主机都要

求子网编址, 也就是说, 把主机号在细分成子网号 +主机号。 最终一个 IP 地址就成为 网络号码 +子网号 +主机号。 例如

个 B 类地址: 210.30.109.134 。 的红色部分就是网络号,而蓝色部分就是子网号,绿色部分 就是主机号。至于有多少位代表子网号这个问题上,这没有

个硬性的规定,取而代之的则是子网掩码,校园网相信大

为0,所以主机号就是IP 地址的后八个bit ,就是134,而 剩下的就是子网号码-- 109。2. ARP 协议

还记得数据链路层的以太网的协议中,每一个数据包

般情况下,这个 IP 地址 多数人都用过,在校园网的设定里面有一个

255.255.255.0 的东西,这就是子网掩码。子网掩码是由

32bit 的二进制数 字序列 ,形式为是一连串的 1 和一连串的

0,例如: 255.255.255.0( 二进制就是

11111111.11111111.11111111.00000000)

对于刚才的那 个 B 类地址,因为 210.30 是网络 号, 那么后面的 109.134 就是子网号和主机号的组合,又因为子网掩码只有后八 bit

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

个MAC 地址的?这就是ARP 协议的工作。

在网络通讯时,源主机的应用程序知道目的主机的IP

地址和端口号,却不知道目的主机的硬件地址,而数据包首

先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得目的主机的硬件地址。ARP 协议就起到这个作用。

工作原理:

1)每台主机都维护一个ARP 缓存表,当源主机要发送

个IP 包的时候,会首先查一下自己的ARP 高速缓存(就

是一个IP-MAC 地址对应表缓存)。

2)如果查询的IP-MAC 值对不存在,那么源主机就向

网络发送一个ARP 协议广播包,这个广播包里面就有待查

询的IP地址,比如询问“I地址是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) at 24:1f:a0:c0:f7:bc [ether] on em1 (192.168.1.1) at 3c:8c:40:99:24:05 [ether] on em1 (192.168.1.137) at 3c:15:c2:ee:a8:b2 [ether] on em1

相关文档