网络之网络层与IP协议

一、网络层

1.作用

负责地址管理和路由选择,广域网的通信。路由器工作在网络层。

2.基本概念

主机:配有IP地址,但是不进行路由控制的设备。

路由器:既配有IP地址,又能进行路由控制。

节点:主机和路由器的统称。

IP地址=网络号+主机号,因此IP地址分为网络地址和主机地址。

IP提供了一种将数据从A主机跨网络传输到B主机的能力。能力是指有较大概率,并不能说明一定可以到达B主机。有TCP协议确保数据传输的可靠性。

IP地址是总的起点(主机A的IP地址)和终点(主机B的IP地址)。而MAC地址是上一站从哪来,下一站到哪去。

如:贫僧自东土大唐而来,去往西天拜佛取经。IP地址为:东土大唐和西天

贫僧上一站从女儿国来,去往西天拜佛取经。MAC地址为:女儿国。西天仍为IP地址。

路由:以IP地址所在的局域网为目的地,因此所有的路由按网络号路由。

二、IP协议

1.IP的报文

2、IP的分片和组装

说到分片,先介绍两个概念:

MTU(Maxinum Transmission Unit),最大传输单元。是对发数据时的限制,这个限制是不同的数据链路对应的物理层产生的限制。以太网帧(数据链路层)中的数据长度规定最小46字节,最大1500字节。这个1500字节就是以太网的MTU。不同的网络类型有不同的MTU。一旦超过这个最大值,就要进行IP分片。

MSS(Maxinum Segment Size),最大报文段长度。MSS选项用于在TCP连接建立时,双方协商通信时每个报文段所能承载的最大数据长度。TCP的选项类型2即为MSS选项。与MTU的关系为:MTU=MSS+TCP报头的长度+IP报头的长度。如果TCP和IP报头都是标准长度时,MSS=1460字节。

在网络层传输数据时,发现长度大于MSS,就会进行分片。分片每一片的最大长度是1460字节。一旦分片,那么每一片的16位标识相同,属于同一批的数据。3位标志位中的第二位置0,第三位除最后一片外,其余的片均设置为0,最后一个分片置为1. 13位片偏移,是分片相当于原始IP报文开始处的偏移。实际偏移的字节数是这个值乘以8得到的。因此,对每一片,13位片偏移=实际偏移的字节数/8.

在对片的组装时,先通过16位标识,把这部分相同的所有片找出来,说明这些是同一批数据。然后片偏移为0的是第一片,根据片偏移+报文总长度=下一片的片偏移和实际的偏移数=13位片偏移*8,依次对这些片进行排序。可以根据3位标志位中最后一位是1确定最后一片。

分片的好坏?好处就是可以发送长度较大(超过MSS)的数据。坏处就是由于一批数据被分为了多片,因此增大了丢包率。

如何避免分片?控制发送的数据长度不超过MSS(最大报文段长度)。

三、网段划分

1、一些概念

网络号:保证相互连接的两个网段具有不同的标识。

主机号:同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号。

但是,两个网络中可以有两个相同的主机号。

不同的子网其实就是把网络号相同的主机放到一起。如果在子网中新增加一台主机,那么这台主机的网络号和这个子网的网络号一致,但是主机号必须不能和其它的主机重复。

2、为什么要进行网段划分?

有效利用和规划IP,便于提高效率。

安全考虑,便于管理。

减少广播域。

3.DHCP技术

DUCP技术能够自动地给子网内新增主机节点分配IP地址,避免了手动管理IP的不便。一般的路由器都带有DHCP功能。因此路由器也可以看作一个DHCP服务器。

特殊的IP地址:

将IP地址中的主机地址全部设置为0,就成为了网络号,代表这个局域网。
将IP地址中的主机地址全部设为1,就成为了广播地址,用于给一个局域网中的所有主机发送数据包。
127.*的IP用于本机环回(loop back)测试,通常是127.0.0.1

因此,主机数=2的主机号位数次方-2.

DHCP技术的弊端:大多数组织都申请B类网络地址,导致B类地址很快就分配完了,而A类却浪费了大量地址(因为现实生活

中,不可能在一个局域网中有2^24-2台主机)。为了解决这个问题,引入了CIRD技术。

4、CIRD技术

引入一个额外的子网掩码,来区分网络号和主机号。

子网掩码也是一个32位的正整数,以一串“0”结尾,前面全“1"。

将子网掩码和IP地址进行“按位与”操作,得到的结果就是网络号。

网络号和主机号的划分与这个IP地址是A类、B类还是C类无关。

如:

IP地址:140.252.20.68

子网掩码:255.255.255.0

二者进行按位与,得到网络号为:140.252.20.0   子网地址范围为:140.252.20.0~140.252.20.255  主机数=2^8-2=254台。

又如:

IP地址:140.252.20.68

子网掩码:255.255.255.240

二者进行按位与,得到网络号为:140.252.20.64  

由于子网掩码为255.255.255.240=1...1(28个1)0000  因此子网地址最多有15个,子网范围为:140.252.20.64~140.252.20.79  主机数=2^4-2=14台。

CIRD技术的优点:提高了IP地址的利用率,减少了IP地址的浪费。

5、IP地址的数量限制

IPv4:32位(点分十进制)    IPv6:128位     MAC:48位(16进制表示)

因此,一共有2^32个IP地址,大约是43亿左右。TCP/IP协议规定,每个主机都要有一个IP地址。

实际上,由于一些特殊的IP地址的存在,数量远不及43亿;另外IP地址并非是按照主机台数来配置的,而是每个网卡都需要配置一个或多个IP地址。

CIRD在一定程度上解决了IP地址不足的问题,但是IP地址的绝对上限并没有增加,仍不够用。此时有三种方法解决:

1)动态分配IP地址:只给接入的网络分配IP地址。因此,同一个MAC地址的设备,每次接入互联网,每次分配的IP地址可能是不同的。

2)NAT技术(后面介绍)

3)IPv6:并不是IPv4的简单升级版。它们是互不相同的两个协议,彼此并不兼容。目前,IPv6技术还没有普及。

四、私有IP地址和公网IP地址

私有IP地址有:

10.*  前8位是网络号,共有16,777,216个地址。
172.16~172.31  前12位是网络号,共1,048,576个地址
192.168.*  前16位是网络号,共65536个地址,在该范围内的,都成为私有IP,其余的则称为全局IP(或全局IP)。

一个路由器都可以配置两个IP地址,一个是WAN口IP(对外),一个是LAN口IP(对内,子网IP)。

路由器LAN口连接的主机,都从属于这个路由器的子网中。

不同的路由器,子网IP一般都是一样的(通常都是192.168.1.1)。子网内的主机IP不能重复,但是不同子网的IP可以重复。

每个家用路由器,其实又作为运营商路由器的子网中的一个节点,这样的运营商路由器可能有很多级,最外层的运营商路由器,WAN口IP就是一个公网IP。

子网内的主机和外网进行通信时,路由器先将IP首部中的IP地址进行逐级替换(替换成LAN口IP),最终数据包中的IP地址替换为一个公网IP。这种技术称为NAT(Network Address Translation,网络地址转换)。

五、路由

1.介绍:

含义:路由是指分组从源到目的地时,决定端到端路径的网络范围的进程。

特点:高效简单

原理算法:确定最佳路径

2.路由的过程

路由的过程,就是”一跳一跳“问路的过程。每一跳,都选择离目的地最优的路径。具体在以太网中指从源MAC地址到目的MAC地址之间的帧传输区间。具体过程:

1)当IP数据包到达路由器时,路由器会先查看目的IP,然后和自己的路由表对照。对照的结果有三种:a.不知道怎么走,交给默认路由;b.路由器知道目标网络,发送给下一个路由器;c.已到达目标网络,接下来寻找目标主机。

2)根据路由结果,决定这个数据包时直接发送给目标主机,还是需要发送给下一个路由器。

3)依次反复,直到到达目的IP地址。

3.路由表

每个路由器都有路由表。路由表的格式举例为:

Destination    Geteway    Genmask    Flags    Metric    Ref
Use Iface
192.168.10.0     *    255.255.2555.0   U         0        0
0 eth0
192.168.56.0     *    255.255.255.0    U         0        0
0 eth1
127.0.0.1        *    255.0.0.0        U         0        0
0 lo
default      192.168.10.1  0.0.0.0     UG        0        0
0 eth0
说明:
Destination指目的网络地址
Gateway指下一跳的地址
Genmask指子网掩码
Flags中的U标志表示此条目有效,G标志表示此条目的下一跳地址是某个路由器的地址,没有G标志的条目表示目的网络是与本机接口直接相连的网络,不必经由路由器转发。
路由表中的最后一行主要由下一跳地址和发送接口两部分组成,当目的地址和路由表中其它行都不匹配时,就按缺省路由条目规定的接口发送到下一跳地址。

当路由器拿到数据报时,解压到网络层,先提取报文的目的IP,然后将目的IP地址和条目中的子网掩码进行按位与,得到目标网络。然后将目标网络和路由表中的Destination逐个进行对比,如果有,则发送;没有,则发送到默认路由中。

4、路由表生成算法

路由表可以由网络管理员手动维护(静态路由),也可以通过一些算法自动生成(动态路由)。生成算法有距离向量算法、LS算法、Dijkstra算法等。这里不再进行描述。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值