- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IP协议是TCPIP协议族中的核心协议所有的TCP
第三章 IP协议
3.1 IP地址
IP协议是TCP/IP协议族中的核心协议。所有的TCP、UDP、ICMP、IGMP数据都是以IP数据报格式传输。IP协议为高层提供不可靠、无连接的数据报通信。
IP协议提供的不可靠服务是指它不能保证IP数据报能成功地到达目的地。IP协议仅提供尽可能好的服务。如果发生错误,例如某个路由器暂时用尽了缓冲区,IP协议有一个简单的错误处理算法:丢弃数据报,然后向该数据报的源地址对应的主机发送ICMP报文。任何要求的可靠性必须由上层来提供。
无连接是指IP协议并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的,IP数据报可以不按发送顺序接收。
网络中的每个独立主机的每个接口必须有一个唯一的Internet 地址,也称为IP地址。对于IPv4,IP地址长度为32位。IP地址按照层次结构划分成五类,如图3-1所示。
图3-1 IP地址分类
32位的IP地址通常写成点分的四个十进制数,其中每个十进制整数对应一个字节,这种表示方法称为“点分十进制表示法(Dotted decimal notation)”。例如,某个系统是一个C类地址,它可以表示为。
区分各类地址的最简单方法是检查地址的第一个十进制数。表3-1列出了各类地址的起止范围。
对于网络中的一些专用设备,例如路由器,它具有多个接口,其中每一个接口都对应一个对立的IP地址。
表3-1 各类IP地址的范围
类型 范围 A 到55 B 到55 C 到55 D 到55 E 到55
由于Internet网络中每个接口具有一个唯一的IP地址,因此必须有一个管理机构来分配IP地址,这个机构就是互连网络信息中心(Internet Network Information Centre),简称InterNIC。InterNIC只分配网络号,主机号的分配由本地的网络管理员负责。事实上,InterNIC由三部分组成:注册服务()、目录和数据服务()和信息服务()。
按照通信方式来分类,IP地址分为三类:单播地址(目的地址为单个主机)、广播地址(目的地址为指定网络上的所有主机)和多播地址(目的地址为同一组中的所有主机)。后面章节将分别讨论广播和多播通信的细节。
3.2 IP报文格式
IP数据报的格式如图11-3所示。如果不含有选项字段,IP报头长度为20字节。图3-2中IP报头,最高位在左边,记为0bit;最低位在右边,记为31bit。
4个字节的32bit值以下面的次序传输:首先是0—7bit,其次是8—15bit,然后是16—23bit,最后是24—31bit。这种传输次序称作big endian字节序。由于TCP/IP报头中所有的二进制整数在网络中传输时都必须按照这种次序,因此又把它称作网络字节序。以其它形式存储二进制整数的机器,如little endian格式,在传输数据之前必须把报头转换成网络字节序。
图3-2 IP数据报格式及报头中的各个字段
版本号。目前IP协议的版本号为4,因此也称为IPv4。随着Internet网络的发展,出现了新版的IP协议,称为IPv6。
报头长度。报头长度指的是报头占32bit字的数量,包括任选项。由于它是一个4比特字段,因此报头最长为60个字节。对于一般数据报(没有任何任选项),该字段的值为5,即报头长度为20字节。
服务类型。服务类型(TOS)字段包括一个3比特的优先权子字段,4比特的TOS子字段和1比特未用位但必须置0。4比特的TOS分别表示:最小延迟、最大吞吐量、最高可靠性和最小费用。4比特只能将其中1位置1。如果所有4比特均为0,则表示一般的服务。RFC1340描述了所有的标准应用如何设置这些服务类型。RFC1349则对RFC1340进行了修正,更加详细地描述了TOS的特性。表3-2列出了对不同的网络应用建议的TOS值。
表3-2 不同网络应用对应的TOS值
应用 最小延迟 最大吞吐量 最高可靠性 最小费用 16进制值 Telnet/Rlogin 1 0 0 0 0x10 FTP
控制
数据
任意块数据
1
0
0
0
1
1
0
0
0
0
0
0
0x10
0x08
0x08 TFTP 1 0 0 0 0x10 SMTP
命令阶段
数据阶段
1
0
0
1
0
0
0
0
0x10
0x08 DNS
UDP查询
TCP查询
区域传输
1
0
0
0
0
1
0
0
0
0
0
0
0x10
0x00
0x08 ICMP
差错
查询
任何IGP
0
0
0
0
0
0
0
0
1
0
0
0
0x00
0x00
0x04 SNMP 0 0 1 0 0x04 BOOTP 0 0 0 0 0x00 NNT
文档评论(0)