总结网络层IP协议

本文主要讨论IP协议及相关内容,如有错误,感谢大佬指正!

基本概念:
主机:有ip地址但不进行路由控制的设备
路由器:既有ip地址又能进行路由控制
节点:主机和路由器的统称

IP协议:
提供了一种能力,将数据报从A主机发送至B主机,但是不一定能发送到,可靠性是由上层的TCP保证的。

IP协议格式
这里写图片描述

4位版本:指定IP协议的版本,ipv4来说,就是4。
4位首部长度:IP头部有多少个32位(4字节),最大为1111->15个4字节,也就是60字节,不带选项为20字节(5个32位);

8位服务类型:
3位优先权字段(弃用)
1位保留字段,必须为0
4位TOS字段:最小延时,最大吞吐量,最高可靠性,最小成本,只能四选一。

16位总长度:IP数据报整体占多少个字节,是以字节为单位的;16位总长度-4位首部长度=正文长度,分离了报头和有效载荷。

———————————————————分片与组装—————————————————
16位标识(id):经过分片的报文主机标识是一样的。

3位标志位:
第一位保留
第二位为一,表示禁止分片,这是如果报文长度超过限制,就会丢弃报文。
第三位:若分片了,最后一个分片置为1,其他为0,相当于结束标记。

13位片偏移量:分片相对于原始报文开始处的偏移量,按偏移量进行排序组装。
———————————————————分片与组装—————————————————

8位生存时间:能经过多少路由器,一般是64,没经过一个路由器-1,一直减到0还没到达就丢弃。(防止出现路由循环)
8位协议:表示上层协议类型
16位头部检验和:使用CRC检验头部是否被损坏。
32位源地址和32位目的地址:发送端和接收端。

网段划分
首先需要明确IP地址分为两部分:
1.网络号:保证相互连接的两个网段具有不同的标识
2.主机号:同一网段内,主机之间虽然具有相同的网络号,但是必须有不同的主机号,这样才能找得到。

如图所以,网段不同则必须配置不同的网络号,同一网段内的主机网络号相同但是主机号不同:
这里写图片描述

通过合理设置主机号和网络号,能保证在相互连接的网络中,每台主机的IP地址都不同(要么同一网段内,主机号一定不同;要么不同网段,那网络号肯定不同)
如果在子网中新增一台主机,则这台主机的网络号和该子网的网络号一致,但主机号不能和子网内的主机重复,利用DHCP技术,能够给子网内新增主机节点分配IP地址;而一般的路由器都有该功能,所以路由器也可以看做是DHCP服务器。

那么一个IP地址的网络号和主机号各是多少位呢?这就需要通过子网掩码来指定,具体我在上一篇文章有很详细的介绍,附链接:
https://blog.csdn.net/han8040laixin/article/details/81327976

特殊ip地址
主机号全为0,则成了网络号,代表这个局域网。
主机号全为1,则成了广播。
127.*:本机环回,用于测试。一般为127.0.0.1

IP地址数量限制
IP地址为一个4字节32位正整数,所以一共只有2^32个IP地址,而TCP/IP规定,每个主机都得有一个IP地址,肯定不够用,虽然CIDR缓解了问题(提高利用率减少浪费,但是只是缓解)
目前有三种方法:
1.动态分配:只给接入网络的设备分配IP地址,所以同一个MAC地址,每次接入网络IP地址可能都不一样。
2.NAT(下面讲)
3.IPV6:用16字节128位表示IP地址。(未普及)

私有IP和公有IP
IP地址一共分为五类:
A:0.0.0.0 - 127.255.255.255
B:128.0.0.0 - 191.255.255.255
C:192.0.0.0 - 223.255.255.255
D:224.0.0.0 - 239.255.255.255
E:240.0.0.0 - 247.255.255.255
能在网络或被用户使用的为A、B、C三类,D类用作组播地址,E类作为科研保留地址段。

可能很多人都会发现,不管在家里还是学校到处都可以发现IP地址是192.168.x.x,这是因为:
私有IP地址是指局域网内主机的IP地址。
公有IP地址是指在因特网上全球唯一的IP地址。

而10.0.0.0 - 10.255.255.255(前八位为网络号)
172.16.0.0 - 172.31.255.255(前12位是网络号)
192.168.0.0 - 192.168.255.255(前16位是网络号)
这三类是为私有IP地址预留的,用于组将局域网私有IP,所以我们平时连网到处都是192.168.x.x

这里写图片描述

一个路由器配置两个IP地址,一个是WAN口IP(当前局域网IP),一个是LAN口IP(子网IP,LAN口连接的主机,都属于这个路由器的子网)。就像学校的路由器一方面要被学生找到,一方面要与外网联系。
不同路由器的子网IP其实都是一样的,通常是192.168.1.1,。
子网内的IP地址一定不同,但两个子网间IP地址可能重复。
每一个家用路由器,作为运营商路由器的一个节点;则最外层的运营商,WAN口IP就是一个公有IP。
当子网内的主机需要和外网进行通信,路由器将IP首部中的IP地址替换成WAN口IP,通过这样逐级替换最终数据包中IP地址成为一个公网IP,这个技术叫NAT。
而具有外网IP的服务器(阿里云/腾讯)可以实现自己写的服务器程序在公网上被访问到。

什么是路由
简单来说,路由就是在一个复杂的网络结构里,找一条通往目的地的路。
路由器在路由时,先根据网络号找到目标网络,再根据主机号找到目标主机。(就像西天取经,唐僧是先到西天,再找如来佛祖一样。)

下图完成了一次主机A到主机B的路由;
这里写图片描述

其实路由的过程,就是这样不停跳转的问路过程;而一次跳转,具体就是从源MAC地址到目的MAC地址之间的帧传输区间。

所以说IP数据包传输过程简单来说:
当IP数据包到达一个路由器时,路由器会先查看目的IP;
路由器看这个目的IP,看看能不能直接发给目的主机,要是不能,就发送给下一个路由器;
一直这样找,最终把到达目的地。

现在的问题是,路由器如何判定这个数据包该发送到哪里?
每个节点(主机和路由器的统称)内部维护的一个路由表,通过route命令行命令查看:

这里写图片描述

我的主机有一个网络接口,是连接到192.168.124.0/24的网络。

现在我们知道,IP实现的是直至目的地址的通信,而具体的实现某一个跳转的通信,是由数据链路层实现的,关于数据链路层,我会在后面的文章里详谈!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值