网络是我们工程师的基础技能之一, 毕竟没有网络我们什么也干不了! 从各大公司的招聘要求上看,网络也是重点的考核部分. 今天就和大家一起复习下(还)大学里的课程(欠下的债)! TCP/IP协议簇的IP协议.
网络的设计大佬们想出了分层的设计,将各个功能分开,交付给不同的层,这样的好处是便于更新和维护(IPv6的到来并没有使整个网络重新设计),也便于我们的学习和理解.下面是各个版本的网络体系的结构图:
让我们明确下各层的工作职责(以五层协议为例):
在理解了网络模型和各层直接的配合之后,下面进入今天的正题,网际协议(IP).
该节主要理解IP协议给我们提供的功能有哪些,说白了就是它能干嘛.
为路由寻址提供方便, 从路由表结构可以看出.
任何一个协议都可以由语法,语义和同步三部分组成.
同步,对事件顺序的详细说明.
也就是定义了使用IP协议进行交流的法则.
IPv4是IP协议的第4个版本,就是我们现在使用的.下面从多个方面了解下该版本.
网络上的主机都需要一个IP地址,这样才能知道彼此的位置.IPv4地址由32bit构成,常使用点分十进制表示(192.168.1.1).
IP地址的分类就是把所有IP划分为若干类别, 每一类都由固定长度的字段组成.分别为网络号和主机号.下面是各类地址组成示意图:
C类的地址有24位的网络号,最前面的3位固定为1 1 0.192.0.0.0的网络地址也是不使用的,最小的C类地址为192.0.1.0
总结如下:
分类的好处:
先看下IP数据报的基本格式:
可以看到IP数据报包含了首部和数据部分. 其中首部包含固定的20字节和可变的部分. 下面是各部分的解释:
标志(Flag), 占3位, 目前只有2位有意义
IPv6的出现是解决IPv4资源枯竭的问题.其仍然支持无连接的传送, 但传送的是PDU分组,而不是IPv4的数据报.
IPv6的地址是128bit,在可预见的未来是够用的.但和IPv4版本并不兼容, 若使用IPv4版本的主机A和使用IPv6版本的主机B之间通信是需要特殊处理的,在后面会介绍方法.
IPv6的地址采用冒号十六进制记法 , 8组4个16进制数字,中间使用冒号隔开.例如:
6845:8C64:FFFF:FFFF:0:1180:9000:FFFF
IPv6数据报由两大部分组成, 基本首部和有效载荷.有效载荷运行有0个或多个扩展首部.
可以看到,IPv6的首部是固定的40字节,和IPv4不同;在组成上也有很大区别,下面看下各部分的意思.
下一首部, 占8位.相当于IPv4的协议字段或可选字段.
网络如此庞大,从IPv4向IPv6的变换不可能一蹴而就.若要在两个版本的协议下通信,有下面的2个方法
简单的说就是一个主机能够理解两个版本的内容,这样主机也要有2个版本对应的IP地址.具有双协议栈的主机, 可以通过DNS系统知道目的主机使用的协议版本.
下面是两台使用IPv6的主机通信示意图,它们之间需要通过IPv4网络, 在必要的时候经过双协议栈的主机进行协议的转换,当然转换的时候有些信息可能丢失,这也是不可避免的.
隧道技术的原理是,在IPv6的数据需要进入IPv4网络时,将IPv6的数据报(准确的说是PDU)当成IPv4数据报的数据部分,使用IPv4版本传输,在离开IPv4网络时在此组装成IPv6的数据,发往目的地.下面是一个示意图:
关于IP协议,还有很多可以谈的地方, 这里就不再深入了,读完希望你能有一个”明镜一样”的感觉。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞2
添加新评论0 条评论