1、11.TCP/IP1.TCP/IP概述概述2.IP2.IP协议及协议及IPIP地址地址3.TCP3.TCP协议协议4.UDP4.UDP协议协议目录目录21.1 TCP/IP的产生背景及特点的产生背景及特点1 TCP/IP概述概述TCP/IPTCP/IP的产生背景:的产生背景:TCP/IP TCP/IP 始于始于 1969 1969 年,也就是美国国防部年,也就是美国国防部(DoD)(DoD)委任高级资源计委任高级资源计划机构网络划机构网络(ARPANET)(ARPANET)的时间。的时间。TCP/IPTCP/IP是指一整套数据通信协议是指一整套数据通信协议,其名字是由这些协议中的两个协议组成的
2、其名字是由这些协议中的两个协议组成的,即传输控制协议(即传输控制协议(TCPTCP)和网间协议(和网间协议(IPIP)。)。虽然还有很多其他协议,但是虽然还有很多其他协议,但是TCPTCP和和IPIP显然是两显然是两个最重要的协议个最重要的协议 TCP/IP的特点:的特点:开放式协议标准开放式协议标准 与物理网络硬件无关与物理网络硬件无关 通用的寻址方案通用的寻址方案各种标准化的高级协议各种标准化的高级协议31 TCP/IP概述概述1.2 TCP/IP协议体系协议体系 TCP/IP参考模型参考模型网络接口层:网络接口层:也称为数据链路层,它是也称为数据链路层,它是 TCP/IP TCP/IP
3、的最底层的最底层。互联网层互联网层:也称:也称IPIP层,该层把分组封装到层,该层把分组封装到IPIP数据报中,填入数据报的首部,使用数据报中,填入数据报的首部,使用路由算法来选择数据报的传输途径。然后把数据报交给下面的网络接口层中的对应路由算法来选择数据报的传输途径。然后把数据报交给下面的网络接口层中的对应网络接口模块。网络接口模块。传输层:其传输层:其功能是使源端主机和目标端主机上的对等实体可以进行会话。分为功能是使源端主机和目标端主机上的对等实体可以进行会话。分为TCPTCP和和UDPUDP协议。协议。应用层:应用层:将将OSIOSI参考模型中的会话层和表示层的功能合并到应用层实现。应用
4、层面参考模型中的会话层和表示层的功能合并到应用层实现。应用层面向不同的网络应用引入了不同的应用层协议向不同的网络应用引入了不同的应用层协议。4备注:备注:网络接口层网络接口层它只是要求能够提供给其上层它只是要求能够提供给其上层-网络层一个访问接口,以便在其上传递网络层一个访问接口,以便在其上传递IP分组。由于这一分组。由于这一层次未被定义,所以其具体的实现方法将随着网络类型的不同而不同。层次未被定义,所以其具体的实现方法将随着网络类型的不同而不同。互联网层互联网层它接受来自传输层的请求,传输某个具有目的地址信息的分组。该层把分组封装到它接受来自传输层的请求,传输某个具有目的地址信息的分组。该层
5、把分组封装到 IP 数数据报中,填入数据报的首部(也称为报头),使用路由算法来选择是直接把数据报发送据报中,填入数据报的首部(也称为报头),使用路由算法来选择是直接把数据报发送到目标机还是把数据报发送给路由器,然后把数据报交给下面的网络接口层中的对应网到目标机还是把数据报发送给路由器,然后把数据报交给下面的网络接口层中的对应网络接口模块。该层还有处理接收到的数据报,检验其正确性,使用路由算法来决定对数络接口模块。该层还有处理接收到的数据报,检验其正确性,使用路由算法来决定对数据报是否在本地进行处理还是继续向前传送。据报是否在本地进行处理还是继续向前传送。传输层传输层TCP协议是一个面向连接的、
6、可靠的协议。它将一台主机发出的字节流无差错地发往互协议是一个面向连接的、可靠的协议。它将一台主机发出的字节流无差错地发往互联网上的其他主机。在发送端,它负责把上层传送下来的字节流分成报文段并传递给下联网上的其他主机。在发送端,它负责把上层传送下来的字节流分成报文段并传递给下层。在接收端,它负责把收到的报文进行重组后递交给上层。层。在接收端,它负责把收到的报文进行重组后递交给上层。TCP协议还要处理端到端协议还要处理端到端的流量控制,以避免缓慢接收的接收方没有足够的缓冲区接收发送方发送的大量数据。的流量控制,以避免缓慢接收的接收方没有足够的缓冲区接收发送方发送的大量数据。UDP协议是一个不可靠的
7、、无连接协议,主要适用于不需要对报文进行排序和流量控制协议是一个不可靠的、无连接协议,主要适用于不需要对报文进行排序和流量控制的场合。的场合。应用层应用层其中,有基于其中,有基于TCP协议的,如文件传输协议(协议的,如文件传输协议(File Transfer Protocol,FTP)、)、虚拟终虚拟终端协议(端协议(TELNET)、)、超文本链接协议(超文本链接协议(Hyper Text Transfer Protocol,HTTP),简单邮简单邮件传输协议件传输协议(Simple Mail Transport Protocol,smtp);也有基于也有基于UDP协议的,如网络文协议的,如网
8、络文件系统(件系统(Network File System NFS)、简单网络管理协议(简单网络管理协议(Simple Network Management Protocol SNMP)、)、域名系统(域名系统(Domain Name Server DNS)以及简单文以及简单文件传输系统(件传输系统(The Trivial File Transfer Protocol TFTP)。)。5TCP/IP工作的特点工作的特点 层层封装层层封装应用层应用层应用数据应用数据IP包头包头传输头传输头应用消息(应用消息(Message)数据段(数据段(Data Segment)IP净荷净荷 IP报文(报文(
9、IP Packet)协议报文(协议报文(PDU)帧(帧(Frame)帧头帧头帧头帧头 实际发送的数据格式实际发送的数据格式6TCP/IP工作的特点工作的特点 发送和接收发送和接收应用层应用层应用数据应用数据传输头传输头IP净荷净荷IP包头包头帧净荷帧净荷帧头帧头帧尾帧尾应用层应用层应用数据应用数据 传输头传输头IP净荷净荷IP包头包头帧净荷帧净荷帧头帧头帧尾帧尾发送端发送端接收端接收端以太网以太网71 TCP/IP概述概述包:网络上传输的数据片段,也称分组。包:网络上传输的数据片段,也称分组。服务:指特定一层提供的功能。服务:指特定一层提供的功能。接口:是上下层次之间调用功能和传输数据的方法。
10、接口:是上下层次之间调用功能和传输数据的方法。协议:是对等层必须共同遵循的标准。协议:是对等层必须共同遵循的标准。寻址:是网络的核心概念。网络上的所有设备都给寻址:是网络的核心概念。网络上的所有设备都给定一个遵循标准格式的唯一标识,即设备的地址。定一个遵循标准格式的唯一标识,即设备的地址。1.3 TCP/IP常用概念介绍常用概念介绍8备注备注1.包包 包(包(packet)是网络上传输的数据片段,也称分组。在计算机网络上,用户数据要按照规定划分为大小适中的若干组,每个组加上包头构成一个包,是网络上传输的数据片段,也称分组。在计算机网络上,用户数据要按照规定划分为大小适中的若干组,每个组加上包头
11、构成一个包,这个过程称为封装(这个过程称为封装(encapsulation)。)。网络上使用包为单位传输的目的是为了更好地实现资源共享和检错、纠错。包是一种统称,在不同的协议不同网络上使用包为单位传输的目的是为了更好地实现资源共享和检错、纠错。包是一种统称,在不同的协议不同的层次,包有不同的名字,如的层次,包有不同的名字,如TCP/IP协议中,数据链路层的包叫帧(协议中,数据链路层的包叫帧(Frame),IP 层的包称为层的包称为 IP 数据报数据报,TCP层的包常称为层的包常称为TCP 报文等。应用程序自报文等。应用程序自己也可以设计自己的包类型,如在自己设计的己也可以设计自己的包类型,如在
12、自己设计的 socket 程序中使用包。程序中使用包。2.网络字节顺序网络字节顺序 由于不同体系结构的计算机存储数据的格式和顺序都不一样,要建立一个独立于任何特定厂家的机器结构或网络硬件的互联网,就必须定义一个数据由于不同体系结构的计算机存储数据的格式和顺序都不一样,要建立一个独立于任何特定厂家的机器结构或网络硬件的互联网,就必须定义一个数据的表示标准。例如,将一台计算机上的一个的表示标准。例如,将一台计算机上的一个32位的二进制整数发送到另一台计算机,由于不同的机器上存储整数的字节顺序可能不一样,如位的二进制整数发送到另一台计算机,由于不同的机器上存储整数的字节顺序可能不一样,如 Intel
13、 结结构的计算机存储整数是低地址低字节数,即最低存储器地址存放整数的低位字节(叫做小端机,构的计算机存储整数是低地址低字节数,即最低存储器地址存放整数的低位字节(叫做小端机,Little Endian),),而而 Sun Sparc 结构的计算机存储整结构的计算机存储整数是低地址高字节数,即最低存储器地址存放整数的高位字节(叫做大端机,数是低地址高字节数,即最低存储器地址存放整数的高位字节(叫做大端机,Big Endian)。)。因此,直接把数据按照恒定的顺序发送到另一台机器上因此,直接把数据按照恒定的顺序发送到另一台机器上时可能会改变数字的值。时可能会改变数字的值。为了解决字节顺序的问题,为
14、了解决字节顺序的问题,TCP/IP 协议定义了一种所有机器在互联网分组的二进制字段中必须使用的网络标准字节顺序(协议定义了一种所有机器在互联网分组的二进制字段中必须使用的网络标准字节顺序(network standard byte order):):必须首先发送整数中最高有效字节(同大端机)。因此,网络应用程序都要求遵循一个字节顺序转换规则:必须首先发送整数中最高有效字节(同大端机)。因此,网络应用程序都要求遵循一个字节顺序转换规则:“主机字节顺序主机字节顺序 网络字节顺网络字节顺序序 主机字节顺序主机字节顺序”,即发送方将主机字节顺序的整数转换为网络字节顺序然后发送出去,接收方收到数据后将网
15、络字节顺序的整数转换为自己的,即发送方将主机字节顺序的整数转换为网络字节顺序然后发送出去,接收方收到数据后将网络字节顺序的整数转换为自己的主机字节顺序然后处理。主机字节顺序然后处理。3.服务、接口、协议服务、接口、协议 服务、接口、协议是服务、接口、协议是 TCPIP体系结构中非常重要的概念体系结构中非常重要的概念,它们贯穿了整个参考模型的始终。它们贯穿了整个参考模型的始终。简单地讲,服务是指特定一层提供的功能。例如网络层提供网络间寻址的功能,我们就可以说它向它的上一层(即传输层)提供了网间寻址服务;反简单地讲,服务是指特定一层提供的功能。例如网络层提供网络间寻址的功能,我们就可以说它向它的上
16、一层(即传输层)提供了网间寻址服务;反之,也可以说传输层利用了网络层所提供的服务。之,也可以说传输层利用了网络层所提供的服务。接口是上下层次之间调用功能和传输数据的方法。它类似于程序设计中的函数调用,上层通过使用接口定义的方法来方便地使用下层提供的服务。接口是上下层次之间调用功能和传输数据的方法。它类似于程序设计中的函数调用,上层通过使用接口定义的方法来方便地使用下层提供的服务。协议是对等层必须共同遵循的标准。它定义包格式和它们的用途的规则集。大多数包都由包头和信息组成:包头常常包括诸如源和目的地址、包的长协议是对等层必须共同遵循的标准。它定义包格式和它们的用途的规则集。大多数包都由包头和信息
17、组成:包头常常包括诸如源和目的地址、包的长度和类型指示符等信息;信息部分可以是原始数据,也可以包含另一个包。一个协议则规范了交换的包的格式、信息的正确顺序以及可能需要采取的度和类型指示符等信息;信息部分可以是原始数据,也可以包含另一个包。一个协议则规范了交换的包的格式、信息的正确顺序以及可能需要采取的附加措施。附加措施。网络协议是使计算机能够通信的标准。典型的协议规定网络上的计算机如何彼此识别、数据在传输中应采取何种格式、信息一旦到达最终目的地时应网络协议是使计算机能够通信的标准。典型的协议规定网络上的计算机如何彼此识别、数据在传输中应采取何种格式、信息一旦到达最终目的地时应如何处理等,协议还
18、规定对遗失的和被破坏的传输或数据包的处理过程。如何处理等,协议还规定对遗失的和被破坏的传输或数据包的处理过程。IPX、TCP/IP、DECnet、AppleTalk 都是网络协议的例子。都是网络协议的例子。4.寻址寻址 网络的核心概念是网络的核心概念是“寻址寻址”。在网络中,一个设备的地址是它的唯一标识。网络地址通常是由数字组成的,具有标准的、以定义好的格式。网络上的所。在网络中,一个设备的地址是它的唯一标识。网络地址通常是由数字组成的,具有标准的、以定义好的格式。网络上的所有设备都需要给定一个遵循标准格式的唯一标识,即设备的地址。在一个有路由能力的网络中,地址至少包括两个部分:网络部分(或域
19、部分)和节有设备都需要给定一个遵循标准格式的唯一标识,即设备的地址。在一个有路由能力的网络中,地址至少包括两个部分:网络部分(或域部分)和节点部分(或主机部分)。点部分(或主机部分)。5.端口号端口号TCP/UDP使用使用IP地址标识网上主机,使用端口号来标识应用进程,即地址标识网上主机,使用端口号来标识应用进程,即TCP/UDP用主机用主机IP地址和为应用进程分配的端口号来标识应用进程。端口号是地址和为应用进程分配的端口号来标识应用进程。端口号是16位的无符号整数,位的无符号整数,TCP的端口号和的端口号和UDP的端口号是两个独立的序列。尽管相互独立,如果的端口号是两个独立的序列。尽管相互独
20、立,如果TCP和和UDP同时提供某种知名服务,两个协议通常选择相同同时提供某种知名服务,两个协议通常选择相同的端口号。这纯粹是为了使用方便,而不是协议本身的要求。利用端口号,一台主机上多个进程可以同时使用的端口号。这纯粹是为了使用方便,而不是协议本身的要求。利用端口号,一台主机上多个进程可以同时使用TCP/UDP提供的传输服务,并且这种通提供的传输服务,并且这种通信是端到端的,它的数据由信是端到端的,它的数据由IP传递传递,但与但与IP数据报的传递路径无关。数据报的传递路径无关。端口号的分配是一个重要问题。有两种基本分配方式:第一种叫全局分配,这是一种集中控制方式,由一个公认的中央机构根据用户
21、需要进行统一分端口号的分配是一个重要问题。有两种基本分配方式:第一种叫全局分配,这是一种集中控制方式,由一个公认的中央机构根据用户需要进行统一分配,并将结果公布于众。第二种是本地分配,又称动态连接,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回一个本地唯一配,并将结果公布于众。第二种是本地分配,又称动态连接,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回一个本地唯一的端口号,进程再通过合适的系统调用的端口号,进程再通过合适的系统调用,将自己与该端口号联系起来(绑扎)。将自己与该端口号联系起来(绑扎)。TCP/UDP 端口号的分配综合了上述两种方式。端口号的分
22、配综合了上述两种方式。TCP/UDP 将端口号分为将端口号分为两部分,少量的作为保留端口,以全局方式分配给服务进程。因此,每一个标准服务器都拥有一个全局公认的端口(两部分,少量的作为保留端口,以全局方式分配给服务进程。因此,每一个标准服务器都拥有一个全局公认的端口(well-known port),),即使在不同即使在不同机器上,其端口号也相同。剩余的为自由端口,以本地方式进行分配。机器上,其端口号也相同。剩余的为自由端口,以本地方式进行分配。92 IP协议及协议及IP地址地址IP协议是协议是TCP/IP协议族中最为核心的协议协议族中最为核心的协议。所有的所有的TCP、UDP、ICMP及及IG
23、MP数据都数据都以以IP数据报格式传输。数据报格式传输。IP提供的不可靠、无连接的数据报传送服务使得各种各样的物理提供的不可靠、无连接的数据报传送服务使得各种各样的物理网络只要能够提供数据报传输就能够互联,这成为网络只要能够提供数据报传输就能够互联,这成为Internet在数年间就风靡全球的主要在数年间就风靡全球的主要原因。原因。不可靠(不可靠(unreliable):):是它不能保证是它不能保证IP数据报能成功地到达目的地。数据报能成功地到达目的地。IP仅提供尽最大仅提供尽最大努力投递(努力投递(best-effort delivery)的传输服务。如果发生某种错误时,如某个路由器暂的传输服
24、务。如果发生某种错误时,如某个路由器暂时用完了缓冲区,时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,然后发送有一个简单的错误处理算法:丢弃该数据报,然后发送 ICMP 消消息报给发送端。任何要求的可靠性必须由上层来提供(如息报给发送端。任何要求的可靠性必须由上层来提供(如TCP)。)。无连接(无连接(connectionless):):是是IP并不维护任何关于后续数据报的状态信息。每个数据并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。这也说明,报的处理是相互独立的。这也说明,IP数据报可以不按发送顺序接收。如果发送端向相数据报可以不按发送顺序接收。如果发送端
25、向相同的接收端发送两个连续的数据报(先是同的接收端发送两个连续的数据报(先是A,然后是然后是 B),),每个数据报都是独立地进行每个数据报都是独立地进行路由选择,可能选择不同的路线,因此路由选择,可能选择不同的路线,因此B可能在可能在 A 到达之前先到达。到达之前先到达。IP提供了三个重要的定义:提供了三个重要的定义:(1)IP 定义了在整个定义了在整个TCP/IP互联网上数据传输所用的基本单元,因此它规定了互互联网上数据传输所用的基本单元,因此它规定了互联网上传输数据的确切格式;联网上传输数据的确切格式;(2)IP 软件完成路由选择的功能,选择一个数据发送的路径;软件完成路由选择的功能,选择
26、一个数据发送的路径;(3)除了数据格式和路由选择的精确而正式的定义外,)除了数据格式和路由选择的精确而正式的定义外,IP还包括了一组嵌入了不可还包括了一组嵌入了不可靠分组投递思想的规则,这些规则指明了主机和路由器应该如何处理分组、和实际如何靠分组投递思想的规则,这些规则指明了主机和路由器应该如何处理分组、和实际如何发发 出错误信息以及在什么情况下可以放弃分组。出错误信息以及在什么情况下可以放弃分组。2.1 IP协议简介协议简介102 IP协议及协议及IP地址地址 IP IP地址简介地址简介 为了使连入为了使连入Internet的众多主机在通信时能够相互识别,的众多主机在通信时能够相互识别,In
27、ternet上的每一台上的每一台主机和路由器都分配有一个主机和路由器都分配有一个唯一的唯一的3232位地址。一个位地址。一个IPIP地址有地址有4 4个字节组成,字个字节组成,字节之间用句号分隔,每个字节表示为从节之间用句号分隔,每个字节表示为从 0 0 255 255 的十进制数(的十进制数(8 8位二进制数位二进制数最大为最大为 11111111 11111111,即十进制数,即十进制数255255),这个表示法称为),这个表示法称为IPIP地址的点分十进制地址的点分十进制表示法(表示法(dotted decimal notationdotted decimal notation)。)。2
28、.2 IP地址及子网地址及子网 IP IP地址分类地址分类 IPIP协议规定了协议规定了IPIP地址分为五类:地址分为五类:AE AE,其中其中 A A、B B、C C 三类是基本类型,三类是基本类型,具体分类见下图。具体分类见下图。11备注:备注:A类地址的最高位为类地址的最高位为“0”,其后,其后7位是网络号,位是网络号,24位用作主机号。位用作主机号。A 类地址共类地址共 126 个网,它个网,它用于少数主机数量众多的大型网络,主机数可以用于少数主机数量众多的大型网络,主机数可以167772162=16777214。B 类地址的最类地址的最2位为位为“10”,其后,其后14位为网络号,位
29、为网络号,16位用作主机号。位用作主机号。B 类地址共类地址共16384 个网,它用于中等规个网,它用于中等规模的网络,每个网络主机数最多为模的网络,每个网络主机数最多为 65536-2=65534。C 类地址的最高位为类地址的最高位为“110”,其后,其后21位为网络号,位为网络号,8位用作主机号。位用作主机号。C类地址共类地址共 2097152 个网,它用于小型网络,每个网络的个网,它用于小型网络,每个网络的主机数只能少于主机数只能少于 2562=254。D类地址为组播(类地址为组播(multicast)地址,它用一个地址代表一组主机。地址,它用一个地址代表一组主机。Multicast是到
30、一个是到一个“主机主机组组”的的IP数据报的传送,主机组是由零个或多个用同一数据报的传送,主机组是由零个或多个用同一D类类IP目的地址表示的主机集合。目的地址表示的主机集合。Multicast 数据报被传递到其目的主机组的所有成员,并且同常规单点传送的数据报被传递到其目的主机组的所有成员,并且同常规单点传送的 IP 数据报一样数据报一样可靠。主机组的成员是动态的,也就是说,主机可以在任何时间加入或离开主机组。主机组可靠。主机组的成员是动态的,也就是说,主机可以在任何时间加入或离开主机组。主机组中成员在位置上和数量上都没有限制,一个主机可以同时是一个以上主机组的成员。随着网中成员在位置上和数量上
31、都没有限制,一个主机可以同时是一个以上主机组的成员。随着网络视频传播越来越多,络视频传播越来越多,multicast 使用越来越广泛,将会在后面章节详细讲解。使用越来越广泛,将会在后面章节详细讲解。E类是实验性地址,保留给将来使用。类是实验性地址,保留给将来使用。在同一个互联网上,在同一个互联网上,A、B、C 类的类的 IP 地址必须唯一。另外,它还有如下规则:地址必须唯一。另外,它还有如下规则:A 类地址中以类地址中以 127 打头的保留作为内部回送地址(打头的保留作为内部回送地址(loopback),),不能用作公共网地址;不能用作公共网地址;网络号的第一个网络号的第一个8位组不能为位组不
32、能为0,网络号为,网络号为0解释为本网,网络号为解释为本网,网络号为0的主机地址表示该地址的主机地址表示该地址是本地主机;是本地主机;网络号的第一个网络号的第一个8位组不能为位组不能为 255,数字,数字 255 用作广播地址;用作广播地址;主机号部分各位不能为全主机号部分各位不能为全“1”,全,全“1”地址是广播地址,在网络号所指的网络上传播;地址是广播地址,在网络号所指的网络上传播;主机号部分各位不能为全主机号部分各位不能为全“0”,全,全“0”地址是指示本网络。地址是指示本网络。122 IP协议及协议及IP地址地址子网与子网掩码子网与子网掩码:在实际应用中,在实际应用中,IP 地址还可以
33、分层,将一个网络分为多个子网。在分层地址还可以分层,将一个网络分为多个子网。在分层时,不再把时,不再把 IP 地址看成由单纯的一个网络号和一个主机号组成,而是把地址看成由单纯的一个网络号和一个主机号组成,而是把主机号再分成一个子网号和一个主机号。例如一个主机号再分成一个子网号和一个主机号。例如一个B类网,可以把主机地类网,可以把主机地址中前址中前8位用来表示子网地址,后位用来表示子网地址,后 8 位留作主机地址,这种位留作主机地址,这种 B 类网类网IP地址地址格式如图所示。这样就允许有格式如图所示。这样就允许有254个子网,每个子网可以有个子网,每个子网可以有254台主机。台主机。2.2 I
34、P地址及子网地址及子网同一网络中的不同子网用子网掩码来划分,子网掩码(同一网络中的不同子网用子网掩码来划分,子网掩码(subnet mask)是网际地址中对应网络标识编码的各位是网际地址中对应网络标识编码的各位1,对应主机标识编码的各位为,对应主机标识编码的各位为0的一个四字节整数,也叫做子网屏蔽码。对于的一个四字节整数,也叫做子网屏蔽码。对于 A、B、C 三类网络来说三类网络来说,它们都有自己默认的掩码,即没有划分子网时的掩码,如下图所示。,它们都有自己默认的掩码,即没有划分子网时的掩码,如下图所示。13 IP IP基础基础-IP-IP地址地址一、一、IP地址特点地址特点1、Class A:
35、第一个数字第一个数字Classless,每个,每个IP地址必须和掩码一起才能准确地址必须和掩码一起才能准确地描述一个设备在网络上的位置。地描述一个设备在网络上的位置。16 IP IP基础基础-子网掩码(子网掩码(Subnet-Mask)Subnet-Mask)1、掩码的表示方法:除了上面提到的可以用原始的二进制表示、点分十进制表示外,、掩码的表示方法:除了上面提到的可以用原始的二进制表示、点分十进制表示外,还可以用长度表示,掩码长度还可以用长度表示,掩码长度=网络网络bit位数位数+子网子网bit位数。位数。例如:例如:A类地址默认子网掩码长类地址默认子网掩码长=8,一个,一个IP地址可表示为
36、地址可表示为10.110.10.8 255.0.0.0 或者或者10.110.10.8/8 B类地址默认子网掩码长类地址默认子网掩码长=16,一个,一个IP地址可以表示为地址可以表示为135.198.2.34 255.255.0.0 或者或者135.198.2.34/16 C类地址默认子网掩码长类地址默认子网掩码长=24,一个,一个IP地址可以表示为地址可以表示为198.24.10.2 255.255.255.0 或者或者198.24.10.2/24 上例中子网掩码长上例中子网掩码长=19 一个一个IP地址可以表示为地址可以表示为168.95.10.1 255.255.224.0 或者或者16
37、8.95.10.1/1917 IP IP基础基础-特殊特殊IPIP地址地址1、网络地址不能全为、网络地址不能全为0,全,全0代表代表“本网络本网络”,例如:,例如:0.0.0.27代表本网络上代表本网络上host-id=37的主机;网络地址全为的主机;网络地址全为1,作为广播用途保留。,作为广播用途保留。2、主机地址不能全为、主机地址不能全为0,全,全0代表网络号,例如:代表网络号,例如:203.74.205.0代表网络号为代表网络号为203.74.205.Z的网络。如果网络地址和主机地址都为的网络。如果网络地址和主机地址都为0代表本机,例如:代表本机,例如:DHCP开开始时,主机没有始时,主
38、机没有IP地址,其申请报文中主机地址,其申请报文中主机IP地址填写的为地址填写的为0.0.0.03、主机地址不能全为、主机地址不能全为1,全,全1代表该网络的广播地址。代表该网络的广播地址。4、127.x.y.z代表主机环回地址代表主机环回地址182 IP协议及协议及IP地址地址2.3 IP数据包报文结构数据包报文结构版本字段:版本字段:4 4位,位,IPIP协议的版本号,目前为协议的版本号,目前为4 4。报头长:报头长:4 4位位,IPIP数据数据报的报头长度(以报的报头长度(以3232位为单位位为单位)。服务类型字段:服务类型字段:8 8位,用于规定优先级,传送速率,吞吐量和可靠性等参数。
39、位,用于规定优先级,传送速率,吞吐量和可靠性等参数。总长度:总长度:1616位,包含位,包含IPIP头在内的数据单元的总长度(字节数)。头在内的数据单元的总长度(字节数)。标识符:标识符:1616位,标明一个数据报或分段的数据。位,标明一个数据报或分段的数据。标志:标志:3 3位位,数据报是否分段标志。数据报是否分段标志。分段偏移量字段:分段偏移量字段:如果一个数据报被分成如果一个数据报被分成2 2个以上的段,分段偏移量字段指出该段在被传送的初始数个以上的段,分段偏移量字段指出该段在被传送的初始数据报中的偏移量。因此,该字段指出一个段在整个数据报中的位置。据报中的偏移量。因此,该字段指出一个段
40、在整个数据报中的位置。生命期字段:生命期字段:8 8位,允许数据报在网间传输的存活时间位,允许数据报在网间传输的存活时间。协议字段:协议字段:8 8位,发送数据报的上层协议位,发送数据报的上层协议 。报头校验和:报头校验和:1616位,仅用于报头的检查。位,仅用于报头的检查。源地址和目的地址字段:每一个地址代表一个网络和网络中的一台主机。源地址和目的地址字段:每一个地址代表一个网络和网络中的一台主机。19备注:备注:版本字段版本字段版本字段有4位,用来标识创建数据报的IP协议的版本。目前的IP协议版本是4,今后将逐渐过渡到下一代IP协议IPV6头长与全长字段头长与全长字段头长(IHL)字段有4
41、位。该字段紧跟在版本号字段后,用32位为单位来指出头的长度。比较而言,全长字段指出数据报的长度,包括头和高层信息。由于该字段有16位,因此一个IP数据最多有216或65535字节。服务类型字段服务类型字段服务类型字段指明数据报将被如何处理。这个字段有8位,其中3位用来标识由发送者指定的优先权或重要程度。因此,该字段提供了IP数据报路由的优先权机制。全长全长包含IP头在内的数据单元的总长度(字节数)标识符与分段偏移量字段标识符与分段偏移量字段标识字段用来标明一个数据报或分段数据报。如果一个数据报被分成2个以上的段,分段偏移量字段指出该段在被传送的初始数据报中的偏移量。因此,该字段指出一个段在整个
42、数据报中的位置。该字段的值是整型,以8位字节为单位,可提供64位单位的偏移量。对安全设备来说,能识别出所有分段属于同一个数据报是非常重要的。生命期字段生命期字段生命期(TTL)字段定义了数据报可存在的最大期限,这个字段用来阻止被错误寻址的数据报在因特网或专用IP网络中无休止地游荡。由于确切的生存时间很难把握,该字段通常用跳跃站点数来度量,标志字段标志字段标志字段中有2位用于标明是如何分段的,第3位目前还没有使用。用于分段的2位中第1位用来实现直接分段控制机制,其值为0指明数据报已分段,值为1时指明数据报没有分段。第2位为0指明该分段是数据报的最后一个分段,为1指明后面还有分段。协议字段协议字段
43、协议字段指出用于创建数据报携带报文的高层协议。例如,其值为十进制6时,表示是TCP协议,值为十进制17时,表示是UDP协议。标志:占3比特,只用到低位的两个比特MF(MoreFragment)MF=1,后面还有分片的数据包MF=0,分片数据包的最后一个DF(DontFragment)DF=1,不允许分片DF=0,允许分片202 IP协议及协议及IP地址地址2.4 IP数据包选路数据包选路 IP路由选择主要完成以下这些功能:路由选择主要完成以下这些功能:搜索路由表,寻找能与目的搜索路由表,寻找能与目的IP地址完全匹配的表目地址完全匹配的表目。搜索路由表,寻找能与目的网络号相匹配的表目搜索路由表,
44、寻找能与目的网络号相匹配的表目。搜索路由表,寻找标为搜索路由表,寻找标为“默认(默认(default)”的表目的表目。完整主机地址匹配在网络号匹配之前执行。只有当它们都失败完整主机地址匹配在网络号匹配之前执行。只有当它们都失败后才选择默认路由。默认路由,以及下一站路由器发送的后才选择默认路由。默认路由,以及下一站路由器发送的ICMP间接报文(如果我们为数据报选择了错误的默认路由),是间接报文(如果我们为数据报选择了错误的默认路由),是IP路路由选择机制中功能强大的特性。为一个网络指定一个路由器,而由选择机制中功能强大的特性。为一个网络指定一个路由器,而不必为每个主机指定一个路由器,这是不必为每
45、个主机指定一个路由器,这是IP路由选择机制的另一个路由选择机制的另一个基本特性基本特性。21备注:备注:在一般的体制中,在一般的体制中,IP可以从可以从TCP、UDP、ICMP和和IGMP接收数据报(即在本地生成的数据报)接收数据报(即在本地生成的数据报)并进行发送,或者从一个网络接口接收数据报(待转发的数据报)并进行发送。并进行发送,或者从一个网络接口接收数据报(待转发的数据报)并进行发送。IP层在内存层在内存中有一个路由表。当收到一份数据报并进行发送时,它都要对该表搜索一次。当数据报来自中有一个路由表。当收到一份数据报并进行发送时,它都要对该表搜索一次。当数据报来自某个网络接口时,某个网络
46、接口时,IP首先检查目的首先检查目的IP地址是否为本机的地址是否为本机的IP地址之一或者地址之一或者IP广播地址。如果确广播地址。如果确实是这样,数据报就被送到由实是这样,数据报就被送到由IP首部协议字段所指定的协议模块进行处理。如果数据报的目首部协议字段所指定的协议模块进行处理。如果数据报的目的不是这些地址,那么的不是这些地址,那么(1)如果)如果IP层被设置为路由器的功能,那么就对数据报进行转发(也就是说,像下面对待发层被设置为路由器的功能,那么就对数据报进行转发(也就是说,像下面对待发出的数据报一样处理);出的数据报一样处理);(2)数据报被丢弃。)数据报被丢弃。路由表中的每一项都包含下
47、面这些信息:路由表中的每一项都包含下面这些信息:(1)目的目的IP地址。它既可以是一个完整的主机地址,也可以是一个网络地址,由该表目中的地址。它既可以是一个完整的主机地址,也可以是一个网络地址,由该表目中的标志字段来指定。主机地址有一个非标志字段来指定。主机地址有一个非0的主机号,以指定某一特定的主机,而网络地址中的主的主机号,以指定某一特定的主机,而网络地址中的主机号为机号为0,以指定网络中的所有主机(如以太网,令牌环网)。,以指定网络中的所有主机(如以太网,令牌环网)。(2)下一站(或下一跳)路由器(下一站(或下一跳)路由器(next-hoprouter)的的IP地址,或者有直接连接的网络
48、地址,或者有直接连接的网络IP地地址。下一站路由器是指一个在直接相连网络上的路由器,通过它可以转发数据报。下一站路址。下一站路由器是指一个在直接相连网络上的路由器,通过它可以转发数据报。下一站路由器不是最终的目的,但是它可以把传送给它的数据报转发到最终目的。由器不是最终的目的,但是它可以把传送给它的数据报转发到最终目的。(3)标志。其中一个标志指明目的标志。其中一个标志指明目的IP地址是网络地址还是主机地址,另一个标志指明下一站地址是网络地址还是主机地址,另一个标志指明下一站路由器是否为真正的下一站路由器,还是一个直接相连的接口路由器是否为真正的下一站路由器,还是一个直接相连的接口 (4)为数
49、据报的传输指定一个网络接口。为数据报的传输指定一个网络接口。IP路由选择是逐跳地(路由选择是逐跳地(hop-by-hop)进行的。进行的。IP并不知道到达任何目的的完整路径(当并不知道到达任何目的的完整路径(当然,除了那些与主机直接相连的目的)。所有的然,除了那些与主机直接相连的目的)。所有的IP路由选择只为数据报传输提供下一站路由路由选择只为数据报传输提供下一站路由器的器的IP地址。它假定下一站路由器比发送数据报的主机更接近目的,而且下一站路由器与该地址。它假定下一站路由器比发送数据报的主机更接近目的,而且下一站路由器与该主机是直接相连的。主机是直接相连的。22MTUMTU:网络最大传送单元
50、网络最大传送单元.不同类型的物理网对一个物理帧可传送的数据量规定不同的上不同类型的物理网对一个物理帧可传送的数据量规定不同的上界界.分片和重组:分片和重组:在在MTU 小的网络上,把大的数据报分成较小的单位。这种较小的单位叫小的网络上,把大的数据报分成较小的单位。这种较小的单位叫做数据报片或段(做数据报片或段(fragment),),划分数据报的过程叫做分片或分段(划分数据报的过程叫做分片或分段(fragmentation)。)。下图下图 表示了这样的一个需要分片的案例:网络表示了这样的一个需要分片的案例:网络1 和和3的的MTU为为1500,网络,网络2 的的MTU为为 620,当主机,当主