IP协议,网络层

一、IP协议报文

在网络层最主要的协议是IP协议,网络层的主要任务是进行:1.地址管理 2.路由选择

地址管理:使用一套地址体系,描述互联网中每个设备所处的位置。

IP地址有两个版本,1.IPV4     2.IPV6  ,IPV6比IPV4 更加复杂,但IPv4比IPv6应用更加广泛。

版本号:IPV4、IPv6.

4位首部长度:单位:4字节,15*4=60字节(最大程度)

TOS:只有四位有效。最小延时、最大吞吐量、最高可靠性、最小成本。4位彼此冲突。

由于IP数据报有长度限制,所以在数据链路层有拆包/组包这样的功能。主要的因为在于:数据链路层的协议规定了数据字段的最大长度,无法干预。每个IP数据报来携带一部分的载荷。

16位标识:用于区分是否为同一个数据报的载荷。用一个传输层的数据报拆分后的IP数据报具有相同的数值标识。

3位标志:但只有两位有效。其中一位DF表示是否拆包了。还有一位MF ,表示数据报片是否结束。当MF为1时,表示“还有分片”,为0时,表示这已经是最后一个了。

13位片偏移:表示组的包之间的先后关系。

TTL: 一个数据包,没经过一个路由器TTL数值就会-1。TTL的初始值一般为32/64,当TTL为0时,该数据报就要被丢弃了。防止,数据报在互联网中无限的兜圈子,而消耗网络资源,或者IP地址无法找到。

8位协议:表示在传输层使用那个协议。

16位首部校验和:只校验首部。

二、IP地址

IP地址的表示方式:点分十进制。例如:192.168.0.1。4字节表示。0-255,可以表示42亿94万的IP地址。

IP地址分为2类:

(1)私有IP/局域网IP: 10.*,172.16.*-172.31.*,192.168.*,这些范围的IP地址为私有IP

(2)公网IP/广域网IP  :除私有IP其余对公网IP。

Win+R->cmd+ipconfig->

一般自己的

1、IP协议如何进行地址管理

(1)动态分配IP地址,给上网的设备分配IP地址,同时,同一个MAC地址的设备,每次接入互联网中,得到的IP地址不一定相同。

(2)NAT 机制(网络地址映射)

(3)使用IPv6(16个字节表示)

2.网段划分

IP地址可以划分为两部分:网络号+主机号

同一个网段内,主机之间具有相同的网络号,但主机号不能相同。

相邻网段,网络号不同。

例如:

一般路由器都有2个IP地址,一个是LAN口IP:局域网私有IP

一个是WAN口IP,可以是局域网IP,也可以是公网IP。

路由器LAN口连接的主机,都从属于当前路由器的子网中。不同的路由器,子网IP其实都是一样的。


通过设置主机号和网络号,可以保证在相互连接的网络中,每台主机的IP地址都不相同。

可以引入一个子网掩码来区分主机号和网络号。

假设网络号为18位,则子网掩码的前18位为1,后14位为0.子网掩码为255.255.192.0。当IP地址与子网掩码相与后,得到的数据就是网络号。

例如:

IP地址 140.252.20.68
子网掩码 255.255.255.0
网络号 140.252.20.0
子网地址范围 140.252.20.-140.252.20.255

IP地址可以自己划分,也可以系统分配。例如:DHCP就会自动分配IP地址。

3.特殊的IP地址

(1)127.*表示本机环回测试,表示本机自己,通常是127.0.0.1;

(2)将IP地址的主机地址全部设为0,就成了网络号,表示整个局域网。

(3)将IP地址的主机地址全部设为1,就成了广播地址。局域网中所有人都能收到。

这三个地址,不能分配给某个主机。

4.之前的IP地址划分

由于浪费了很多的IP地址,所以该分配方法已经被摒弃。

三、路径选择

           路由的过程是通过一跳一跳的方式进行选择。对于该数据要发向哪里,最主要的依据就是路由表。如果路由表中可以查询到发向哪,直接转发,否则发向一个默认的接口。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-05-09 11:08:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-09 11:08:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-09 11:08:06       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-09 11:08:06       20 阅读

热门阅读

  1. C#读sqlite数据库

    2024-05-09 11:08:06       11 阅读
  2. (二)JVM实战——jvm实战之运行时数据区详解

    2024-05-09 11:08:06       14 阅读
  3. vue3项目 文件组成

    2024-05-09 11:08:06       10 阅读
  4. 为什么C++11还要复杂的提出右值引用?

    2024-05-09 11:08:06       11 阅读
  5. C语言内存泄漏查找

    2024-05-09 11:08:06       10 阅读
  6. CentOS常见命令深度解析:从基础到进阶

    2024-05-09 11:08:06       13 阅读