网络层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字段:最小延时,最大吞吐量、最高可靠性,最小成本,只能4选一。

16位总长度:IP数据报整体占多少字节,是以字节位单位的; 16位总长度-4位首部长度 =正文长度,分离了报头和有效载荷。
——————————————————————————————————————————
16位标识(id):经过分片的报文主机标识是一样的;
3位标志位:

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

13位片偏移量:分片相对于原始报文开始出的偏移量,将偏移量进行排序组装。
———————————————————————————————————————————
8位生存时间:能经过多少路由器,一般是64,每经过一个路由器就-1,一直减到0还没有到达就丢弃。(防止出现路由循环)。
8位协议:表示上层协议类型。
16位首部检验和:使用CRC校验头部是否被损坏。
32位源地址和32位目的地址:发送端和接收端。

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

如图 所示,网段不同则必须配置不同的网络号,同一网段内的主机网络号相同但是主机号不同;
在这里插入图片描述
通过合理设置主机号和网络号,能保证在相互连接的网络中,每台主机的IP地址都不同(要么在同一网段内,主机号一定不同;要么不同网段,那网络号一定不同)

如果在子网中新增一台主机,则这台主机的网络号和该子网的网络号一致,但主机号不能和子网内的主机重复,利用DHCP技术,能够给子网内新增主机节点分配IP地址;而一般的路由器都有该功能,所以路由器可以看做是DHCP服务器。

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

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

IP地址数量限制
IP地址为一个4字节32位的整数,所以一共有2^32个IP地址,而TCP/IP协议规定,每个主机都要有一个IP地址,现在随着PC互联网和移动互联网的蓬勃发展,在网的设备越来越多。CIDR在一定程度上缓解了IP地址不够用的问题(提高了利用率, 减少了浪费, 但是IP地址的绝对上限并没有增加), 仍然不是很够用。
目前有三种方法:
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。
而借助具有外网的服务器(阿里云/腾讯云),可以实现自己写的服务器程序在公网上被访问到。

路由是什么
简单来说,路由就是在一个复杂的网络结构里,找到一条通往目的地的路。
路由器在路由时,先根据网络号找到目标网络,在根据主机号找到目标主机。(就像唐山取经,是先到西天,在找到如来一样)
下面的图片完成了一次主机A到主机B的路由:
在这里插入图片描述
其实路由的过程,就是这样不停的问路的过程;而每一次跳转,具体就是从源MAC地址到目的MAC地址之间的帧传输区间。

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

现在问题是,路由器如何判定这个数据包该发送到哪里?
每个节点(主机和路由器的统称)内部维护的一个路由表,通过route命令查看:
在这里插入图片描述
我的主机有一个网络接口,是连接到192.168.124.0/24的网络。
现在我们知道,IP实现的是直至目的通信地址的通信,而具体的实现某一个跳转,是由数据链路层实现的,关于数据链路层,我们会在后面的文章中详细谈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值