网络层原理

6 篇文章 0 订阅

目录

网络层有两个作用

1.地址管理

2.路由选择

网络层的代表:IP协议

报文结构

为了解决IP地址不够用的问题,想了很多办法:

1.动态分配IP地址

2.NAT 网络地址转换

3.IPv6

地址管理

特殊IP

路由选择


网络层有两个作用

1.地址管理

2.路由选择

网络层的代表:IP协议

IP协议

报文结构

4位版本:此处的取值只有两个,4和6,对应着IPv4协议和IPv6协议.

4位首部长度:描述了IP报头多长(IP的报头是可变长的),因为报头中有一个选项部分,是变长的,是可有可无的,注意此处的单位是4字节.

 8位服务类型:实际上只有4位是有效的,这4位中,只有1位可以是1,其他的都是0,4位的1也表示IP协议的4种形态/4种工作模式.(最小延时,最大吞吐量,最高可靠性,最小成本)

16位总长度(字节数):描述了一个IP数据包的长度(头+载荷),这个长度减去前面的IP报头长度,就是载荷的长度,就是一个完整的TCP/UDP数据报的长度.

16位的总长度就意味着一个IP数据报,最大只能支持64kb的数据,但是IP自身就支持对包的拆分和组装,一个IP数据报携带的数据载荷太长了,超过了64kb,就会在网络层针对数据进行拆分,把一个数据拆成多个IP数据报,在分别发送,接收方在重新组装.

16位标识:同一个数据报拆成的多个包的标识是一样的.

3位标识:结束标志,用来辨认当前包是不是拆包后的最后一个包.

13位片偏移:标识了多个包的先后顺序.

8位生存时间:一个数据报在网络上能够传输的最大时间..

这个时间的单位不是"秒"而是"次数",一个数据报构造出来的时候,会有一个初始的TTL数值(比如32,64,128...),这个报每经过一次路由器转发,TTL-1,如果一直减到0了,还没有到达目标,此时就认为这个包永远到不了了,就可以丢弃了.

8位协议:描述了当前的载荷部分是属于哪个协议(TCP/UDP..)

16位首部校验和:此处只需要针对首部进行校验,载荷部分自身已经有校验和了.

32位源IP地址和32位目标IP地址:这个是IP协议中最重要的部分.

此处看到的IP地址是32位的整数,而我们日常见到的是一串数字[61.185.187.142],把32位,4个字节的数字分割开,分成四个部分,每个部分分别使用0-255十进制整数表示(这种表示方法叫做点分十进制).

地址,我们期望每个设备都不相同,但是32位数字,只能表示42亿9千万个数字,期望使用这个数字表示全世界所有的上网设备,当前物联网的时代显然是不够用的.

为了解决IP地址不够用的问题,想了很多办法:

1.动态分配IP地址

给上网的设备分配地址,不上网的设备不分配,全世界的设备并不是同一时间都在上网,此时就可以省下一批ip地址了.这个方案没有从根本上增加ip地址,只是提高了利用率,治标不治本.

2.NAT 网络地址转换

本质是使用一个IP代表一批设备,能够大大提高ip地址的利用率,这一批设备用端口号来区分.

在NAT背景下,就把IP地址分成两个大类:

1)内网IP(私有IP)  10.*   172.16.*-172.31.*  192.168.*

2)外网IP(公网IP)  私有IP剩下的都是公网IP

NAT要求,公网IP必须是唯一的,私网IP可以在不同的局域网中重复出现.

如果某个私网里的设备想访问公网的设备,就需要对应的NAT设备(路由器),把IP地址进行映射,从而完成网络访问.

公网的设备,无法直接访问私网的设备,不同的局域网的设备无法直接相互访问.

打开cmd,输入ipconfig,即可查看当前设备的IP地址

10开头的就属于局域网内部的私有IP.

内网IP只要在局域网内部不重复即可,不同的局域网是允许重复的.

 我们可以打开浏览器搜索IP地址

 

 

这就是一个外网的IP地址.

接入运营商路由器的电脑,去访问外部的服务器都会被路由器换成自己的外网IP. 

站在服务器的角度,看到的是NAT设备(运营商路由器)转换之后的外网IP.

 如果同一个运营商路由器下的多个电脑访问同一个服务器,服务器的响应就会先发给路由器,路由器在根据这些电脑不同的端口号来区分,来决定发给哪个设备.

因此,服务器拿到的只是路由器的IP,不能拿到我的电脑的内网IP,如果我的电脑不主动和服务器联系,服务器也就不知道我的端口,从而无法主动找到我.

NAT机制能有效的解决IP不够用的问题,但是带来的副作用就是网络环境更加复杂了.

3.IPv6

根本上解决了IP不够用的问题.

IPv6使用16个字节来表示IP地址,128位.

42亿*42亿*42亿*42亿,这个数字非常之大,足以表示地球上的每一粒沙子.

IPv6从根本上解决了IP地址不够用的问题,但是当前世界上仍然是NAT+IPv4+动态分配 来进行网络组建.

这是由于IPv4和IPv6是两个不相兼容的协议,如果要支持IPv6,就需要更换网络设备,成本很高.


地址管理

IP地址可以分为两个部分:

1.网络号:标识网段(标识局域网),保证相互连接的两个网段具有不同的标识.

2.主机号:标识主机,保证在同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号.

那么一个IP地址,网络号和主机号的分界是怎么定的?

有一个单独的概念"子网掩码"来判断哪些是网络号,哪些是主机号.

网络号不一定就是前三个字节,都是可以调整变化的,此处的255.255.255.0就是子网掩码.

子网掩码有32位,左侧全是1,右侧都是0,1的部分就描述了IP有多少位是网络号>

255.255.255.0=>1111 1111 1111 1111 1111 1111 0000 0000

左侧24位是网络号,剩下的是主机号.


特殊IP

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

路由选择

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值