网络层 IP协议

文章目录

  • 网络层:为分组交换网上的不同主机提供分组交换服务。
  • IP协议
    • 协议格式
    • IP地址管理
      • 网段划分
        • DHCP技术
        • 曾经的5类IP划分
        • 子网掩码
          • CIDR
      • 私网IP
      • NAT协议
        • NAPT
    • 路由选择
        • 路由查找规则
          • 路由过程
        • 路由表 route -n 查看路由表
        • 路由器在收到IP数据报告后执行的分组转发步骤如下:

网络层:为分组交换网上的不同主机提供分组交换服务。

IP协议

协议格式

网络层 IP协议_第1张图片

4位版本:ipv4就是4.
4位首部长度:20字节固定+40字节选项。
8位服务类型:TOC,高三位表示优先级,已弃用,其次从高到底依次为:最小延迟,最大吞吐量,最够可靠性,最小成本,一位保留。
16位总长度:理论可达2^16 - 1 =65535;实际上<= MTU。
16位标识符:如果IP数据报在数据链路层被分片了,这个标识符能标识分片是否属于同一数据包。
3位标志:第一位保留,第二位表示禁止分片,第三位表示分片是否结束(1:还有分片,0:没有分片)。
13位片偏移:描述的是分片在整个UDP数据包中的相对位置。
片偏移*8 = 在UDP数据包中按字节偏移的相对位置。
8位生存时间:TTL,当前IP数据包在网络中最大经历的路由器的个数,一般为64.每转发一次就-1,减到0就会被路由器丢弃。
8位协议: 记录传输层使用的什么协议。

由于MSS的存在,TCP的IP数据报不会发送分片,反之,如果分片了一个分片的丢失将导致整个TCP数据包的重发。
而UDP的IP数据报没有严格的限制,若大于MTU就会分片。
因此IP协议是不可靠的。

IP地址管理

为了解决IP地址分配问题。
IPV4版本的的IP有42.9亿个。

网段划分

将IP地址分为网络号也叫网络号和主机号。
网络号:唯一表示一个网段。
主机号:唯一标识同一网段下的不同主机。

DHCP技术

可以自动的子网内新增的主机分配IP.一般路由器都自带这个功能,因此路由器可以看做是一个DHCP服务器。

曾经的5类IP划分

D,E类是特殊地址分配,主机号全0的是网络地址,主机号全一的是广播地址,这些都不能给主机或路由器分配。

分类 最高位 网络位 主机位 子网掩码 IP范围
A类 最高位0 7 24 255.0.0.0 1.0.0.0-127.255.255.255
B类 高两位10 14 16 255.255.0.0 128.0.0.0-191.255.255.255
C类 高三位110 21 8 255.255.255.0 192.0.0.0-223.255.255.255
分类 最高位 * IP范围
D类 高四位1110 28位多播组号 224.0.0.0-239.255.255.255
E类 高五位11110 27位待用 240.0.0.0-255.255.255
子网掩码

无符号32位整数,用于描述当前网络使用多少网络号多少主机号。
网络号部分全1,主机号部分全0;
127.0.0.1 本地回环
0.0.0.0 回收本地所有地址

CIDR

CIDR是如今的子网划分方式。
引入子网掩码通过从主机号借位进行子网划分。

私网IP

不能访问互联网资源,这样不同子网的私网IP就可以复用,还是为了缓解IP地址枯竭。
3个私网网段:
10.x.x.x
172.16.x.x
192.168.x.x

NAT协议

地址转换协议

作用:私网机器对公网机器发送请求或接受应答时,将私网/公网TP经过NAT网关转化为公网/私网IP.

方式:
静态NAT:一个私网IP对应一个公网IP.
动态NAT:选择当前空闲的一个公网IP进行转换(确实对于解决ip枯竭有很大帮助)。

NAPT
对于动态NAT的重载
在地址转换的时候,不仅将IP进行了转换,而且还将传输层的端口也进行转换。
解决的同一局域网内多个主机同时访问公网资源。
将同一局域网中不同主机的私网IP+port ==>同一个公网IP+不同port。

NAT总结 :

  1. NAT对通信双发透明且无感知。
  2. NAT网关会保存映射关系,保证走出去还能再回来。
  3. 只能先从私网走出去才能从公网走回来。
  4. NAPT增加了端口转换大大缓解了ip枯竭。
  5. 增加了开销。

路由选择

就是找到去往下一个的地方,通过目的IP,和路由项进行选择。
路由器上有两个口
WAN口:连接上级路由器。
LAN口:组件路由器对应的子网。

路由查找规则

路由查找就是通过目的IP查找下一个主机的路由,具体如何走由数据链路层实施。
路由的原则:数据到达转发节点,由转发节点重新选择路由,既然转发节点需要路由,那么就一定需要数据分用,分用到网络层找到IP地址。

路由过程

路由的过程是一跳一跳的过程,一跳:就是数据链路层的一个区间,具体在以太网中指从源MAC到目的MAC之间的帧传输区间。

路由表 route -n 查看路由表
[jiahao@VM-0-17-centos ~]$ route -n
Kernel IP routing table      
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.1        0.0.0.0         UG    0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.252.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
[jiahao@VM-0-17-centos ~]$ 

Destination: 目的网络号 
Gateway: 网关地址
Genmask:子网掩码 
Flags:
	U:路由是动态的;
	H:目标是一个主机;
	G:路由指向网关,没有G就表示目的网络地址是与本机接口直接相连的网络,不必经路由器转发
	R:恢复动态路由产生的表项;
	D:由路由的后台程序动态安装;
	M:由路由的后台程序修改;
	!: 拒绝路由。
Metric:经过路由器个数    
Ref :引用次数  Linux中未使用。
Use:查询次数 
Iface:接口,去往目的地址的网络路径的出口;
路由器在收到IP数据报告后执行的分组转发步骤如下:
1. 提取IP数据报告首部中的目的IP地址.

2. 判断目的IP地址所在的网络是否与本路由器直接相连(路由表中Flags没G)。如果是,就直接交付给目的网络,如果不是执行3.

3. 检查路由器表中是否有目的IP地址的特定主机路由(路由表中Flags为H)。如果有,按特定主机路由转发:如果没有,执行4.

4. 逐条检查路由表,目的IP&子网掩码的结果和每个目的网络号进行对比。若找到匹配路由,则按照路由表进行转发:若所有路由均不匹配,则执行5.

5. 若路由表中设置有默认路由,则按照默认路由表转发:否则向源主机报错。

你可能感兴趣的:(tcp/ip,网络,服务器)