网络层IP协议介绍

                                网络层协议介绍


*******ip网络结构(历史)*******
*网络层信息传输两种:
电信电话:虚电路服务:电信网采用交换机,建立链接的,osi(七层)体系支持者曾经推行过。
如今:数据报服务:无连接不可靠,减少了路由器成本(原因就是把报文乱序缺失流量控制交给了主机处理(电脑))
*网络层协议
(ICMP,IGMP)
 IP
(ARP,RARP)
*虚拟互联网络:
互联的中间设备:物理层叫转发器,链路层叫网桥,网络层叫路由器(由于网关比较复杂,现在通常讲的网关也指代路由器),网络层以上叫网关。
这里我们讲网络层主要讲的是路由器(一个专用计算机),多种异构的网络组合才叫互联网,而网桥或者转发器只是把小网络变成大网络。所以路由器才是网络层的关键。
虚拟ip网络(计算机网络p124的几幅图),如果我们理解互联网是各个交换器链接所有网络的集合,路由器就没有存在的必要了。他是一个抽象的网络里面成员是不统一的。
*ip地址为每一个主机和路由器每一个接口分配一个唯一ip地址。
(分类IP地址:)
ip由网络号主机号构成。若干个网络id相同通过网桥链接的局域网广域网(物理位置很远但使用一个网络id)其实都属于一个网络,只要网络号相同。
分为ABC三类
A:1字节网络段,0开头,1-126   127环回地址
B: 2字节网络段,10开头,128-191
C: 3字节网络段,110开头,192-223
*IP地址与硬件地址
MAC帧使用的MAC地址
******划分子网*******
子网:
(网络id 子网id 主机id)最主要原因由于比如b类地址有6万个主机号,但是例如以太网只能连接1024个主机,因此这很浪费ip地址。所以我们可以把主机号的1位数当成子网id,而子网与子网之间通过一些固定的路由器连接(本意是连接两个不同类型的网络)。对外好像是一个网络的样子。
子网掩码:一串1和0的组合有几个1从哪结束就是子网网络地址(它不同与网络id,是子网概念引出的新的概念)的结束
我们只要把子网掩码与ip做&位运算就可以得出子网网络地址
默认子网掩码:有些网络不需要划分子网,则就采用默认子网掩码,因为现今的互联网要求路由表必须带子网掩码这一项。默认子网掩码就是比如a类地址,子网掩码就是8个1和24个0这与我们ip做&后的出的3级ip网络地址其实就是我们的之前2级ip的网络id。
子网位数:就是子网id占了多少bit
子网数:可以建立子网的数目,就是子网id表示的数量但是不能算全0和全1。(如今可以全0和1)
主机数:不能全0全1。(如今可以全0和1)
总结:目前TCP/IP网络,全部是通过路由器互连起来的,Internet就是成千上万个IP子网通过路由器互连起来的国际性网络。这种网络称为以路由器为基础的网络(router based network),
形成了以路由器为节点的“网间网”。在“网间网”中,路由器不仅负责对IP分组的转发,还要负责与别的路由器进行联络,共同确定“网间网”的路由选择和维护路由表。
现今意义上的网络地址就是子网ip地址,原先的我们通常叫网络id子网id区分。
*现今的路由器寻找路由过程:(计算机网络p146)路由表(ip,子网掩码,下一跳(路由地址or接口号))例4.4
路由器接收到IP地址和子网掩码挨个接口找相同子网,通过数据链路直接交付(封装成MAC,利用ARP,RARP)
-》不成功,则看路由表中还有没有这个ip特定的指定路由主机地址的选项。
-》如果没有,就挨个把子网掩码和ip做&,看有无匹配,有就看路由表的下一跳地址是哪个
-》没有就转给默认路由主机ip(通常唯一个能连接英特网的路由,其他路由接口都不能到达目的网络)
-》没有默认路由就转发分组出错
其实,我们应该把主机也看成一个小的路由器,因此以上是非家用型路由的总结,如果主机发现目的ip与自身掩码的&是自己的子网那直接不用以上过程了,直接通过数据链路完成了。
ip协议:
*子网掩码:子网位数,子网数目,子网中主机数目
******ip协议特点:
1无状态
传送接收双方不同步没有上下文关系,主要缺点就是会产生报文重复无序这会交由上一层 
协议比如Tcp加以解决。
2无连接
并不长久的保留对方ip地址,有上层协议传输指定。
3不可靠

保证尽力,但是不管包丢失,也不管重传,由上层协议管理

*************ipv4头部结构**********:

20+40字节  
4bit版本号  ipv4版本号是4,其他如sip pip这样ipv4拓展版有其他版本号
4bit头部长度  与tcp一样
8bit服务类型
服务类型:优先权字段3bit(现已忽略),TOS字段4bit(最小延时,最大吞吐,最高可靠,最小费用) ,1bit保留字段 (必须设置0)
16bit总长度  最大报文长度65535 2^16-1  分片机制所以达不到最大(通常以MTU作为最大 以太网1500B)
16bit标识  类似于TCP的syn  设立初始值往后+1唯一的标识一个数据报,分片可能会有相同的标识
3bit标志  第一位保留,第二位禁止分片,第三位是更多分片(分片除最后一个其他都设置成1)
13bit片偏移  这个值左移3位将得到真实偏移量(仅仅是数据部分来算)所以数据报除最后一个必须要分成8的倍数好让之后的
分片可以记录该分片与原始ip报文开始处的偏移量
8bit生存时间TTL  允许的最大跳数,为避免了路由循环。每经过一个路由器就减一,为0时就丢弃数据,并报ICMP差错报文
8bit协议  区分上层协议 比如ICMP是1 TCP是6 UDP是17  etc/protocols文件定义
16bit头部校验和  发送端填充,对方用CRC算法检验IP数据报头部是否损坏
32bit源端ip
32bit目的端ip
头部选项
记录路由:告诉经过的路由器转发填我的ip地址
时间戳:填写将数据转发的时间,可以比较得到路由器之间数据传递时间
松散源路由选择:制定一个ip地址列表,过程中必须经过其中所列所有路由器可以组合其他路由器(游戏加速器)
严格源路由选择:与松散源不同的是他限定只能使用指定路由器。不能用其他的路由器。
*使用tcpdump抓包 sudo tcpdump -ntx -i lo 本地回路抓包。

IP分片:
MTU为界限(ifconfig或者natstat)  以一个IPCM(网络层发送消息报告错误协议介于tcp和IP之间的ip附属协议通常我们把它划归到网络层
)被ip封装为例,头部+数据超过了规定长度就产生分片,第一个ip里面有ICMP的头部报文,而第二个分片里面没有。
sudo tcpdump -ntv -i eth0 icmp
ping kongming20 -s 1473.........查看我们分片情况

 IP路由:即决定发送数据报到目标机器的路径
总过程图:CRC检验-》处理ip头部-》发给本机,不是就给子模块处理-------如果是就给上一层协议在给---- |
|--》子模块(转发模块)(松散源路由和严格源路由)-》计算下一跳路由允许就发送到输出队列路由机制:
路由表:route命令查看路由表
路由表主要完成上面计算下一跳路由的同能,下列阐述这3中情况的报文将是如何计算路由的。
*匹配路由表中ip与目标ip完全相同的ip(即本机),匹配不到下一步,路由表标志位是H(路由项是一个主机)
*检查与路由表网络id相同的主机(即同一局域网),匹配不到下一步,路由表标志位是H(路由项是一个主机)
*默认路由项,这意味我们将要发送到网关G,链接广域网internet
************网关其实就是ip路由器的一部分功能也是可以理解为ip路由器的地址
那么网关到底是什么呢?网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B
,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络
B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,
两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,
TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。
而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,
就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个
主机(如附图所示)。网络A向网络B转发数据包的过程。************
***********路由表更新(静态)
sudo route add -host ip dev eth0路由器加一个主机
sudo route del -net ip netmask 子码,删除一个主机ip
sudo route del default  删除默认路由项,无法连接网络
sudo route add default gw ip dev eth0 重设默认路由项
BGP,RIP动态更新

ip转发:/proc/sys/net/ipv4/ip_forward 内核参数默认0,修改它主句就可以具有转发数据报的功能
重定向:
ICMP重定向:为了选择最近的路由器,家用通常一个,大多数都会有很多路由器。

ipv6
ipv6头部结构
扩展以后用零压法来表示ipv6地址
ipv6扩展头部(加密,分片信息。。。)头部的下一个包头指定下一个类型(可以是固定或者拓展的头部指定)

猜你喜欢

转载自blog.csdn.net/qq_41784469/article/details/80789450
今日推荐