1、第第1章章 TCP/IP体系结构体系结构本章学习目标n掌握OSI模型分层体系及各层的功能n理解TCP/IP协议的工作原理,了解TCP/IP协议栈中各层的作用n掌握数据在网络模型中是如何传输,理解TCP/IP 编址方式1.1 计算机网络的形成与发展计算机网络的形成与发展n计算机网络是地理上分散的,多台独立自主的计算机遵循约定的通信协议,通过软、硬件互联起来,以实现交互通信、资源共享、信息交换、协同工作和在线处理等功能的系统。n1946年,世界上第一台数字计算机诞生n美国国防部高级研究计划局(ARPA)于1969年资助建立了一个名为ARPANET的网络n1974年,网际协议IP(Internet
2、Protocol)和传输控制协议TCP(Transfer Control Protocol)问世 n1980年后,温顿瑟夫提出:在每个网络内部各自使用自己的通信协议,在和其他网络通信时使用TCP/IP协议 1.2 网络类型的划分网络类型的划分n按距离划分:广域网(WAN)、局域网(LAN)、城域网(MAN)n按通信的传输介质划分:有线网、无线网n按通信传播方式划分:点对点传播方式网、广播式传播方式网n按通信速率划分:低速网、中速网、高速网n按数据交换方式划分:电路交换网、分组交换网、信元交换网n按通信性能划分:资源共享计算机网、分布式计算机网、远程通信网n按使用范围划分:公用网、专用网n按配置
3、划分:同类网、单服务器网、混合网n按数据的组织方式划分:分布式数据组织网络系统、集中式数据组织网络系统1.3.1 OSI层次体系结构层次体系结构 n开放式系统互联参考模型(Open System Interconnection Reference Model,简称OSI模型)由七个有序的层组成:物理层(第1层)、数据链路层(第2层)、网络层(第3层)、传输层(第4层)、会话层(第5层)、表示层(第6层)和应用层(第7层)。n下图表示设备A向设备B发送一个报文所涉及到的层。7 应用层 应用层 7 接口 接口 6 表示层 表 示层 6 接口 接口 5 会话层 会话层 5 接口 接口 4 传输层 传
4、输层 4 接口 接口 3 网络层 网络层 网络层 网络层 3 接口 接口 接口 接口 2 数据链路层 数据链路层 数据链路层 数据链路层 2 接口 接口 接口 接口 设备A 1 物理层 物理层 物理层 物理层 1 中间节点 中间节点 设备B 1.3.1 OSI层次体系结构层次体系结构 n下面给出了使用OSI模型交换数据的过程:进程从应用层开始往下传送,在每一层(第7层和第1层除外)都要给数据单元加上头部,在第2层还要加上尾部。当格式化后的数据单元通过物理层时,就变成电磁信号并沿着一条物理链路传输。到达目的端时,信号进入物理层并转换回数字形式,数据单元再向上通过OSI各层。当每个数据块到达上一层
5、时,要移去在对应的发送层所加的头部和尾部,然后进行该层的相应处理。L 7 数 据 应 用 层 表 示 层 会 话 层 传 输 层 网 络 层 (分 组)数 据 链 路 层 (帧)0 1 0 1 0 0 0 111 0 1 0 1 0 1 0 11 0 0 1 0 1 0 0 111 0 1 物 理 层 0 1 0 1 0 0 0 111 0 1 0 1 0 1 0 11 0 0 1 0 1 0 0 111 0 1 L 7 数 据 L 7 数 据 H 6 L 7 数 据 H 6 L 6 数 据 H 5 L 6 数 据 H 5 L 4 数 据 H 3 L 5 数 据 H 4 L 5 数 据 H 4
6、 L 4 数 据 H 3 T 2 L 3 数 据 H 2 T 2 L 3 数 据 H 2 传 输 媒 介 1.3.2 OSI模型中的各层模型中的各层n1.物理层:物理层:协调在物理媒体中传送比特流所需的各种功能,涉及接口和传输媒体的机械和电气规约。物理层的功能包括:接口和媒体的物理特性;比特的表示;数据率,即传输速率(即每秒发送的位数);比特的同步;线路配置;物理拓扑以及传输模式。n2.数据链路层:数据链路层:将物理层转换成可靠的链路,使在数据链路层的上层(网络层)看来,物理层是无错的。数据链路层的功能包括:组帧;物理编址;流量控制;差错控制以及接入控制。n3.网络层网络层 网络层负责分组源端
7、到目的端的传送。这可能要跨越多个网络(链路),数据链路层监督在同一个网络(链路)上的两个系统之间分组的传送,而网络层则确保每个分组从源端到达目的端。网络层的功能包括逻辑编址和路由选择。n下图说明了数据链路层是跳到跳(即节点到节点)方式传送,而网络层是端到端传送的。1.3.2 OSI模型中的各层模型中的各层1.3.2 OSI模型中的各层模型中的各层n4.传输层传输层 传输层负责整个报文的源端到目的端(端到端)的传送。网络层监督单个分组的端到端传送,不考虑分组之间的关系。网络层独立地处理每个分组,就好像每个分组属于独立的报文,而不管是否真得如此。传输层则是确保整个报文完整地按序到达,在源端到目的端
8、这一级上监督差错控制和流量控制。传输层的功能包括:服务点编址;分段与重装;连接控制;流量控制 以及差错控制。n下图表示传输层与网络层及会话层的关系。n5.会话层会话层 会话层是网络的对话控制器,它建立、维持和同步通信系统之间的对话。会话层的功能包括对话控制与同步。n6.表示层表示层 表示层考虑的是两个系统所交换的信息的语法和语义。表示层的功能包括:转换;加密和解密;压缩。n7.应用层应用层 应用层将用户接入网络,给用户提供了接口和服务支持,如电子邮件、远程文件存取和传送、共享的数据库管理,以及其他类型的分布式信息服务。应注意:在这一层中不增加头部和尾部。应用层的功能包括:网络虚拟终端;文件传送
9、、存取和管理(FTAM);邮件服务;名录服务。1.3.2 OSI模型中各层的功能模型中各层的功能1.4.1 TCP/IP协议栈协议栈nTCP,就是传输控制协议(Transfer Control Protocol,TCP),属于传输层协议。IP,就是网际协议(Internet Protocol,IP),属于网络层协议。这两个协议是TCP/IP协议栈中两个最基础的协议。nTCP/IP协议栈由四层组成:网络接口层、Internet层、传输层和应用层。TCP/IP模型将ISO/OSI模型的应用层、表示层和会话层结合在一起,叫做应用层。它又将数据链路层和物理层结合在一起,称为网络接口层(也称为链路层)。
10、TCP/IP协议栈的前三层与OSI模型的前四层相对应,提供物理标准、网络接口、网际互联,以及传输功能。n数据从上层开始,每向下经过一层,在前面加上下一层报头的过程叫做封装(Encapsulation)。报头的格式是由进行封装的协议规定的,例如,TCP报头和UDP报头的格式就是不同的。报头记录着很重要的信息,对等实体之间就是利用这些信息来交流的。1.4.1 TCP/IP协议栈协议栈n1.网络接口层网络接口层 在发送方,网络接口层负责将Internet层提供的数据封装成帧,帧头中包含源物理地址、目标物理地址、使用何种链路封装协议(如HDLC,PPP)等信息,然后把帧发送出去;在接收方,该层读取帧头
11、中的信息。如果是发给自己的,则拆开帧头,将数据报交给网络层处理;如果不是发给自己的则丢弃该帧。网络接口层可以是面向连接的,也可以是无连接的,是否面向连接决定往帧中加入不同的报头。如果是面向连接的,则报头必须指明分组中帧的数量和在目的地中帧需要重新装配的顺序。网络接口层通过循环冗余校验(CRC)的方法来确保所有的帧都能被正确接收。1.4.1 TCP/IP协议栈中的各层协议栈中的各层n2.Internet层层 Internet层负责将数据分组路由到正确的目的地。在发送方,Internet层将传输层提供的数据段封装到数据报中,并填入IP报头(包括源IP地址、目标IP地址、使用什么协议、校验和等等);
12、在接收方,Internet层通过读取IP报头中的信息决定如何处理数据报。如果是路由器收到数据报,它则通过校验和检验其有效性,决定是做本地处理还是转发该数据报;如果是目标主机收到该数据报,通过校验后,它会去掉IP报头交给传输层处理。Internet层主要提供寻址和路由选择协议,包括网际协议(IP)和另外四个支持性的协议:ARP、RARP、ICMP和IGMP。1.4.1 TCP/IP协议栈中的各层协议栈中的各层n1)网际协议()网际协议(IP)IP主要负责逻辑寻址,对数据报进行最佳路由选择。这是一个不可靠、无连接的数据报协议,它尽最大的努力使不同的设备之间利用IP地址进行通信。IP传输的数据称为数
13、据报,是以分组为单位的,每个数据报都是独立传输的。数据报可以沿不用的路由传送,也可以不按序或重复地到达。IP不记录经过的路由,也不提供差错检查或跟踪。然而,IP的这些局限性不应当看成是它的弱点,它提供了最基本的传输功能,使用户能够很容易根据实际的需要添加功能,获得最大的效率。n2)地址解析协议()地址解析协议(ARP)ARP用来将IP地址与其物理地址联系起来。在一个典型的物理网络(例如局域网)中,一条链路上的每个设备都是要用物理地址来标识的,而物理地址通常是写在网络接口卡(NIC)中。当节点的IP地址已知时,可以用ARP找出它的物理地址。1.4.1 TCP/IP协议栈中的各层协议栈中的各层n3
14、)逆地址解析协议()逆地址解析协议(RARP)RARP允许主机在仅知道物理地址时可找出其IP地址。当计算机第一次连接到网络上,或无盘计算机在启动时,就要用到RARP。n4)Internet控制报文协议(控制报文协议(ICMP)ICMP提供控制和传递消息的功能,用于主机和路由器之间交换信息,例如不可到达目的地址、网络拥塞、重定向到更好的路径、报文生命周期超时等。ICMP报文包括查询报文和差错报告报文。n5)Internet组管理协议(组管理协议(IGMP):IGMP用来将一份报文同时传送给一组接收者。1.4.1 TCP/IP协议栈中的各层协议栈中的各层n3.传输层传输层 传输层的主要功能是:分割
15、并重新组装上层提供的数据流,为数据流提供端对端的传输服务。在发送方,传输层将应用层提供的数据流分段,并将这些数据段加上标识,包括由哪个应用程序发出、由哪个应用程序处理、使用什么传输层协议、校验和、报文长度等,这种标识称为传输层报文头,例如TCP报文头、UDP报文头。在接收方,传输层去掉传输层报文头,利用报文头中的校验和来检验数据在传输过程中是否出错,以一定的顺序将数据段重新组装成数据流交给应用程序处理。TCP/IP协议族中有两个传输层协议:TCP和UDP。IP是主机到主机的协议,即把分组从一个物理设备传送到另一个物理设备。UDP和TCP则是传输级的协议,负责将报文从一个进程传送到另一个进程。1
16、.4.1 TCP/IP协议栈中的各层协议栈中的各层n1 1)用户数据报协议()用户数据报协议(UDPUDP)UDP是进程到进程的协议,对从上层来的数据只增加端口地址、校验和差错控制,以及长度信息。UDP为应用程序提供的是一种不可靠的、无连接的分组交付服务,UDP报文可能出现丢失、重复、时延、乱序和连接失效等问题。但正是由于它不提供这种可靠性,所以它的开销很小。换句话说,UDP提供了一种在高效可靠的网络上传输数据,而不用消耗不必要的网络资源和处理时间的通信方式。使用UDP的协议包括TFTP、SNMP、NFS、DNS、DHCP。1.4.1 TCP/IP协议栈中的各层协议栈中的各层n2)传输控制协议
17、()传输控制协议(TCP)TCP是可靠的流传输协议。“流”在这里表示面向连接,确保了数据完整的传输到目的地。在传输数据之前,通信双方要进行三次握手来建立连接,以保证连接的可靠性。如果在传输过程中有错误产生,TCP将负责向目的地重传此数据。在通信结束时,通信双方会使用改进的三次握手来关闭连接。在发送端的每次传输,TCP将数据流划分为较小的单元,称为报文段。每个报文段都有一个序号(用来在收到报文段后重新排序)和一个确认号(用来对收到的报文段进行确认)。报文段放在IP数据报中传送。在接收端,TCP将每个到达的数据报收集起来,并根据序号将他们重新排序。TCP还提供流量控制、全双工连接,以及多路复用技术
18、(用端口号来实现)。1.4.1 TCP/IP协议栈中的各层协议栈中的各层n4.应用层应用层 TCP/IP中的应用层相当于OSI模型中的会话层、表示层和应用层的结合。用户通过应用层提供的服务来访问网络。用户可以使用的协议和服务包括:n(1)HTTP(超文本传输协议):应用层的一个面向对象协议,适用于分布式超媒体信息系统。n(2)FTP(文件传输协议):用于简化IP网络上系统之间文件传送的协议。采用FTP可使用户高效地从Internet上的FTP服务器下载大信息量的数据文件,以达到资源共享和传递信息的目的。n(3)TFTP(简单文件传输协议):用于小文件的传输,对内存和处理器的要求很低,速度快。但
19、TFTP不具备FTP的许多功能,它只能从文件服务器上获得或写入文件,而不能列出目录,也不能进行认证,所以它没有建立连接的过程及错误恢复的功能。1.4.1 TCP/IP协议栈中的各层协议栈中的各层n(4)SNMP(简单网络管理协议):它允许第三方的管理系统集中采集来自许多网络设备的数据,为网络管理系统提供底层网络管理的框架。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。n(5)DNS(域名服务):DNS服务器中包含了域名和相应的IP地址的映射,其作用是把域名转换成网络可以识别的IP地址。1.4.1 TCP/IP协议栈中
20、的各层协议栈中的各层1.4.2 TCP/IP中的编址中的编址n在使用TCP/IP协议的互联网中,有三个等级的地址:物理(链路)地址,IP(网络)地址,以及端口地址。每一种地址属于TCP/IP体系结构中的特定层。n下图为TCP/IP中的各种地址与层次的关系:n1.物理地址物理地址 物理地址也叫做链路地址,是节点的地址。物理地址包含在数据链路层使用的帧中,是最低一级的地址。绝大多数的局域网使用6字节(48位)的物理地址,写成12个十六进制数字,每两个字节由一个连字符分隔开。如:07-01-02-01-2C-4B。n2.IP地址地址 在Internet的环境中仅使用物理地址是不够的,因为不同的网络可
21、以使用不用的地址格式。因此,需要一种通用的编址系统,使每一台主机能被惟一的标识,而不用管底层使用的物理网络是怎么样的。IP地址就是为了这个目的而设计的。目前的IP地址是32位地址,可以用来标识连接在Internet上的每一台主机。在Internet没有两台主机具有相同的IP地址。1.4.2 TCP/IP中的编址中的编址n IP地址(在IPv4中)是32位长,通常写成四个十进制数字,每个数字表示一个字节。数字之间用点分隔开。如:132.24.75.9。n3.端口地址端口地址 要从源主机传送大量数据到目的主机,IP地址和物理地址是必需的。但是,到达目的主机并不是在Internet上进行数据通信的最
22、终目的。一个系统如果只能从一台计算机向另一台计算机发送数据,这是不够的。今天的计算机是多进程设备,即可同时运行多个进程。Internet通信的最终目的是实现进程间的通信。为了这些进程能够同时进行,我们需要一种方法对不用的进程进行标示,换言之,这些进程需要有给定的地址。在TCP/IP体系结构中,给一个进程指派的标号称为端口地址。TCP/IP中的端口地址是16位长的,用十进制表示,如:753。1.4.2 TCP/IP中的编址中的编址小结小结nOSI模型将计算机之间的通信分为七层:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。物理层协调在物理媒体中传送比特流所需的功能。数据链路层负责将数据单元无差错的从一个站传送到下一个站。网络层负责多个网络连接间的分组从源端到目的端传送。传输层负责整个报文从源端到目的端的传送。会话层建立、维持和同步相互通信的设备之间的交互性。表示层通过将数据转换成相互同意的格式,来确保相互通信设备之间的互操作性。应用层使用户能够接入网络。nTCP/IP是具有层次体系结构的四层协议族。TCP/IP协议的Internet层提供寻址和路由选择协议,主要运行IP、ARP、RARP、ICMP等协议。