1.IP即网际协议
TCP/IP的心脏是互联网层。这一层主要由IP和ICMP两个协议组成。
1.IP相当于OSI参考模型中的第三层
网络层的主要作用是“实现终端节点之间的通信”。这种终端节点之间的通信也叫“点对点通信”。
2.IP基础知识
IP大致分为三大作用模块,它们是IP寻址、路由(最终节点为止的转发)以及IP分包与组包。
1.IP地址属于网络层地址
IP地址用于在“连接到网络中的所有主机中识别出进行通信的目标地址”。因此,在TCP/IP通信中所有主机或路由器必须设定自己的IP地址。
不论一台主机与哪种数据链路连接,其IP地址的形式都保持不变。以太网、无线局域网、PPP等,都不会改变IP地址的形式。
2.路由控制
路由控制是指将分组数据发送到最终目标地址的功能。即使网络非常复杂,也可以通过路由控制确定到达目标地址的通路。
3.数据链路的抽象化
IP是实现多个数据链路之间通信的协议。数据链路根据种类的不同各有特点。对这些不同数据链路的相异特性进行抽象化也是IP的重要作用之一。不同数据链路有个最大的区别,就是它们各自的最大传输单位不同。
4.IP属于面向无连接型
IP面向无连接。即在发包之前,不需要建立与对端目标地址之间的连接。上层如果遇到需要发送IP的数据,该数据会立即被压缩成IP包发送出去。
3.IP地址的基础知识
在用TCP/IP通信时,用IP地址识别主机和路由器。为了保证正常通信。有必要为每个设备配置正确的IP地址。在互联网通信中,全世界都必须设定正确的IP地址。否则,根本无法实现正常的通信。
1.IP地址的定义
IP地址由32位正整数来表示。TCP/IP通信要求将这样的IP地址分配给每一个参与通信的主机。IP地址在计算机内部以二进制方式被处理。
实际上,IP地址并非是根据主机台数来配置的,而是每一台主机上的每一块网卡都得设置IP地址。通常一块网卡只设置一个IP地址,其实一块网卡也可以配置多个IP地址。此外,一台路由器通常都会配置两个以上的网卡。因此可以设置两个以上的IP地址。
2.IP地址由网络和主机两部分标识组成
3.IP地址的分类
IP地址分为四个级别,分别为A类、B类、C类、D类。它根据IP地址中从第1位到第4位的比特列对其网络标识和主机标识进行区分。
4.广播地址
广播地址用于在同一链路中相互连接的主机之间发送数据是将IP地址中的主机地址部分全部设置为1,就成为了广播地址。
5.IP多播
多播用于将包发送给特定组内的所有主机。由于其直接使用IP协议,因此也不存在可靠传输。
多播使用D类地址。因此,如果从首位开始到第4位是“1110”,就可以认为是多播地址。而剩下的28位可以成为多播的组编号。
4.路由控制
发送数据包时所使用的地址是网络层的地址,即IP地址。然而仅仅有IP地址还不足以实现将数据包发送到对端目标地址,在数据发送过程中还需要类似于“指明路由器或主机”的信息,以便真正发往目标地址。保存这种信息的就是路由控制表。
该路由控制表的形成方式有两种:一种是管理员手动设置,另一种是路由器与其他路由器相互交换信息时自动刷新。前者也叫静态路由控制,而后者叫做动态路由控制。为了让动态路由及时刷新路由表,在网络上互连的路由器之间必须设置好路由协议,保证正常读取路由控制信息。
1.IP地址和路由控制
路由控制表中记录着网络地址与下一步应该发送至路由器的地址,在发送IP包时,首先要确定IP包首部中的目标地址,再从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将IP包转发给相应的下一个路由器。如果路由器控制表中存在多条相同网络地址的记录,就选择一个最为吻合的网络地址。所谓吻合是指相同位数最多的意思。
5.IP分割处理与再构成处理
1.数据链路不同,MTU则相异
每种数据链路的最大传输单元(MTU)都不尽相同。每种数据链路的MTU之所以不同,是因为每个不同类型的数据链路的使用目的不同。使用目的不同,可承载的MTU也就不同。鉴于IP属于数据链路上一层,它必须不受限于不同数据链路的MTU。
2.IP报文的分片与重组
任何一台主机都有必要对IP分片进行相应的处理。分片往往在网络上遇到比较大的报文无法一下子发送出去时才会进行处理。
经过分片之后的IP数据报在被重组的时候,只能由目标主机进行。路由器虽然能做分片但不会进行重组。
3.路径MTU发现
分片机制也有它的不足。首先,路由器的处理负荷加重。其次,在分片处理中,一旦某个片段丢失,则会造成整个IP数据报作废。
为了应对以上问题,产生了一种新的技术“路径MTU发现”。所谓路径MTU是指发送端主机到接收端主机之间不需要分片时最大MTU的大小。即路径中存在的所有数据链路中最小的MTU。而路径MTU发现从发送主机按照路径MTU的大小将数据报分片后进行发送。进行路径MTU发送,就可以避免在中途的路由器上进行分片处理,也可以在TCP中发送更大的包。
6.IPv6
1.IPv6的必要性
IPv6是为了根本解决IPv4地址耗尽的问题而被标准化的网际协议。IPv4的地址长度为4个8位字节,即32比特。而IPv6的地址长度则是原来的4倍,即128比特,一般写成8个16位字节。
从IPv4切换到IPv6极其耗时,需要将网络中所有主机和路由器的IP地址进行重新设置。当互联网广泛普及后,替换所有IP地址会是更为艰巨的任务。
2.IPv6的特点
- IP地址的扩大与路由控制表的聚合
IP地址依然适应互联网分层构造,分配与其地址相适应的IP地址,尽可能避免路由器膨大。 - 性能提升
包首部长度采用固定的值,不再采用首部检验码。简化首部结构,减轻路由器负荷。路由器不再做分片处理。 - 支持即插即用功能
即使没有DHCP服务器也可以实现自动分配IP地址。 - 采用认证和加密
应对伪造IP地址的网络安全功能以及防止线路窃听的功能。 - 多播、Mobile IP成为扩展功能
多播和Mobile IP被定义为IPv6的扩展功能。
3.IPv6中IP地址的标记方法
一般人们将128比特IP地址以每16比特为一组,每组用冒号(“:”)隔开进行标记。而且如果出现连续的0时还可以将这些0省略,并用两个冒号(“: :”)隔开。但是,一个IP地址中只允许出现一次两个连续的冒号。
4.IPv6地址的结构
在互联网通信中,使用一种全局的单播地址。它是互联网中唯一的一个地址,不需要正式分配IP地址。
5.全局单播地址
全局单播地址是指世界上唯一的一个地址。它是互联网通信以及各个域内部通信中最为常用的一个IPv6地址。
6.链路本地单播地址
链路本地单播地址是指同一个数据链路内唯一的地址。它用于不经过路由器,在同一个链路中的通信。通常接口ID保存64比特版的MAC地址。
7.唯一本地地址
唯一本地地址是不进行互联网通信时所使用的地址。
8.IPv6分段处理
IPv6的分片处理只在作为起点的发送端主机上进行,路由器不参与分片。这也是为了减少路由器的负荷,提高网速。
7.IPv4首部
通过IP进行通信时,需要在数据的前面加上IP首部信息。IP首部中包含着用于IP协议进行发包控制时所有的必要信息。版本号
由4比特构成,表示标识IP首部的版本号。首部长度
由4比特构成,表明IP首部的大小,单位为4字节。-
区分服务
由8比特构成,用来表明服务质量。
总长度
表示IP首部与数据部分合起来的总字节数。该字段长16比特。标识
由16比特构成,用于分片重组。同一个分片的标识值相同,不同分片的标识值不同。通常,每发送一个IP包,它的值也逐渐递增。此外,即使ID相同,如果目标地址、源地址或协议不同的话,也会被认为是不同的分片。-
标志
由3比特构成,表示包被分片的相关信息。
片位移
由13比特构成,用来标识被分片的每一个分段相对于原始位置的数据。第一个分片对应的值为0。生存时间(TTL:Time To Live)
由8比特构成,它最初的意思是以秒为单位记录当前包在网络上应该生存的期限。然而,在实际中它是指可以中转多少个路由器的意思。每经过一个路由器,TTL会减少1,直到变成0则丢失该包。协议
由8比特构成,表示IP首部的下一个首部隶属于哪个协议。首部校验和
由16比特构成,也叫IP首部校验和。该字段只校验数据报的首部,不校验数据部分。它主要用来确保IP数据报不被破坏。校验和的计算过程,首先要将该校验和的所有位置设置为0,然后以16比特为单位划分IP首部,并用1补数计算所有16位字的和。最后将所得到这个和的1补数赋给首部校验和字段。源地址
由32比特构成,表示发送端IP地址。目标地址
由32比特构成,表示接收端IP地址。可选项
长度可变,通常只在进行实验或诊断时使用。填充
也称作填补物。在有可选项的情况下,首部长度可能不是32比特的整数倍。为此。通过向字段填充0,调整为32比特的整数倍。数据
存入数据。将IP上层协议的首部也作为数据进行处理。
8.IPv6首部格式
IPv6中为了减轻路由器的负担,省略了首部校验和字段。因此路由器不再需要计算校验和,从而提高了包的转发效率。
版本
由4比特构成。通信量
由8比特构成。流标号
由20比特构成,准备用于服务质量控制。有效荷载长度(Payload Length)
有效荷载是指包的数据部分。IPv4的TL(Total Length)是指包括首部在内的所有长度。然而IPv6中这个Payload Length不包括首部,只表示数据部分的长度。由于IPv6的可选项是连接IPv6首部的数据,因此当有可选项时,此处包含可选项数据的所有长度就是Playload Length。下一个首部
相当于IPv4中的协议字段。由8比特构成。通常表示IP的上一层协议时TCP或UDP。不过在有IPv6扩展首部的情况下,该字段表示后面第一个扩展首部的协议类型。跳数限制
由8比特构成。与IPv4中的TTL意思相同。数据每经过一次路由器就减1,减到0则丢弃数据。源地址
由128比特构成。表示发送端IP地址。目标地址
由128比特构成。表示接收端IP地址。-
IPv6扩展
IPv6的首部长度固定,无法将可选项加入其中。取而代之的是通过扩展首部对功能进行了扩展。
IPv6的扩展首部可以是任意长度。扩展首部当中还可以扩展首部协议以及下一个扩展首部字段。