ip协议详解
虚拟互联网络
-
互联网络遇到的问题
- 简单网络拓扑图
- 复杂大型网络拓扑
- A 到 B的链路有很多条
-
虚拟互联网络概念
- 实际的计算机网络是错综复杂的
- 物理设备通过使用IP协议,屏蔽了物理网络之间的差异
- 当网络中的主机使用IP协议连接时,则无需关注网络细节(重点关注端到端的连接即可)
- IP协议使得复杂的网络变成一个虚拟链接的网络
- IP协议使得网络层可以屏蔽底层细节而专注网络层的数据转发
- IP协议解决了在虚拟网络中数据报传输路径的问题(IP协议提供了虚拟互联网的东西)
IP协议介绍
- MAC地址是每个设备的唯一身份证,在数据链路层只要是拥有MAC地址就可以进行数据的传输。MAC地址是使用48位来表示的,表示的时候使用的是16进制。
- 在网络层也有一个地址的概念,这个地址就是IP地址,IP地址是每个设备在网络上的唯一身份证,IP地址长度总共为32位,一般表示的时候我们采用
点分十进制
的形式表示的。 - MAC地址 与 IP地址的区别
- MAC地址是唯一且不可改变的,网卡从一个计算机拆下来装到另外一台计算机MAC地址是不会变的。
- IP地址对于网络层的设备来说是可变的,只要设备的网络环境发生变化,设备的IP就会发生变化。
- IP地址长度为32位,常分成4个8位
- IP地址常使用点分十进制来表示(0255.0255.0255.0255)
114.114.114.114
、1.1.1.1
、8.8.8.8
、255.255.255.255
、111.111.111.111
IP 地址的运算
- 使用32位一共可以表示多少个IP地址呢
- 2^32 = 4294961296(42亿个)
IP数据报
Quote
在计算机物理层,传输的是 010101011
这样的比特流。
对于数据链路层,传输的是 [[帧首部][帧数据][帧尾部]]
为粒度的东西
对于数据链路层中的 [帧数据]
其实就是 IP数据报
的内容
IP数据报
会分成 [[IP首部][IP数据报的数据]]
-
IP数据报中 [IP首部] 的图示
- 版本:占 4 位,指的是IP协议的版本,通信双方的版本必须一致,当前主流版本是4,即IPv4,也有IPv6。如果通行双方版本不一致则不能进行通信。
- 首部位长度:占 4 位,最大数值为 15,表示的是IP首部长度,单位是“32位字”(4个字节),也即是IP首部最大长度为60字节(15 * 4)。
- 总长度:占 16 位,最大数值为 65535,表示的是 IP 数据报总长度(IP首部 + IP数据)
- 注意:对于数据链路层传输的最大长度称之为MTU(数据链路层的最大传输单元),且 MTU 一般为1500个字节,而在当前规格中长度最大为65535的长度,那么这个长度是比 MTU 要求的长度要高的,如果在真正传输的过程中
总长度 > MTU
,那么数据链路层将会把IP协议进行分片。也就是把一个较长的数据报拆分成多个数据帧来进行传输。
- 注意:对于数据链路层传输的最大长度称之为MTU(数据链路层的最大传输单元),且 MTU 一般为1500个字节,而在当前规格中长度最大为65535的长度,那么这个长度是比 MTU 要求的长度要高的,如果在真正传输的过程中
- 标识:协议内部具体所使用的,无需关心
- 标志:只有2位在用,作用是标记这个IP报文是否需要分片
- 片偏移:如果IP报文的长度 > MTU,那么将进行对IP报文的分片,把一个IP报文拆分成多个数据帧,然后在数据链路中进行传输。因此,如果需要拆分的话,那么这里的13位片偏移将会用来记录当前的数据帧保存的是第几个偏移的IP数据
- TTL:占8位,表明IP数据报文在网络中的寿命,每经过一个设备TTL减一(不管是路由器还是计算机),当TTL=0时,网络设备必须丢弃该报文。TTL解决的问题是,当IP报文在网络中找不到终点的时候,避免这个IP数据在网络中无限的进行传输与消耗带宽的。
-
协议:占8位,表明IP数据所携带的具体数据是什么协议的(如:TCP、UDP等)
- 扩展:协议有很多,字段值会区分不同的协议
协议名 ICMP IGMP IP TCP UDP OSPF ... 字段值 1 2 4 6 17 89 ... -
首部校验和:占16位,校验IP首部是否有出错。接收方在接收了IP协议的报文之后,也会进行头部的校验,如果有出错的话直接丢弃掉。这就是首部校验和的作用。
- 源IP地址:占32位,发送数据报的IP地址
- 目的IP地址:占32位,数据报要到达物理设备的IP地址