一、网络层
网络中每一台主机和路由器都是网络层的部分,网络层协议是协议栈中最复杂但却最有趣的一部分。
链路层比作各种交通轨道,它可以把世界各地的交通连接起来并传输,但是它并没有规定始发地和目的地, 而网络层就相当于你的车票,车票上有始发地和目的地,把车票交给链路层,它就知道你的需求,就把你运输到相应的目的地,而具体通过什么交通工具(采用什么链路层协议),网络层是不关心的,只要你能安全送达就可以了。
IP 协议:
与网络互相连接需要使用一些中间设备:
(1)物理层使用的中间设备叫做转发器。
(2)数据链路层使用的中间设备叫做网桥或桥接器。
(3)网络层使用的中间设备叫做路由器。
(4)在网络层以上使用的中间设备叫做网关。
网络层提供的两种服务
虚电路服务
- 地址解析协议 ARP
- 网际控制报文协议 ICMP
- 网际组管理协议 IGMP
网络提供数据报数据报服务
虚电路服务与数据报服务的对比
网络协议IP
IP = 网络号 +主机号 (两级IP地址)
多播可以把数据包同时发送给指定的多台主机,因此它的效率高于广播,且它能穿透路由,所以可以向其它网络发送数据包。
- A类地址从1到8位是网络标识,后28位是主机标识,以“0”开头,所以它的十进制表示范围是0.0.0.0~127.0.0.0。
- B类地址从1到16位是网络标识,以“10”开头,所以它的十进制表示范围是128.0.0.1~191.255.0.0
- C类地址从1到24位为它的网络标识,以“110”开头,它的十进制表示范围是192.168.0.0~239.255.255.0。
常见IP地址的范围:
A 最大可指派网络数:126(2^7-2)
B 2^14-1
C 2^21-1
IP 地址具有以下特点:
(1)每一个 IP 地址都有网络号和主机号两部分组成。IP 地址是一种分等级的地址结构。好处是:第一,IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。第二,路由器仅根据目的主机所连接的网络号来转发分组,减小了路由器所占的存储空间以及查找路由表的时间。
(2)IP 地址是标志一台主机或一条链路的接口。当一台主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号必须是不同的。
(3)用转发器或网桥连接起来的若干个局域网仍为一个网络。
(4)在 IP 地址中,所有分配到网络号的网络都是平等的。
IP 地址与硬件地址
硬件地址:是数据链路层和物理层使用的地址。
IP 地址:是网络层和以上各层使用的地址,是一种逻辑地址,
- 在发送数据时,数据从高层下到低层,然后才到通信链路上传输。
- 使用IP地址的IP数据报一旦交给了数据链路层,就被封装成MAC帧了。
- MAC帧在传送时使用的源地址和目的地址都是硬件地址,这两个硬件地址都写在MAC帧的首部。
- 当IP数据报放入到数据链路层的MAC帧中以后,整个IP数据报就成了MAC帧的数据部分,因而在数据链路层看不见IP数据报的IP地址。
- 在接收数据时,数据从低层上到高层。
- 连接在通信链路上的设备(主机或路由器)在接收MAC帧时,其根据是MAC帧首部的硬件地址。
- 在数据链路层看不见隐藏在MAC帧的数据中的IP地址。
- 只有在剥去MAC帧的首部和尾部后,把MAC帧的数据部分上交给网络层后,网络层才能在IP数据报的首部中找到源IP地址和目的IP地址。
例子:
- 例子:三个局域网用两个路由器R1和R2互连起来,现在主机H1要和主机H2通信。
- 主机H1的IP地址是IP1,硬件地址是HA1。
- 主机H2的IP地址是IP2,硬件地址是HA2。
- 路由器R1由于同时连接到两个局域网上,因此它有两个硬件地址HA3和HA4。
- 路由器R2由于同时连接到两个局域网上,因此它有两个硬件地址HA5和HA6。
通信的路径是:H1->经过R1转发->再经过R2转发->H2。
地址解析协议 ARP
地址解析协议:当知道一个主机的 IP 地址,通过地址解析协议 ARP 来找出相应的硬件地址。
地址解析协议 ARP 作用:在主机 ARP 高速缓存中存放一个从 IP 地址到硬件地址的映射表,并且这个映射表经常动态更新。
每一台主机都设有一个 ARP 高速缓存(ARP Cache),里面有本局域网上的各主机和路由器的 IP 地址到硬件地址的映射表(并且每一个映射地址都设置有生存时间)。
IP 数据报的格式
1)版本号:占用4位二进制数,表示该IP数据报使用的IP协议版本。目前Internet中使用的主要是TCP/IP协议族中版本号为4的IP协议。2)头长度:占用4位二进制位,此域指出整个报头的长度(包括选项),该长度是以32位二进制数为一个计数单位的,接收端通过此域可以计算出报头在何处结束及从何处开始读数据。普通IP数据报(没有任何选项)该字段的值是5(即20个字节的长度)3)服务类型(TOS、type of service):占用8位二进制位,用于规定本数据报的处理方式。服务类型字段的8位分成了5个子域。
数据报为了适合网络传输而分成多个数据报的过程称为分片,被分片后的各个IP数据报可能经过不同的路径到达目标主机。一个IP数据报在传输过程中可能被分片,也可能不被分片。如果被分片,分片后的IP数据报和原来没有分片的IP数据报结构是相同的,即也是由IP头部和IP数据区两个部分组成:
IP 层转发分组的流程
(目的网络地址,下一跳地址)
IP数据报首部检验和的计算采用16位二进制反码求和算法。
若结果为零则保存数据报,否则丢弃。
参考:https://www.jianshu.com/p/7c1bea892d78