4 IP协议浅层详解(网络层)

网络层是找到从源IP到目的IP的路径,它有能力跨网络把数据从A主机传输到B主机(TCP指使IP进行传输)

网络层一个常用的协议叫IP协议。

特点/作用:

1.无连接、不可靠

2.建立了物理层和传输层的统一

3.寻址和路由

 

1. IPv4协议


  •  

  • 头部长度

    也叫报头长度,有4位,4字节一个单位,分组头最小值为5,表示20字节,最大值为15,表示60字节;和TCP一样

  • 服务类型

    4位TOS分别表示最小延时、最大吞吐量、最高可靠性、最小成本,四者冲突只能选择一个。

  • 标识

    如果IP报文被分片,那么他们的标识是一样的。用来分片和组装。

  • 标志

    第一位保留、第二位表示禁止分片,那么超过MTU就会直接丢弃。第三位表示更多分片,1表示还有分片,0表示这是这个报文分片中最后一个。类似于结束标记。

  • 分片偏移

    标记了这个分片报文在原数据中的位置,位置 = 这个数*8;保证报文的连续性。

  • 生存时间

    数据到达目的地的最大跳数,一般是64,每经过一个路由器,会减一,减到0还没到就直接丢弃。防止路由循环。

  • 协议

    表示上层协议类型,哪个协议发来的

  • 首部校验和

    用CRC检验,鉴别头部是否损坏,保证数据的完整性。

  • 选项

    不定长,最多40字节。

问题1:上面提到了"分片",什么是分片?

分片和TCP拆分数据一样,因为IP也有大小限制,而且大小是由MAC协议(1500)也就是链路层协议决定的。

问题2:那各个层之间大小是怎么协定的?

在TCP三次握手中,就已经交换了自己可以接受的最大报文长度(MSS),取双方较小的。

MSS = MTU - IP报头 - TCP报头 = 1500-20-20 = 1460

MTU是由网络类型(链路层)决定的。

 

2. IPv6


 

1.取消了首部长度,因为IPv6的首部长度是固定40个字节。

2.取消了服务类型,因为流标号和优先级结合起来实现了服务类型的功能。

3.取消了总长度字段,改用为有效载荷长度,有效载荷就是后面的扩展首部加上数据报中的数据。

4.取消了标识,标志和片偏移,因为这些功能都包含在了扩展首部里面。

5.取消了协议字段,改用为下一个首部,功能不变,这样更容易理解。

6.取消了生存时间ttl,改用为跳数限制,功能不变,这样更容易理解,更形象了。

7.取消了首部效验和,这样加快了路由器对数据报的处理速度,在数据链路层中,当我们发现有差错的帧就会抛弃,在运输层中,在udp中,当发现有差错就会抛弃,在tcp中,当发现有差错就会重传,直到传送到目的进程为止。因此在网路层的检测就可以精简掉。

8,取消了选项字段,功能归并在了扩展首部上。
了解即可,IPv6并不普遍。

 

3. 网段划分


IP = 网络号 + 主机号

每个网络中的主机号不能相同。

自动分配主机号:DHCP技术。一般的路由器都有这个技术,因此一个路由器也可以看作一个DHCP服务器。


划分方法1:

把所有的IP划分为五类

A - 0 -网络号 - 主机号 //0.0.0.0 ~ 127.255.255.255

B -10 -网络号 -主机号 //128.0.0.0 ~ 191.255.255.255

C -110 -网络号 -主机号 //192.0.0.0 ~ 223.255.255.255

D -1110 -网络号 -主机号 //244.0.0.0 ~ 239.255.255.255

E -11110 -网络号 -主机号 //240.0.0.0 ~ 247.255.255.255

缺点:A类占有很多IP,但是经常被申请的却是B类,导致大量地址被A浪费。

这些地址不会被Internet分配,他们再Internet上也不会被路由,虽然它们不能直接和Internet网连接,但通过技术手段仍旧可以和 Internet通讯(NAT技术)。

 

划分方法2:

子网掩码划分

为了改进上述简单粗暴的划分方式,提出了新的技术方案,CIDR,Classless Interdomain Rounting

引入一个子网掩码来区分网络号和主机号。通常用一串0结尾。

网络号 = 子网掩码&IP

IP范围: 全0 ~ 全1

每个网段有 16-2(全0全1)=14台主机。

 

特殊的IP地址

(1) 0.0.0.0

严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一律送进去。如果你在网络设置中设置了缺省网关,那么Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。

(2) 广播地址(255.255.255.255)

限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机。如果翻译成人类的语言,应该是这样:“这个房间里的所有人都注意了!”这个地址不能被路由器转发。

(3) 环回地址(127.0.0.1)

本机地址,主要用于测试。用汉语表示,就是“我自己”。在Windows系统中,这个地址有一个别名“Localhost”。寻址这样一个地址,是不能把它发到网络接口的。除非出错,否则在传输介质上永远不应该出现目的地址为“127.0.0.1”的数据包。

(4) 165.254.x.x

如果你的主机使用了DHCP功能自动获得一个IP地址,那么当你的DHCP服务器发生故障,或响应时间太长而超出了一个系统规定的时间,Wingdows系统会为你分配这样一个地址。

 

4.IP地址数量限制


IP地址是四个字节,差不多就是43亿个IP。随着互联网的普及,IP数量也受到了限制。

CIDR是缓解了这个问题但并没有解决,只是提高了利用率。

 

所以有三种解决方法:

  1. 动态分配IP地址。只给介入网络的主机分配IP地址,所以说每次接入获取的IP都不一定相同。

  2. NAT技术。网络地址转换,让一个局域网中的主机建立连接时,把报文中的原IP换成局域网路由器的IP。

  3. IPv6 。用16个字节表示IP地址,但是还没有普及。

 

5.私有IP地址和公有IP地址


私有IP可以访问公有IP

公有IP不可以访问私有IP

这时候就需要一个”中间人“—路由器

一个路由有两个IP,WAN口接路由器自己的IP,LAN口连接的主机都是属于这个路由器所在的子网中。

 

NAT技术

协议层:网络层

解决问题:IP地址数量限制

1.私有 -> 公有

就得先将数据发送给路由器,主机A的路由器将原IP替换成WAN口IP,也就是路由器自己的IP,再发送给广域网的所在的路由器WAN口IP处,再发送给目的主机B。

2.公有 -> 私有

在数据返回的时候,传送到目的IP所在网域的路由器后,路由器根据路由地址转化表寻找最初的IP地址并发送数据(NAPT技术)。

 

问题1:假如局域网中同一时间多台主机都访问外部服务器,那么数据返回时,路由器怎么正确地发送回去呢?

  • 引入技术NAPT,使用IP+port建立一个关联关系。由NAT路由器自动维护,在TCP建立连接时创建表,断开时自动删除。

 

NAT技术缺陷

NAT技术核心就是这张转换表,也就是说依赖于这张表。

  • 这张表的开销是一个缺陷

  • 假如NAT设备异常,即使存在备份,也会断开所有TCP连接

  • 无法从外部向内部建立连接

 

问题2:这么说来NAT和代理服务器很相似了?

  • 并不是,首先它们不在同一个协议层,NAT在网络层,直接对IP协议报文中地址进行修改操作。而代理服务器是工作在应用层,对客户端和服务器之间起一个桥梁作用。

  • 在范围上来讲,NAT路由器是局域网的出口,连通了局域网内部和广域网之间的联系。而代理服务器是可以在局域网做(负载均衡),也可以在广域网做(翻墙),还可以跨网。

  • 本质上看,NAT一般集成在路由器、防火墙上。而代理服务器就是一个软件程序,需要部署在服务器上。

 

6.路由


路由就是在路由器链路上一跳一跳问路的过程。

是MAC地址 -> MAC地址的过程。

 

路由器拿到一个数据包之后,查阅路由表判断这个报的目的IP,有没有能直接发给所管理的网域的主机IP,如果不能,那就按缺省路径发送给下一个路由器。

查看路由表(route命令)

traceroute/tracert命令

打印执行主机到目标主机所经过地所有路由器。

 

7.IP地址和MAC地址的区别


协议里,IP地址在传输过程中基本不变,而MAC地址一直在变化。(路由)

IP地址描述路途的起点终点,MAC地址描述的是途中区间的起点终点。

 

 

 

 

 

 

 

 

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值