TCP/IP--网际协议IP

本篇结构:

  • 前言
  • IP地址

一、前言

网际协议IP是TCP/IP协议中最重要的两个协议之一,也是最重要的互联网标准协议之一。与ip协议配套的协议有:

  • 地址解析协议ARP(Address Resolution Protocol)
  • 网际控制报文协议ICMP(Internet Control Message Protocol)
  • 网际组管理协议IGMP(Internet Group Management Protocol)
  • 逆地址解析协议RARP(Reverse Address Resolution Protocol)(已被淘汰)

上图显示了网际协议IP同其三个配套协议的关系,它们都属于TCP/IP协议中的网络层。ARP在最下面,因为IP要经常使用这个协议。ICMP和IGMP在最上面,因为它们要使用IP协议,其报文作为IP数据报的数据部分。

二、IP地址

2.1、什么是IP

整个互联网是一个单一的、抽象的网络。IP地址就是给互联网的每一台主机(路由器)的每一个接口分配的一个在全世界范围内唯一32位标识符。IP地址现在是由互联网名字和数字分配机构ICANN进行分配。

2.2、IP地址的表示

IP地址是一个32位的二进制标识符(10000000000010110000001100011111),这样的表示对我们来说可读性很低,为了提高可读性,往往把32位的IP地址分为4段,每段8位,中间插入空格(10000000 00001011 00000011 00011111),这只是显示方便,计算机中并没有真实转变,为了更利于我们的记忆和识别,往往用等效的十进制数表示每段,并且每段之间加上一个点(128.11.3.31)。这是点分十进制记法。

2.3、分类的IP地址

分类的IP地址是指将固定的IP地址划分为若干个固定的类,每一类都有两个固定长度的字段组成。
IP地址::={<网络号>,<主机号>} (::=意为“定义为”)
1.其中第一个字段是网络号,标志着主机(路由器)所连接的网络,网络号是全网唯一的;
2.第二个字段是主机号,标志网络号所指的网络内的主机(路由器)。
分类的IP地址根据网络号所占比特位个数不同,分为5类:A类、B类、C类、D类、E类,其中A、B、C类为单播地址,D类为多播地址,E类为保留地址。

2.4、划分IP的原因

把IP地址分类,是这样考虑的。各种网络差异很大,有些网络拥有很多主机,有些网络拥有的主机相对较少,把IP地址划分为A类、B类、C类能更好的满足需求,当某个单位申请了一个IP地址时,实际是获得了同样网络号的一个IP地址块,其中的各台主机号则由单位自行分配。

2.5、常用的3类IP地址

1.A类IP地址

  • 网络号

A类地址的网络号字段占1个字节,但前面的1位(0)已经固定,只剩下7位可以进行分配,即可指派的网络号是126个(即2^7-2)。
减去2是因为:
网络号字段为全0的IP地址是个保留地址,意思是“本网络”;
网络号为127(即01111111)保留作为本地软件环回测试(loopback test)本主机的进程之间的通信只用。
若主机发送一个目的地址为环回地址(例如 127.0.0.1)的IP数据报,则本主机中的协议软件就处理数据报中的数据,而不会把数据报发送到任何网络。目的地址为环回地址的IP数据报永远不会出现在任何网络上,因为网络号为127的地址根本不是一个网络地址。

  • 主机号

A类地址的主机号占3个字节,因此每一个A类网络中的最大主机数是2^24-2,即16777214。
减去2是因为:
全0的主机号字段表示该IP地址是“本主机”所连接到的单个网络地址(例如,一主机的IP地址为5.6.7.8,则该主机所在的网络地址就是5.0.0.0)。
全1的主机号字段表示该IP地址是“所有的”,即该网络上的所有主机。

2.B类地址

  • 网络号

B类地址的网络号字段占2个字节,但前面的2位(1 0)已经固定,只剩下14位可以进行分配。
B类网络地址128.0.0.0是不指派的,而可以指派的B类最小网络地址是128.1.0.0(128.0.0.0是保留地址)。因此B类地址可指派的网络数是2^14-1,即16383。

  • 主机号

B类地址的主机号占2个字节,每一个网络上的最大主机数是2^16-2,即65534,这里需要减2是因为要扣除全0和全1的主机号。
整个B类地址空间共约2^30个地址,占有整个IP地址空间的25%。

3.C类IP地址

  • 网络号

C类地址的网络号字段占3个字节,但前面的3位(1 1 0)已经固定,只剩下21位可以进行分配。
C类网络地址192.0.0.0是不指派的,而可以指派的C类最小网络地址是192.0.1.0。因此B类地址可指派的网络数是2^21-1,即2097151。

  • 主机号

C类地址的每一个网络上的最大主机数是2^8-2,即254,这里需要减2是因为要扣除全0和全1的主机号。

2.6、IPv4私有地址空间

人们对IPv4单播地址空间的某些地址块进行了预留,并将其指定为私有地址。私有地址空间专为不与公网(Internet)相连的网络而预留。RFC 1918将下列地址块定义为IPv4私有地址:

10.0.0.0~10.255.255.255;
172.16.0.0~172.31.255.255;
192.168.0.0~192.168.255.255。
RFC 1700载有已预留及已分配(Internet相关)参数的通用信息,包括已预留的IP地址信息[1]。使用网络地址转换(Network Address Translation,NAT)技术,启用了IPv4私有地址空间的私有网络仍然可以连接到公网(Internet)。

2.7、IP数据报的格式

IP数据报的格式能够说明IP协议具有什么功能。下图是IP数据报的完整格式。


  • 版本

占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。

  • 首部长度

占4位,可表示的最大十进制数值是15,请注意,首部长度字段所表示数的单位是32字(1个32位字长是4字节),因此,首部长度字段的最小值是5(即0101),相当于IP首部长度为5×4=20字节,而当首部长度为1111时(即十进制15),即达到60个字节,当 IP 分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在 4字节的整数倍开始,这样在实现 IP协议时较为方便。首部长度限制为 60字节的缺点是有时可能不够用。这样做的目的是希望用户尽量减少开销。最常用的首部长度就是 20 字节 (即首部长度为 0101),这时不使用任何选项。


  • 区分服务

占8位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。只有在使用区分服务时,这个字段才起作用。

  • 总长度

总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,即最大传送单元 MTU (Maximum Transfer Unit)。当一个数据报封装成链路层的帧时,此数据报的总长度 (即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。若传送的数据报长度超过MTU,就需把过长的数据报做分片处理。

  • 标识

占 16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段。但这个“标识”并不是序号,因为 IP是无连接的服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的 MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

  • 标志(flag)

占3位,但目前只有2位有意义。
标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。
标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。只有当DF=0时才允许分片。


  • 片偏移

占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。

  • 生存时间

占 8位,生存时间字段常用的英文缩写是TTL (Time To Live),其表明数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜围子,因而白白消耗网络资源。最初的设计是以秒作为 TTL的单位。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于 1 秒,就把TTL值减 1。当 TTL值为 0时,就丢弃这个数据报。

  • 协议

占 8 位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。


  • 首部检验和

占 16位。这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,都要重新计算一下首都检验和 (一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。

  • 源地址

占32位。

  • 目的地址

占32位。

  • P数据报首部的可变部分

IP首部的可变部分就是一个可选字段。选项字段用来支持排错、测量以及安全等措施,内容很丰富。此字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。某些选项项目只需要1个字节,它只包括1个字节的选项代码。但还有些选项需要多个字节,这些选项一个个拼接起来,中间不需要有分隔符,最后用全0的填充字段补齐成为4字节的整数倍。

增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。新的IP版本IPv6就将IP数据报的首部长度做成固定的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容

  • 网络层简介 1. 概念 为解决经由多条链路的交付问题,从而设计了网络层。其主要负责主机到主机的交付,并且在分组经过...
    顾慎为阅读 3,078评论 0 0
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,034评论 6 174
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,051评论 0 8
  • 3.1 引言 IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报...
    张芳涛阅读 825评论 0 3
  • 地址解析协议ARP 物理这一级,主机和路由器是用物理地址来区别的。物理地址是一个本地地址,管辖范围是本地网络,所以...
    顾慎为阅读 1,057评论 0 1