第七讲网络体系结构--TCP/IP协议模型一、TCP/IP参考模型众所周知,ARPANET是国际互联网的前身。它的主要目的是为了应付战时的需要,希望一旦受到部分破坏,其他部分仍然能够工作,当时已经实现了异种机互连,而且数据传输方式也多种多样。最初,它的网络连接方式只有租用线路一种,后来随着卫星等通信手段的加盟,最初的协议出现了问题。因此,一种灵活的、可靠的、能够对异种网络实现无缝连接的体系结构出现了,它就是TCP/IP参考模型。如图2-4所示,TCP/IP模型包含了一族网络协议,TCP和IP是其中最重要的两个协议。TCP/IP参考模型中的各个协议在RFC文档中都有详细的定义。RFC的全称是InternetRequestForComments,主要是关于国际互联网协议标准以及建议草案等的介绍,它由两千多个较为独立的文档组成,目前数量还在不断增加。这些文档有些是建议,有些是对早期文档的补充,有些已经形成了标准。TCPUDPSMTP以太网DNSFTPTELNETFDDIX.25ATMIPRARPARP图2-4TCP/IP参考模型示意图应用层网络接口层传输层互连层TCP/IP也是一种分层协议,这一点与OSI协议层次有些类似,但是并不完全相同。TCP/IP大约包含近100个非专有的协议,通过这些协议,可以高效和可靠地实现计算机系统之间的互连。TCP/IP协议簇中的核心协议主要有:•传输控制协议(TCP)。•用户数据报协议(UDP)。•网际协议(IP)。对主要协议起补充作用的协议有五个,它们是通过TCP/IP提供的五个应用服务:•文件传输协议(FTP)。•远程登录协议(TELNET)。•简单邮件传输协议(SMTP)。•域名服务(DNS)。•简单网络管理协议(SNMP)和远程网络监测(RMON)。1、网络接口层网络接口层(Host-to-networkLayer),也有翻译成主机—网络层的。在TCP/IP参考模型中并没有详细定义这一层的功能,只是指出通信主机必须采用某种协议连接到网络上,并且能够传输网络数据分组。具体使用那种协议,在本层里并没有规定。实际上根据主机与网络拓扑结构的不同,局域网基本上采用了802系列的协议,如802.3以太网协议、802.5令牌环网协议;广域网较常采用的协议有帧中继、X.25等。2、互联层互连层(InternetLayer)的主要功能是负责在互连网上传输数据分组。互连层与OSI参考模型的网络层相对应,相当于OSI参考模型中网络层的无连接网络服务。互连层是TCP/IP参考模型中最重要的一层,它是通信的枢纽:从底层来的数据包要由它来选择继续传给其他网络结点或是直接交给传输层对从传输层来的数据包,要负责按照数据分组的格式填充报头,选择发送路径,并交由相应的线路发送出去。在互连层,主要定义了互连协议(IP)以及数据分组的格式。它的主要功能是路由选择和拥塞控制。另外,本层还定义了地址解析协议ARP和反向地址解析协议RARP以及ICMP协议。互联层的协议互联层的主要协议——IP。本层提供无连接的传输服务(不保证送达,不保序)。本层的主要功能是寻找一条能够把数据报送到目的地的路径。互联层的PDU称为IP数据报;ICMP(InternetControlMessageProtocol)提供控制和传递消息的功能;ARP(AddressResolutionProtocol)为已知的IP地址确定相应的MAC地址;RARP(ReverseAddressResolutionProtocol)根据MAC地址确定相应的IP地址。应用层传输层网络接口网际层●IP●ICMP●ARP●RARPTCP/IP网际层的四个主要协议TCPUDP617IP传输层网际层IP数据报的协议域确定目的端的上层协议网际协议(IP)IP的基本功能是提供数据传输、包编址、包寻径、分段和简单的包错误检测。通过IP编址约定,可以成功地将数据传输和路由到正确的网络或者子网。每个网络结点具有一个32位的IP地址,它和48位的MAC地址一起协作,完成网络通信。该地址不但标识了一个既定的网络,而且还指明了是该网络上的哪个结点(在后面会进行详细的阐述)。尽管在设计上并没有和OSI兼容,但是事实上IP工作在OSI模型的第三层--网络层,它具有第三层的路由功能特征。IP也是一种无连接的协议,因为其主要任务是提供网络到网络的寻址以及路由信息,当信息包从一个网络到达另外一个网络时,改变包的大小,例如,从一个以太网到FDDI,或者相反。IP包图IP包头由如下的域(或者称之为字段)组成:•版本:该字段包含的是IP的版本号。当前,IP的版本为4(Ipv4),该版本形成于80年代早期,在许多网络上使用的都是该版本的IP协议。IP版本6(IPv6)是一个新出现的标准,它主要面向Internet和多媒体。•总长度:该字段用以指示整个IP包的长度,最长为65535个字节。•标识符:当包在不同的网络之间进行传输时,IP可以将包从一种尺寸转换为另外一种尺寸。例如,以太网包的长度范围为64到1518个字节,而FDDI包最大可以为4472个字节,16Mbps的令牌环包在长度上可以达到17800个字节。IP可以将包传输到不同类型的网络,在包尺寸不匹配时通过分段操作做到正确传输,例如可以把一个FDDI包进行分段,使分段后的包可以满足以太网上1518个字节的包长度限制。当IP对包进行分段的时候,它将给所有的段分配一组编号,然后将这些编号放入标识符字段,保证分段不会被错误地进行重组。•IP包头长度(IHL):IP包头最短为20个字节,但是其长度是可变的,具体长度取决于选项字段的长度。•服务类型(TOS):该域指示的是包内容的优先权或者优先级。路由协议(例如OSPF等)可以根据该域的值按照代价进行计算后确定发送该包的路径类型。例如,一个正常的数据包和一个多媒体包在吞吐率上的要求是不相同的。TOS规定了一系列的优先级,根据TOS域中不同位置上的比特值,将优先级别分为了常规、低延迟、高吞吐率、代价最小和高可靠性等。例如,如果指示的是常规路由,那么可能选择一个10Mbps的路径,而不管在到达目的结点之前需要经过多少个结点。如果指示的是代价最小而且要求具有较高的吞吐率,则需要选择100Mbps并且经过的路由器个数最少的那条路径。•标志:标志和分段一起被用来传递信息,例如,对当前的包不能进行分段(当该包从一个以太网发送到另外一个以太网时),或者(当一个包被分段后)用以指示在一系列的包片段中,最后一个片段是否发出了。•段偏移量:段偏移量中包含的信息指示的是在一个分段组序列中如何将各片段重新连接起来。•生命周期(TTL):该字段包含的信息可以防止一个包在网络中无限地循环转发下去。TTL值的意义是一个包可以经历的最大周转时间(s)。该包经过的每一个路由器都会检查该字段中的值,当TTL的值为0的时候,该包将被丢弃。路由器的时候,该路由器将减少TTL中的值,减少的值取决于路由器或者根据由网络管理员设置的值。•协议:该字段用以指示在IP包中封装的是哪一个协议,TCP还是UDP。•校验和:该校验和是一个16位的循环冗余校验码,其值等于IP头内每一个字段中包含的所有值的和。IP校验和的计算方法和TCP校验和的计算方法相同,使用的都是布尔取补的计算方法,但是,在计算中不包含数据报中负载数据字段(TCP段)中的值。校验和用于确定IP头在传输中没有发生错误。IP包所经过的每个路由器都会检查该校验和的值,就像接收结点所做的那样。当一个包被一个路由器检查的时候,校验和将被更新,因为其TTL字段中的值发生了变化。•源地址:这是一个网络地址,指的是发送该包的设备的网络地址。•目标地址:该字段中包含的也是网络地址,但指的是接收结点的网络地址。•选项:可以和IP一起使用的选项有多个。例如,可以输入创建该包的时间,对于军队和政府的数据可以实现特殊的安全。•填充:因为IP头的长度必须能够被32整除,所以当没有足够的数据可以填满所分配的区域时,需要用填充符填满选项字段。IP包中的负载数据其实就是TCP(或者对于完全的无连接服务,使用的是UDP而不是TCP)头和应用数据。•IP地址IP网络中每台主机都必须有一个惟一的IP地址;IP地址是一个逻辑地址;(与MAC地址比较一下)因特网上的IP地址具有全球唯一性;32位,4个字节,常用点分的十进制标记法:如00001010000000100000000000000001记为10.2.0.1IP地址划分为五类:A-E类,常用的为A、B、C类注:D类地址为组播地址,E类地址为将来使用的保留地址。A类地址A类地址:允许27个网络,每个网络允许224-2个主机;0网络号主机号7bits24bitsA类:A类地址的网络范围:0~127,0和127保留,所以实际使用的只是1~126,共126个A类网络;A类地址的每个网络的主机范围:0.0.0~255.255.255,主机号全0即0.0.0属于该网络的网络地址,主机号全1即255.255.255属于该网络的广播地址,所以实际能使用的主机地址是0.0.1~255.255.254,即224-2个主机,大约1600万台,所以单个A类地址构成的网络是非常巨大的;A类地址的范围:1.0.0.0~126.255.255.2550xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx保留的IP地址00...000000...000011...111111...1111本机本网中的主机局域网中的广播对指定网络的广播回路00...00主机号1111...1111网络号127任意值以下这些IP地址具有特殊的含义:一般来说,主机号部分为全“1”的IP地址保留用作广播地址;主机号部分为全“0”的IP地址保留用作网络地址。0000...0000网络号网络地址B类地址B类地址:允许214个网络,每个网络允许216-2个主机;10网络号主机号14bits16bitsB类:B类地址的网络范围:128.0~191.255,共214个B类网络;B类地址的每个网络的主机范围:0.0~255.255,主机号全0即0.0属于该网络的网络地址,主机号全1即255.255属于该网络的广播地址,所以实际能使用的主机地址是0.1~255.254,即216-2个主机,大约65000台;B类地址的范围:128.0.0.0~191.255.255.25510xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxxC类地址C类地址:允许221个网络,每个网络允许28-2个主机;110网络号主机号21bits8bitsC类:C类地址的网络范围:192.0.0~223.255.255,共221个C类网络,大约200万个;C类地址的每个网络的主机范围:0~255,主机号全0即0属于该网络的网络地址,主机号全1即255属于该网络的广播地址,所以实际能使用的主机地址是1~254,即28-2个主机,即254台,所以单个C类地址构成的局域网络大小是比较合适的;C类地址的范围:192.0.0.0~223.255.255.255110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxxD类和E类地址D类地址E类地址1110组播地址28bitsD类:1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx即224.0.0.0~239.255.255.25511110组播地址27bitsE类:11110xxx.xxxxxxxx.xxxxxxxx.xxxxxxxx即240.0.0.0~247.255.255.255私有地址规定:只能用于内联网A10.0.0.0-10.255.255.255B169.254.0.0-169.254.255.255172.16.0.0–172.31.255.255C192.168.0.0–192.168.255.255IP地址分类A类B类C类0001117bits24bits14bits16bits网络号主机号网络号主机号21bits8