1、第第2 2章章 TCP/IPTCP/IP2.1 OSI2.1 OSI七层模型七层模型 2.2 TCP/IP2.2 TCP/IP数据传输数据传输2.3 2.3 应用程序及工具应用程序及工具2.1.1 OSI2.1.1 OSI七层模型的产生七层模型的产生在计算机网络中,除了在计算机网络中,除了TCP/IPTCP/IP以外,还使用着由制造开发商开以外,还使用着由制造开发商开发的数量众多的协议。为了使不同协议的网络实现互联,协议的标发的数量众多的协议。为了使不同协议的网络实现互联,协议的标准化变得极为必要。因此,通过国际标准化组织准化变得极为必要。因此,通过国际标准化组织-ISO-ISO(Intern
2、ational Organaization for StandarizationInternational Organaization for Standarization),推动了),推动了网络体系标准化。网络体系标准化。OSIOSI参考模型的一个很重要特性就是它采用的是分层体系结构,参考模型的一个很重要特性就是它采用的是分层体系结构,OSIOSI参考模型共划分为七层。参考模型共划分为七层。2.1 OSI2.1 OSI七层模型七层模型下一页 返回总结起来,总结起来,OSIOSI七层参考模型具有以下优点:七层参考模型具有以下优点:简化了相关的网络操作。简化了相关的网络操作。提供即插即用的兼容性
3、和不同厂商之间的标准接口。提供即插即用的兼容性和不同厂商之间的标准接口。使各个厂商能够设计出具备互操作性的网络设备,加快数据使各个厂商能够设计出具备互操作性的网络设备,加快数据通信网络发展。通信网络发展。防止一个区域网络发生的变化移向另一个区域的网络,因此,防止一个区域网络发生的变化移向另一个区域的网络,因此,每一个区域的网络都能够单独快速升级。每一个区域的网络都能够单独快速升级。把复杂的网络问题分解成小的简单问题,易于学习和操作。把复杂的网络问题分解成小的简单问题,易于学习和操作。2.1 OSI2.1 OSI七层模型七层模型下一页 返回上一页2.1.2 OSI2.1.2 OSI模型层次结构及
4、各层功能模型层次结构及各层功能OSIOSI参考模型的七层分别是:第一层物理层(参考模型的七层分别是:第一层物理层(Physical Physical LayerLayer)、第二层数据链路层()、第二层数据链路层(Data Link LayerData Link Layer)、第三层网络层)、第三层网络层(Network LayerNetwork Layer)、第四层传输层()、第四层传输层(Transport LayerTransport Layer)、第五层)、第五层会话层(会话层(Session LayerSession Layer)、第六层表示层()、第六层表示层(Presentati
5、on LayerPresentation Layer)和第七层应用层(和第七层应用层(Application LayerApplication Layer),如),如图图2 2 1 1所示。所示。OSIOSI七层参考模型是建设和设计网络的核心,其每一层都完成推七层参考模型是建设和设计网络的核心,其每一层都完成推动数据通信的特定任务,即每一层都有特定的功能。下面详细介绍动数据通信的特定任务,即每一层都有特定的功能。下面详细介绍各层的功能。各层的功能。2.1 OSI2.1 OSI七层模型七层模型下一页 返回上一页1.1.物理层物理层物理层是物理层是OSIOSI七层参考模型的最底层或称为第一层。有一
6、点需要七层参考模型的最底层或称为第一层。有一点需要明确的是,物理层并不是指物理设备或物理媒体,而是有关物理设明确的是,物理层并不是指物理设备或物理媒体,而是有关物理设备通过物理媒体进行互联的描述和规定。物理层协议还定义了接口备通过物理媒体进行互联的描述和规定。物理层协议还定义了接口的的4 4个基本功能特性。个基本功能特性。2.1 OSI2.1 OSI七层模型七层模型下一页 返回上一页2.2.数据链路层数据链路层数据链路层是数据链路层是OSIOSI七层参考模型的第二层。它的传输单位是帧,七层参考模型的第二层。它的传输单位是帧,通常,帧由地址段、数据段、控制段、校验段等字段组成。通常,帧由地址段、
7、数据段、控制段、校验段等字段组成。图图2 2 2 2描述了一个简化的数据帧格式,数据帧的格式根据网络类型的不同描述了一个简化的数据帧格式,数据帧的格式根据网络类型的不同而不同。在局域网中有以太帧、令牌环网帧,在广域网中有而不同。在局域网中有以太帧、令牌环网帧,在广域网中有HDLCHDLC,PPPPPP等。等。2.1 OSI2.1 OSI七层模型七层模型下一页 返回上一页3.3.网络层网络层网络层,在数据链路层中讨论的是两台相邻的设备之间的通信。网络层,在数据链路层中讨论的是两台相邻的设备之间的通信。但是,实际中的两台设备之间可能相隔很远,它们之间的通路可能但是,实际中的两台设备之间可能相隔很远
8、,它们之间的通路可能要包括许多段链路,而数据链路层的协议不能解决由多条链路组成要包括许多段链路,而数据链路层的协议不能解决由多条链路组成的通路的数据传送问题。这些问题都是由第三层,即网络层来解决的通路的数据传送问题。这些问题都是由第三层,即网络层来解决的。的。2.1 OSI2.1 OSI七层模型七层模型下一页 返回上一页4.4.传输层传输层传输层的功能是保证在不同子网的两台设备间进行数据包可靠、传输层的功能是保证在不同子网的两台设备间进行数据包可靠、顺序、无错地传输。在传输层,数据传送的单位是段。传输层负责顺序、无错地传输。在传输层,数据传送的单位是段。传输层负责处理端对端通信,所谓端对端是指
9、从一个终端(主机)到另一个终处理端对端通信,所谓端对端是指从一个终端(主机)到另一个终端(主机),中间可以有一个或多个交换结点。端(主机),中间可以有一个或多个交换结点。图图2 2 4 4示意了传输示意了传输层提供端到端的服务,网络层、数据链路层和物理层完成端到端通层提供端到端的服务,网络层、数据链路层和物理层完成端到端通路的寻址和传输。路的寻址和传输。2.1 OSI2.1 OSI七层模型七层模型下一页 返回上一页5.5.会话层会话层会话层是利用传输层提供的端到端的服务,向表示层或会话用会话层是利用传输层提供的端到端的服务,向表示层或会话用户提供会话服务。会话层建立通信链接,保持会话过程通信链
10、接的户提供会话服务。会话层建立通信链接,保持会话过程通信链接的通畅,同步两个节点之间的对话,决定通信是否被中断以及通信中通畅,同步两个节点之间的对话,决定通信是否被中断以及通信中断时如何决定从何处重新发送。举例来说,某个用户登录到一个远断时如何决定从何处重新发送。举例来说,某个用户登录到一个远程系统,并与之交换信息。会话层管理这一进程,控制哪一方有权程系统,并与之交换信息。会话层管理这一进程,控制哪一方有权发送信息,哪一方必须接收信息,这其实是一种同步机制。发送信息,哪一方必须接收信息,这其实是一种同步机制。2.1 OSI2.1 OSI七层模型七层模型下一页 返回上一页6.6.表示层表示层表示
11、层就是将应用层的信息表示层就是将应用层的信息“表示表示”成一种格式,让对端设备成一种格式,让对端设备能够正确识别。它关注的是格式的转换,就如同是应用程序和网络能够正确识别。它关注的是格式的转换,就如同是应用程序和网络之间的翻译官。在表示层,数据将按照网络能识别的编码进行格式之间的翻译官。在表示层,数据将按照网络能识别的编码进行格式转换,由于不同的软件应用程序经常使用不同的数据格式编码,所转换,由于不同的软件应用程序经常使用不同的数据格式编码,所以数据格式转换是必需的。它可以确保数字和文本以接收方的表示以数据格式转换是必需的。它可以确保数字和文本以接收方的表示层可以阅读的格式发送。例如,在运行层
12、可以阅读的格式发送。例如,在运行Windows 98Windows 98的主机上向远端的主机上向远端的的IBMIBM大型机读取数据,由于大型机读取数据,由于IBMIBM大型机使用的是大型机使用的是EBCDICEBCDIC字符,而字符,而Windows98Windows98使用的是使用的是ASCIIASCII字符格式,如果没有翻译官的翻译,本要字符格式,如果没有翻译官的翻译,本要得到的是得到的是“good”good”,可在屏幕上看到的却是串乱码,如,可在屏幕上看到的却是串乱码,如图图2 2 5 5所示。所示。2.1 OSI2.1 OSI七层模型七层模型下一页 返回上一页7.7.应用层应用层应用层
13、是应用层是OSIOSI的最高层,它直接与用户和应用程序打交道,负责的最高层,它直接与用户和应用程序打交道,负责对软件提供接口以使程序能使用网络。这里的网络服务包括文件传对软件提供接口以使程序能使用网络。这里的网络服务包括文件传输、文件管理、电子邮件的消息处理等。必须强调的是应用层并不输、文件管理、电子邮件的消息处理等。必须强调的是应用层并不等同于一个应用程序。例如,在网络上发送电子邮件,你的请求就等同于一个应用程序。例如,在网络上发送电子邮件,你的请求就是通过应用层传输到网络的。是通过应用层传输到网络的。2.1 OSI2.1 OSI七层模型七层模型下一页 返回上一页2.1.3 2.1.3 层次
14、间的关系层次间的关系OSIOSI七层参考模型的每一层都具有清晰的特征。基本来说,第七七层参考模型的每一层都具有清晰的特征。基本来说,第七层至第四层处理数据源和数据目的地之间的端到端通信,而第三层层至第四层处理数据源和数据目的地之间的端到端通信,而第三层至第一层处理网络设备间的通信。另外,至第一层处理网络设备间的通信。另外,OSIOSI参考模型的七层也可以参考模型的七层也可以划分为两组:上层(第七层、第六层和第五层)和下层(第四层、划分为两组:上层(第七层、第六层和第五层)和下层(第四层、第三层、第二层和第一层)。第三层、第二层和第一层)。OSIOSI参考模型的上层处理应用程序问题,参考模型的上
15、层处理应用程序问题,并且通常只应用在软件上。最高层,即应用层是与终端用户最接近并且通常只应用在软件上。最高层,即应用层是与终端用户最接近的。的。OSIOSI模型的下层是处理数据传输的,物理层和数据链路层应用在模型的下层是处理数据传输的,物理层和数据链路层应用在硬件和软件上,最底层,即物理层是与物理网络媒介(比如电线)硬件和软件上,最底层,即物理层是与物理网络媒介(比如电线)最接近的,并且负责在媒介上发送数据。最接近的,并且负责在媒介上发送数据。2.1 OSI2.1 OSI七层模型七层模型下一页 返回上一页具体通信过程为:设左边的计算机为具体通信过程为:设左边的计算机为A A,右边的计算机为,右
16、边的计算机为B B,如,如果计算机果计算机A A上的应用程序要将信息发送到计算机上的应用程序要将信息发送到计算机B B的应用程序,则计的应用程序,则计算机算机A A中的应用程序需要将信息先发送到其应用层(第七层),然后中的应用程序需要将信息先发送到其应用层(第七层),然后此层将信息发送到表示层(第六层),表示层将数据转送到会话层此层将信息发送到表示层(第六层),表示层将数据转送到会话层(第五层),如此继续,直至物理层(第一层),在物理层,数据(第五层),如此继续,直至物理层(第一层),在物理层,数据被放置在物理网络媒介中并被发送至计算机被放置在物理网络媒介中并被发送至计算机B B;计算机;计算
17、机B B的物理层接的物理层接收来自物理媒介的数据,然后将信息向上发送至数据链路层(第二收来自物理媒介的数据,然后将信息向上发送至数据链路层(第二层),数据链路层再转送给网络层,依次继续,直到信息到达计算层),数据链路层再转送给网络层,依次继续,直到信息到达计算机机B B的应用层,最后,计算机的应用层,最后,计算机B B的应用层再将信息传送给应用程序接的应用层再将信息传送给应用程序接收端,从而完成通信过程。收端,从而完成通信过程。2.1 OSI2.1 OSI七层模型七层模型下一页 返回上一页在网络通信中,通过传输该层的在网络通信中,通过传输该层的PDUPDU到对方的同一层(对等层),到对方的同一
18、层(对等层),以实现通信。从逻辑上讲,对等层间的通信是两个设备的同一层之以实现通信。从逻辑上讲,对等层间的通信是两个设备的同一层之间的通信。物理上,每一层都只与自己相邻的上下两层直接通信,间的通信。物理上,每一层都只与自己相邻的上下两层直接通信,下层通过服务访问点(下层通过服务访问点(SAPSAP,Service Access PointService Access Point)为上一层提供)为上一层提供服务。服务。SAPSAP是指同一设备中相邻两层间的信息交换之处,如同常用的是指同一设备中相邻两层间的信息交换之处,如同常用的邮箱,邮箱就是邮局为用户提供信件服务的访问点,邮递员将信件邮箱,邮箱
19、就是邮局为用户提供信件服务的访问点,邮递员将信件放入邮箱,用户再通过邮箱(服务访问点)取回自己的信件。放入邮箱,用户再通过邮箱(服务访问点)取回自己的信件。2.1 OSI2.1 OSI七层模型七层模型下一页 返回上一页下面下面图图2 2 6 6和和图图2 2 7 7示意了两个设备之间是如何建立通信的。示意了两个设备之间是如何建立通信的。从图从图2 2 6 6可以看出,两个设备建立对等层的通信连接,即在各个对可以看出,两个设备建立对等层的通信连接,即在各个对等层间建立逻辑信道,对等层使用功能相同的协议实现对话。如主等层间建立逻辑信道,对等层使用功能相同的协议实现对话。如主机机A A的第二层不能和
20、对方的第三层直接通信。同时,同一层之间的不的第二层不能和对方的第三层直接通信。同时,同一层之间的不同协议也不能通信,比如主机同协议也不能通信,比如主机A A的的E-mailE-mail应用程序就不能和对方的应用程序就不能和对方的TelnetTelnet应用程序通信。图应用程序通信。图2 2 7 7示意了物理上两个设备间的数据流是示意了物理上两个设备间的数据流是通过物理传输线路进行传递的。通过物理传输线路进行传递的。2.1 OSI2.1 OSI七层模型七层模型下一页 返回上一页2.1.4 2.1.4 数据封装数据封装1.1.封装封装封装(封装(EncapsulationEncapsulation
21、)是指网络节点()是指网络节点(NodeNode)将要传送的数)将要传送的数据用待定的协议头打包来传送数据,有时候,也可能在数据尾部加据用待定的协议头打包来传送数据,有时候,也可能在数据尾部加上报文,这时候,也称为封装。上报文,这时候,也称为封装。OSIOSI七层模型的每一层都对数据进行七层模型的每一层都对数据进行封装,以保证数据能够正确无误地到达目的地,被终端主机理解及封装,以保证数据能够正确无误地到达目的地,被终端主机理解及处理。处理。2.1 OSI2.1 OSI七层模型七层模型下一页 返回上一页要理解封装是如何进行的,可以考察一下数据传输时是如何通要理解封装是如何进行的,可以考察一下数据
22、传输时是如何通过各层的。如过各层的。如图图2 2 8 8所示,当数据从源端发出后,它就会从应用层所示,当数据从源端发出后,它就会从应用层一直向下传递到达其他各层。对所交换的数据进行打包的方式以及一直向下传递到达其他各层。对所交换的数据进行打包的方式以及这些数据的流动方式都会随着每一层为终端用户所执行的网络服务这些数据的流动方式都会随着每一层为终端用户所执行的网络服务的变化而变化。的变化而变化。以电信号形式表示的数据,必须通过线缆传送到正确的目标计以电信号形式表示的数据,必须通过线缆传送到正确的目标计算机中,然后再转化为能够被接收端所能读取的最初形式。正因为算机中,然后再转化为能够被接收端所能读
23、取的最初形式。正因为如此,硬件、软件和协议的开发人员意识到实现网络通信的最有效如此,硬件、软件和协议的开发人员意识到实现网络通信的最有效的方式就是进行分层处理。的方式就是进行分层处理。2.1 OSI2.1 OSI七层模型七层模型下一页 返回上一页2.2.解封装解封装当远程设备顺序接收到一串比特时,远程设备的物理层把这些当远程设备顺序接收到一串比特时,远程设备的物理层把这些比特传送到数据链路层进行操作。数据链路层会执行如下工作:比特传送到数据链路层进行操作。数据链路层会执行如下工作:第第1 1步,检验该步,检验该MACMAC目的地址是否与工作站的地址相匹配,或者目的地址是否与工作站的地址相匹配,
24、或者是否为一个以太网广播地址。如果这两种情况都没有出现,就丢弃是否为一个以太网广播地址。如果这两种情况都没有出现,就丢弃该帧。该帧。第第2 2步,如果数据已经出错了,那么将它丢弃,而且数据链路层步,如果数据已经出错了,那么将它丢弃,而且数据链路层可能会要求重传数据。否则,数据链路层就读取并解释数据链路报可能会要求重传数据。否则,数据链路层就读取并解释数据链路报头上的控制信息。头上的控制信息。2.1 OSI2.1 OSI七层模型七层模型下一页 返回上一页第第3 3步,数据链路层剥离数据链路报头和报尾,然后根据数据链步,数据链路层剥离数据链路报头和报尾,然后根据数据链路报头上的控制信息把剩下的数据
25、向上传送到网络层。路报头上的控制信息把剩下的数据向上传送到网络层。这个过程称为解封装(这个过程称为解封装(de-encapsulationde-encapsulation),每一个后续层都),每一个后续层都会执行一个类似的解封装过程。可以把解封装过程看作为读取信封会执行一个类似的解封装过程。可以把解封装过程看作为读取信封上的地址来判断是否是给你的信,如果信上写的是你的地址,你就上的地址来判断是否是给你的信,如果信上写的是你的地址,你就可以从信封里取出信件。可以从信封里取出信件。2.1 OSI2.1 OSI七层模型七层模型返回上一页2.2.1 TCP/IP2.2.1 TCP/IP概述概述TCP/
26、IPTCP/IP的目的是为实现计算机之间数据传送提供方法,它为应的目的是为实现计算机之间数据传送提供方法,它为应用程序提供了把数据发送到网络上的方法,同时也为网络提供了把用程序提供了把数据发送到网络上的方法,同时也为网络提供了把数据分发给其他计算机或主机上应用程序的方法。数据分发给其他计算机或主机上应用程序的方法。TCP/IPTCP/IP被安装到世界上各种类型的计算机、操作系统以及网络被安装到世界上各种类型的计算机、操作系统以及网络设备中。设备中。当前的当前的TCP/IPTCP/IP是老版本。是老版本。IPIP协议第协议第4 4版(版(IPv4IPv4)在)在19811981年年9 9月标月标
27、准化。准化。19921992年,在年,在InternetInternet工程任务组(工程任务组(IETFIETF)的推动下,制定了)的推动下,制定了新一代的新一代的InternetInternet协议(协议(IPIP)标准,通常称为)标准,通常称为IPngIPng。IPngIPng现在被称现在被称为为IPIP协议第协议第6 6版(版(IPv6IPv6)。2.2 TCP/IP2.2 TCP/IP数据传输数据传输下一页 返回2.2.2 TCP/IP2.2.2 TCP/IP参考模型参考模型1.TCP/IP1.TCP/IP参考模型及与参考模型及与OSIOSI模型比较模型比较TCP/IPTCP/IP是发
28、展至今最成功的通信协议,它被用于构筑目前最大是发展至今最成功的通信协议,它被用于构筑目前最大的、开放的互联网络系统的、开放的互联网络系统InternetInternet。TCPTCP和和IPIP是两个独立且紧密结合是两个独立且紧密结合的协议,负责管理和引导数据报文在的协议,负责管理和引导数据报文在InternetInternet上的传输。二者使用上的传输。二者使用专门的报文头定义每个报文的内容。专门的报文头定义每个报文的内容。TCPTCP负责和远程计算机的连接;负责和远程计算机的连接;IPIP负责寻址,使报文被送到其该去的地方。负责寻址,使报文被送到其该去的地方。2.2 TCP/IP2.2 T
29、CP/IP数据传输数据传输下一页 返回上一页2.TCP/IP2.TCP/IP参考模型各层功能参考模型各层功能(1 1)应用层)应用层TCP/IPTCP/IP的高层协议设计成包含的高层协议设计成包含OSIOSI模型中的会话层、表示层和应模型中的会话层、表示层和应用层的功能。它的应用层能处理高层协议和有关表示、编码及会话用层的功能。它的应用层能处理高层协议和有关表示、编码及会话控制的问题。控制的问题。TCP/IPTCP/IP协议集把所有与应用层相关的功能整合为一层,协议集把所有与应用层相关的功能整合为一层,并且保证这一层的数据能够被下一层正确封装。并且保证这一层的数据能够被下一层正确封装。TCP/
30、IPTCP/IP协议集不仅协议集不仅描述了描述了InternetInternet层和传输层的技术规范(比如层和传输层的技术规范(比如IPIP协议和协议和TCPTCP协议),协议),还详细叙述了一些常用的应用层协议。还详细叙述了一些常用的应用层协议。2.2 TCP/IP2.2 TCP/IP数据传输数据传输下一页 返回上一页(2 2)传输层)传输层传输层提供从源主机到目的主机的传输服务。在端点(发送主传输层提供从源主机到目的主机的传输服务。在端点(发送主机和接收主机)之间建立逻辑连接。传输层负责分段和重组上层应机和接收主机)之间建立逻辑连接。传输层负责分段和重组上层应用程序发送的数据,并在端点之间
31、重组成同一数据流。传输层数据用程序发送的数据,并在端点之间重组成同一数据流。传输层数据流提供端到端的传输服务,也称为端到端的服务。流提供端到端的传输服务,也称为端到端的服务。2.2 TCP/IP2.2 TCP/IP数据传输数据传输下一页 返回上一页(3 3)网络层)网络层在在OSIOSI参考模型中,网络层使得上层协议不用关心网络中的具体参考模型中,网络层使得上层协议不用关心网络中的具体情况,网络层管理跨网络的连接。情况,网络层管理跨网络的连接。IPIP正式来说是作为正式来说是作为TCP/IPTCP/IP网络层,网络层,因为其在因为其在TCP/IPTCP/IP互联网中的重要性,所以一般也可以称为
32、互联网中的重要性,所以一般也可以称为TCP/IPTCP/IP模模型中的型中的InternetInternet层。通过层。通过TCP/IPTCP/IP协议集传输数据,所有的上层和底协议集传输数据,所有的上层和底层通信都需要通过层通信都需要通过IPIP协议。网络层的目的是利用相应的本层协议发协议。网络层的目的是利用相应的本层协议发送分组。决定最佳路径和分组交换都在这层完成。送分组。决定最佳路径和分组交换都在这层完成。2.2 TCP/IP2.2 TCP/IP数据传输数据传输下一页 返回上一页(4 4)数据链路层和物理层)数据链路层和物理层数据链路层和物理层一般也被整合成网络访问层,这一层主要数据链路
33、层和物理层一般也被整合成网络访问层,这一层主要参与在传输参与在传输IPIP分组时建立和网络介质的物理连接。这一层包括局域分组时建立和网络介质的物理连接。这一层包括局域网和广域网技术,以及网和广域网技术,以及OSIOSI参考模型中的物理层和数据链路层的内容。参考模型中的物理层和数据链路层的内容。网络访问层的功能包括网络访问层的功能包括IPIP地址与物理硬件地址的映射,以及将地址与物理硬件地址的映射,以及将IPIP分组封装成帧,基于不同硬件类型的网络接口,网络访问层定义分组封装成帧,基于不同硬件类型的网络接口,网络访问层定义了和物理介质的连接。网络访问层配置的一个典型例子是了和物理介质的连接。网络
34、访问层配置的一个典型例子是WindowsWindows系系统采用第三方的网络接口卡(统采用第三方的网络接口卡(NICNIC)。根据不同的)。根据不同的WindowsWindows版本,版本,2.2 TCP/IP2.2 TCP/IP数据传输数据传输下一页 返回上一页操作系统会自动检测操作系统会自动检测NICNIC,安装相应的驱动程序。如果使用一个,安装相应的驱动程序。如果使用一个版本较老的版本较老的WindowsWindows系统,用户必须使用指定的网卡驱动程序。网卡系统,用户必须使用指定的网卡驱动程序。网卡厂商一般在软盘或光盘中提供相应的驱动程序。厂商一般在软盘或光盘中提供相应的驱动程序。2.
35、2.3 TCP/IP2.2.3 TCP/IP协议栈协议栈TCP/IPTCP/IP协议栈包含一簇协议,分别对应各个不同的层次,它完协议栈包含一簇协议,分别对应各个不同的层次,它完成特定的功能和应用。下面对每一层中的对应的协议加以介绍,如成特定的功能和应用。下面对每一层中的对应的协议加以介绍,如图图2 2 12 12所示。所示。网络层的主要协议有网络层的主要协议有4 4个,即个,即IPIP协议、协议、ICMPICMP协议、协议、ARPARP协议和协议和RARPRARP协议。协议。2.2 TCP/IP2.2 TCP/IP数据传输数据传输下一页 返回上一页 IP IP协议是主要的一个网络层协议,提供无
36、连接,尽力而为地协议是主要的一个网络层协议,提供无连接,尽力而为地分组传送路由。它不关心分组的具体内容,只查找把分组发送到目分组传送路由。它不关心分组的具体内容,只查找把分组发送到目的地的路径。的地的路径。互联网控制报文协议互联网控制报文协议ICMPICMP(Internet Control Message Internet Control Message ProtocolProtocol)。在网络中,网关和主机用)。在网络中,网关和主机用ICMPICMP发送关于所发数据包的发送关于所发数据包的有关问题报告,如目的或端口不可达,或网络中出现拥塞等。有关问题报告,如目的或端口不可达,或网络中出现
37、拥塞等。地址解析协议地址解析协议ARPARP(Address Resolution ProtocolAddress Resolution Protocol)用来)用来将逻辑地址解析成物理地址。将逻辑地址解析成物理地址。反向地址解析协议反向地址解析协议RARPRARP(Reverse Address Resolution Reverse Address Resolution ProtocolProtocol)。通过)。通过RARPRARP广播,将物理地址解析成逻辑地址。广播,将物理地址解析成逻辑地址。2.2 TCP/IP2.2 TCP/IP数据传输数据传输下一页 返回上一页传输层的主要协议有传输
38、层的主要协议有TCPTCP协议和协议和UDPUDP(User Datagram ProtocolUser Datagram Protocol,用户数据报协议)协议。传输控制协议用户数据报协议)协议。传输控制协议TCPTCP是面向连接的协议,用三是面向连接的协议,用三次握手和滑动窗口机制来保证传输的可靠性和进行流量控制;用户次握手和滑动窗口机制来保证传输的可靠性和进行流量控制;用户数据报协议数据报协议UDPUDP是非面向连接的传输层协议。是非面向连接的传输层协议。应用层包含大量常用的应用程序,主要有超文本传输协议应用层包含大量常用的应用程序,主要有超文本传输协议HTTPHTTP(Hypertex
39、t Transfer ProtocolHypertext Transfer Protocol)、远程登录)、远程登录TelnetTelnet、文件传输协、文件传输协议议FTPFTP(File Transfer ProtocolFile Transfer Protocol)等。)等。2.2 TCP/IP2.2 TCP/IP数据传输数据传输下一页 返回上一页2.2.4 TCP/IP2.2.4 TCP/IP报文格式报文格式1.IP1.IP报文格式报文格式IPIP协议是协议是TCP/IPTCP/IP协议族中最为核心的协议。它提供不可靠、无协议族中最为核心的协议。它提供不可靠、无连接的服务,也即依赖其他
40、层的协议进行差错控制。在局域网环境连接的服务,也即依赖其他层的协议进行差错控制。在局域网环境中,中,IPIP协议往往被封装在以太网帧中传送,而所有的协议往往被封装在以太网帧中传送,而所有的TCPTCP,UDPUDP,ICMPICMP,IGMPIGMP数据都被封装在数据都被封装在IPIP数据报中传送,如数据报中传送,如图图2 2 13 13所示:所示:IPIP数据报头部的格式(数据报头部的格式(RFC 791RFC 791)如)如图图2 2 14 14所示。普通的所示。普通的IPIP数据包头部长度为数据包头部长度为20B20B(字节),不含选项字段。(字节),不含选项字段。2.2 TCP/IP2
41、.2 TCP/IP数据传输数据传输下一页 返回上一页2.TCP2.TCP分段格式分段格式TCPTCP是一种可靠的面向连接的字节流服务。源主机在传送数据前是一种可靠的面向连接的字节流服务。源主机在传送数据前需要先和目标主机建立连接。然后,在此连接上,被编号的数据段需要先和目标主机建立连接。然后,在此连接上,被编号的数据段按序收发。同时,要求对每个数据段进行确认,以此保证了可靠性。按序收发。同时,要求对每个数据段进行确认,以此保证了可靠性。如果在指定的时间内没有收到目标主机对所发数据段的确认,源主如果在指定的时间内没有收到目标主机对所发数据段的确认,源主机将再次发送该数据段。机将再次发送该数据段。
42、TCPTCP头部结构(头部结构(RFC 793RFC 793,13231323)如)如图图2 2 15 15所示。所示。2.2 TCP/IP2.2 TCP/IP数据传输数据传输下一页 返回上一页3.UDP3.UDP数据段格式数据段格式UDPUDP是一种不可靠的、无连接的数据报服务。源主机在传送数据是一种不可靠的、无连接的数据报服务。源主机在传送数据前不需要和目标主机建立连接。数据被冠以源端口号、目标端口号前不需要和目标主机建立连接。数据被冠以源端口号、目标端口号等等UDPUDP报头字段后直接发往目的主机。这时,每个数据段的可靠性依报头字段后直接发往目的主机。这时,每个数据段的可靠性依靠上层协议
43、来保证。在传送数据较少、较小的情况下,靠上层协议来保证。在传送数据较少、较小的情况下,UDPUDP比比TCPTCP更更加高效。加高效。UDPUDP头部结构(头部结构(RFC 793RFC 793,13231323)如)如图图2 2 16 16所示。所示。2.2 TCP/IP2.2 TCP/IP数据传输数据传输下一页 返回上一页4.4.套接字套接字在每个在每个TCPTCP,UDPUDP数据段中都包含源端口号和目标端口号字段。数据段中都包含源端口号和目标端口号字段。有时,把一个有时,把一个IPIP地址和一个端口号合称为一个套接字(地址和一个端口号合称为一个套接字(SocketSocket),),而
44、一个套接字对(而一个套接字对(Socket pairSocket pair)可以唯一地确定互联网络中每个)可以唯一地确定互联网络中每个TCPTCP连接的双方(客户连接的双方(客户IPIP地址、客户端口号、服务器地址、客户端口号、服务器IPIP地址、服务器地址、服务器端口号)。端口号)。如如图图2 2 17 17所示,是常见的一些协议和它们对应的服务端口号。所示,是常见的一些协议和它们对应的服务端口号。2.2 TCP/IP2.2 TCP/IP数据传输数据传输下一页 返回上一页2.2.5 TCP/IP2.2.5 TCP/IP数据封装数据封装TCP/IPTCP/IP协议栈与协议栈与OSIOSI参考模
45、型同样都采用对等通信的模式。同参考模型同样都采用对等通信的模式。同OSIOSI参考模型数据封装过程一样,参考模型数据封装过程一样,TCP/IPTCP/IP协议在报文转发过程中,封协议在报文转发过程中,封装和解封装也发生在各层之间。发送方封装的操作是逐层进行的,装和解封装也发生在各层之间。发送方封装的操作是逐层进行的,各个应用程序将要发送的数据传送给传输层;各个应用程序将要发送的数据传送给传输层;TCP/UDPTCP/UDP对数据分段为对数据分段为大小一定的数据段,加上本层的报文头。在传输层报文头中,包含大小一定的数据段,加上本层的报文头。在传输层报文头中,包含接收的数据所属上层协议或应用程序端
46、口号。传输层协议利用端口接收的数据所属上层协议或应用程序端口号。传输层协议利用端口号来调用和区分应用层不同的应用程序。加完传输层报文头,数据号来调用和区分应用层不同的应用程序。加完传输层报文头,数据发送给网络层。网络层对来自传输层的数据段进行一定的处理,发送给网络层。网络层对来自传输层的数据段进行一定的处理,2.2 TCP/IP2.2 TCP/IP数据传输数据传输下一页 返回上一页如利用协议号区分传输层协议,寻找下一跳地址,解析数据链如利用协议号区分传输层协议,寻找下一跳地址,解析数据链路层中的物理地址等,加上本层的路层中的物理地址等,加上本层的IPIP报文头,转换为数据包,再发报文头,转换为
47、数据包,再发送给数据链路层;数据链路层依据不同的协议加上本层的帧头,然送给数据链路层;数据链路层依据不同的协议加上本层的帧头,然后通过物理层以比特流的形式将报文发送出去。在接收方,这种解后通过物理层以比特流的形式将报文发送出去。在接收方,这种解除封装的操作也是逐层进行的。从物理层到数据链路层,逐层去掉除封装的操作也是逐层进行的。从物理层到数据链路层,逐层去掉各层的报文头部,将数据传递给应用程序处理。各层的报文头部,将数据传递给应用程序处理。图图2 2 18 18示意了示意了TCP/IPTCP/IP数据封装过程。数据封装过程。2.2 TCP/IP2.2 TCP/IP数据传输数据传输下一页 返回上
48、一页2.2.6 TCP/IP2.2.6 TCP/IP数据传输数据传输1.TCP/IP1.TCP/IP传输层简介传输层简介TCP/IPTCP/IP传输层在源设备和目的设备上的应用程序间传输数据,传输层在源设备和目的设备上的应用程序间传输数据,彻底地了解传输层的运行是理解现代数据网络的基本。彻底地了解传输层的运行是理解现代数据网络的基本。服务质量(服务质量(Quality of ServiceQuality of Service)常用于描述在第四层)常用于描述在第四层传传输层的作用,输层的作用,UDPUDP协议也工作在第四层,并且可以提供无连接的网络协议也工作在第四层,并且可以提供无连接的网络服务
49、。但是,工作在本层的主要协议是面向连接的服务。但是,工作在本层的主要协议是面向连接的TCPTCP协议,它的主协议,它的主要功能是可靠而又准确地传输并控制源主机与目的主机之间的信息要功能是可靠而又准确地传输并控制源主机与目的主机之间的信息流。传输层的主要职责是提供端到端的控制,通过滑动窗口机制提流。传输层的主要职责是提供端到端的控制,通过滑动窗口机制提供流控制,通过序号和确认机制来保证可靠性。供流控制,通过序号和确认机制来保证可靠性。2.2 TCP/IP2.2 TCP/IP数据传输数据传输下一页 返回上一页2.TCP/IP2.TCP/IP数据传输数据传输(1 1)TCPTCP连接建立、释放时的握
50、手过程连接建立、释放时的握手过程TCPTCP协议是一个面向连接的可靠的传输控制协议,在每次数据传协议是一个面向连接的可靠的传输控制协议,在每次数据传输时都先要建立连接,当连接建立成功后才开始传输数据,数据传输时都先要建立连接,当连接建立成功后才开始传输数据,数据传输结束后还要断开连接。由于输结束后还要断开连接。由于TCPTCP使用的网络层协议使用的网络层协议IPIP是一个不可靠、是一个不可靠、无连接的数据报传送服务,为确保连接的建立和拆除都是可靠的,无连接的数据报传送服务,为确保连接的建立和拆除都是可靠的,TCPTCP使用了三次握手的方式来建立可靠的连接,也就是说其中交换了使用了三次握手的方式