网络层
概述
网络层将不同的网段中的节点连接起来,实现点对点的通信。数据链路层只是将同一网段中的节点连接在一起。网络层负责将数据链路层中形成的网段拼接起来,使不同网段中不相邻节点彼此通信。
IP协议
网际协议,属于OSI参考模型从下往上的第三层,网络层。这一层主要由IP和ICMP两个协议组成,主要作用就是在复杂的网络环境中将数据包发给最终的目标地址。
- 主机 配有IP地址,但不进行路由控制的设备叫作主机。
- 路由器 配有IP地址,又进行路由控制的设备叫作路由器。
节点 主机和路由器的统称。
IP地址
用于标识计算机网络中的主机和路由器,MAC地址是用于标识同一数据链路中不同计算机。TCP/IP通信中所有主机或路由器必须设定IP地址。
不同的数据链路用同一种形式的IP地址,如以太网,无线局域网的IP都一样。
IPv4地址由32位正整数表示,每8位为1组,分成4组,每组以.隔开,再将每组二进制数转换成十进制数
每一台主机上的每一块网卡(NIC)都要设置IP地址。通常一块NIC只设置一个IP地址,也可以设置成多个。一台路由器配置多个网卡,可以设置多个IP地址。
由网络地址和主机地址组成,保证唯一性。网络地址保证每个网段地址不重复,同一个网段内的主机不重复。
192.168.1.1 /24 /24表示从第1位开始到多少位数据网络地址,192.168.1之前的都是IP的网络地址。路由器是通过IP地址的网络地址进行转发的。
IP地址分类
根据IP地址中从第1位到第4位的比特列对其网络地址和主机地址区分。 在分配主机地址时,不可以全部是0或者全部是1,全部是0表示对应的网络地址或IP地址不可获知的情况下使用。全部是1的主机地址通常作为广播地址。所以,可用主机地址数为2^n-2
子网与子网掩码
- 架构B类IP网络时,理论上一个链路内允许6万多台计算机连接,实际操作中不会在同一个链路上连接这么多的机器。造成A类和B类IP地址的浪费。
- 将A,B,C分类中的主机地址部分用作子网地址,将原网络分成多个物理网络的一种机制。
- 引入子网后,一个IP地址包括,IP地址本身和表示网络部分的子网掩码。子网掩码中的1代表网段地址,0代表主机地址。
- 节省IP地址,便于管理。使用子网掩码划分子网后,子网内可以通信,跨子网不能通信,子网间通过路由器通信。
- 网络地址指主机部分的IP地址位都是0的IP地址,代表了网络本身。如192.168.1.1的子网掩码255.255.255.0,则192.168.1.0就是网络地址。
2种广播
- 本地广播 在当前网络中的广播叫作本地广播。
- 直接广播 在不同网络之间的广播叫作直接广播。
路由控制
路由器和L3交换机是根据网络层L3中的IP地址信息转发数据包的,通过路由表对数据包的转发目的地进行切换的过程叫作路由选择。 网络层IP数据包转发流程
- 默认路由一般标记为0.0.0.0/0 或default。
- 环回地址是在同一台计算机上的程序之间进行网络通信使用的默认地址。计算机使用127.0.0.1或localhost作为环回地址,数据包不会流向网络。
- 最后一步是用ARP去查询节点B的MAC地址,然后将数据包发送给节点B
TODO 静态路由,动态路由,路由协议
MAC地址和IP地址共同协作
IP报文分割
IP报头
数据链路层不同,MTU则不同
IP报文分片与重组 以太网默认MTU是1500字节,如果传输大于1500字节的数据,不能通过一个帧发送,路由器会将此IP数据报分片发送。数据报重组只能在目标主机上进行。
IPv6
IP version 6 为了根本解决IPv4地址耗尽的问题而被标准化的网际协议。IPv4的地址长度为4个8位字节,IPv6的地址长度是原来的4倍,一般写成8个16位字节。 * 组成举例 以每16比特为一组,每组用冒号隔开。 * 分片 IPv6分片处理只在发送端主机上进行,路由器不参与分片,减轻路由器的负荷。
IP协议相关协议
IP旨在让最终目标主机收到数据包,但是这一过程中仅有IP是无法通信的。还需要有能够解析主机名称和MAC地址的功能,以及数据包在发送过程中异常情况处理的功能。IP辅助和扩展规范的协议包括:DNS,ARP,ICMP以及DHCP等协议
DNS
解析域名
ARP
- 地址解析协议,以目标IP地址为线索,定位下一个应该接收数据分包的网络设备对应的MAC地址,如果目标地址不在同一个链路,则通过ARP查找下一跳路由器的MAC地址。
- 只使用于IPv4,不能用于IPv6,IPv6用ICMPv6替代ARP。
- ARP 包格式 共28个字节 以太网帧类型表示后面数据类型,ARP类型来说,该字段为0x0806 硬件类型字段表示硬件地址的类型,1表示以太网地址 协议类型字段表示要映射的协议地址类型,0x0800表示IP地址 硬件地址长度表示硬件地址长度,以字节为单位,以太网上IP地址的ARP请求或应答,值为6 协议地址长度表示协议地址长度,以字节为单位,以太网上IP地址的ARP请求或应答,值为4 操作字段,ARP请求为1,ARP应答为2,RARP请求为3,RARP应答为4.
- 在本地arp缓存表,ip<->mac,不需要每次通信都需要去广播查询目标mac地址。超过一定时间后会清空缓存,win7是10分钟,思科设备是4小时。
- 通过命令行可以查询局域网机器mac地址,sudo arping -I eth0 192.168.1.1
sudo arp-scan -l 查询整个局域网内所有IP地址对应的MAC地址。
PARP
从MAC地址定位IP地址的一种协议。
ICMP
理论上属于网络层协议,但实现上是作为传输层协议实现的,因为需要封装在IP报文中进行收发。辅助IP的ICMP,IP包头。 * 确认IP包是否成功送达目标地址 * 通知在发送过程中IP包被丢弃的具体原因 * 诊断测试网络是否正常,设置是否有误
主要的ICMP消息
- ICMP目标不可达消息
- ICMP重定向消息 如果路由器发现发送端主机使用了次优路径发送数据,会返回一个ICMP重定向的消息给发送主机,包括最合适的路由信息和源数据。
- ICMP超时消息 IP包中有一个字段TTL(Time To Live 生存周期),它的值每经过一次路由器就会减1,直到为0时该IP包被丢弃,路由器会发送一个ICMP超时消息给发送端主机,并丢弃该包。 traceroute 充分利用ICMP超时消息。TODO 后面再了解。
- ICMP 回送消息 判断所发送的数据包是否已经成功到达对端的一种消息。ping命令就是利用这个消息实现的。
ICMP报文 所有的ICMP报文前4个字节都是一样,剩下的其他字节不同。类型字段可以有15个不同的值,以描述特定类型的ICMP报文。代码字段用来进一步描述不同的条件。 ping(源于声呐定位操作) 是常用测试另一台主机是否可达的程序,发送一份ICMP回显请求报文给目标主机,并等待返回ICMP回显应答。
DHCP
即插即用自动设置IP地址,同一管理IP地址分配。
NAT
在私有地址在连接互联网时使用全局IP地址。
IP隧道
网络层的首部后面继续追加网络层首部的通信方法叫作IP隧道。
- 原文作者:niep
- 原文链接:http://www.fdgggy.com/2019/11/17/wangluoceng/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。