TCP/IP概述TCP/IP(TransmissonControlProtocol/InternetProtocol)是指传输控制协议/网际协议。它起源于美国ARPAnet网,由它的两个主要协议即TCP协议和IP协议而得名。TCP/IP是Internet上所有网络和主机之间进行交流所使用的共同“语言”,是Internet上使用的一组完整的标准网络连接协议。通常所说的TCP/IP协议实际上包含了大量的协议和应用,且由多个独立定义的协议组合一起,因此,更确切地说,应该称其为TCP/IP协议集。•TCP/IP协议的特点:①开放的协议标准,可以免费使用,并且独立于特定的计算机硬件与操作系统。②独立于特定的网络硬件,可以运行在局域网、广域网中,更适用于互联网中。③统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有惟一的地址。④标准化的高层协议,可以提供多种可靠的用户服务。2.3.1TCP/IP与OSI的比较OSI模型层7612345应用层表示层传输层会话层数据链路层物理层网络层各种应用层协议(HTTP、Telnet、FTP、SMTP等)TCPUDPIP与各种网络的接口ICMPRIPTCP/IP协议图2-16TCP/IP与OSI/RM的对应关系1.网络接口层:也被称为网络访问层,包括能使用TCP/IP与物理网进行通信的协议,且对应着OSI的物理层和数据链路层。TCP/IP标准并没有定义具体的网络接口协议,而是旨在提供灵活性,以适应各种网络类型,如LAN、MAN和WAN。这也说明了TCP/IP协议可以运行在任何网络之上。2.网际层:网际层在Internet标准中正式定义的第一层,所执行的主要功能是处理来自传输层的分组,将分组形成数据包(IP数据包),并为该数据包进行路径选择,最终将数据包从源主机发送到目的主机。在网际层中,最常用的协议是网际协议IP,其他一些协议用来协助IP的操作。3.传输层:TCP/IP的传输层也被称为主机至主机层,与OSI的传输层类似,它主要负责主机到主机之间的端对端通信,该层使用了两种协议来支持两种数据的传送方法,它们是TCP协议和UDP协议。4.应用层:在TCP/IP模型中,应用程序接口是最高层,它与OSI模型中的高3层的任务相同,都是用于提供网络服务,比如文件传输、远程登录、域名服务和简单网络管理等。TCP/IP体系与OSI的区别:(1)TCP/IP体系早于OSI。(2)OSI作为国际标准,它的协议体系大而全,兼顾各方面因素。协议的数量和复杂性都远高于TCP/IP;TCP/IP协议简单实用,且具有顽存性、安全性以及处理瞬间信息量的能力。(3)TCP/IP可以越层直接使用更低层次所提供的服务,它是一种高效协议,而OSI/RM则要求按层次关系处理,不能越层。(4)TCP/IP从开始即提供了面向连接和无连接服务,而OSI开始时只有面向连接的服务,强调可靠性、完美性,不强调效率和实用。(5)模型设计的差别:OSI参考模型是在具体协议制定之前设计的,对具体协议的制定进行了约束。因此,造成在模型设计时考虑不很全面,有时不能完全指导协议某些功能的实现,从而反过来导致对模型的修修补补。例如,数据链路层最初只用来处理点到点的通信网络,当广播网出现后,又存在一点对多点的问题,OSI不得不在模型中插入新的子层来处理这种通信模式。娄人们开始使用OSI模型及其协议集建立实际网络时,才发现它们与需求的服务规范存在不匹配的问题,最终只能用增加子层的方法来掩饰其缺陷。TCP/IP正好相反,协议在先,模型在后。模型实际上只不过是对己有协议的抽象描述。TCP/IP不存在与协议的匹配问题。(6)层数和层间调用关系不同:OSI协议分为7层,而TCP/IP协议只有4层,除网络层、传输层和应用层外,其他各层都不相同。另外,TCP/IP虽然也分层次,但层次之间的调用关系不像OSI那么严格。在OSI中,两个实体通信必须涉及到下一层实体,下层向上层提供服务,上层通过接口调用下层的服务,层间不能有越级调用关系。OSI这种严格分层确实是必要的。遗憾的是,严格按照分层模型编写的软件效率极低。为了克服以上缺点,提高效率,TCP/IP协议在保持基本层次结构的前提下,允许越过紧挨着的下一级而直接使用更低层次提供的服务。(7)最初设计的差别:TCP/IP在设计之初就着重考虑不同网络之间的互连问题,并将网际协议IP作为一个单独的重要的层次。OSI最初只考虑到用一种标准的公用数据网将各种不同的系统互连在一起。后来,OSI虽认识到了互连网协议的重要性,然而己经来不及像TCP/IP那样将互连网协议IP作为一个独立的层次,只好在网络层中划分一个子层来完成类似IP的作用。(8)对可靠性的强调不同:OSI认为数据传输的可靠性应该由点到点的数据链路层和端到端的问题,应该由传输层来解决。因此,它允许单个的链路或机器丢失或数据损坏,网络本身不进行数据恢复,对丢失或被损坏数据的恢复是在源节点设备与目的节点设备之间进行的。在TCP/IP网络中,可靠性的工作是由主机来完成的。(9)标准的效率和性能上存在差别:由于OSI是作为国际标准由多个国家共同努力而按制定的,于是不得不照顾各个国家的利益,有时不得不走一些折衷路线,造成标准大而全,效率却低(OSI的各项标准己超过200多)。TCP/IP参考模型并不是作为国际标准开发的,它只是对一种己有标准的概念性描述。所以,它的设计目的单一、影响因素少,且不存在照顾和折衷,结果是协议简单高效、可操作性强。(10)市场应用和支持上不同:OSI参考模型制定之初,人们普遍希望网络标准化,对OSI寄予厚望,然而,OSI迟迟无成熟产品推出,妨碍了第三方厂家开发相应的软、硬件,进而影响了OSI的市场占有率和未来发展。另外,在OSI出台之前TCP/IP就代表着市场主流,OSI出台后很长时间不具有可操作性,因此,在信息爆炸、网络迅速发展的近10多年里,性能差异、市场需求的优势客观上促使众多的用户选择了TCP/IP,并使其成为“既成事实”的国际标准。2.3.2TCP/IP各层功能1.IP层的协议网络接口层只提供了简单的数据流传送服务,而在Internet中网络与网络之间的数据传输主要依赖于网间网层中的IP协议。IP的功能包括如下3项:①管理Internet中的地址②路由选择功能③数据报的分片与重组与IP配合使用的还有三个协议:①Internet控制报文协议ICMP,用于报告差错和传输控制信息。②地址转换协议ARP,用于将IP地址转换成物理地址。③反向地址转换协议RARP,用于将物理地址转换成IP地址。2.IPv4与IPv6IPv6与过去的IPv4相比,主要有如下改进:扩大了寻址能力。IPv6中IP地址范围由32位增加到128位。使用了一种全新的数据报格式。简化了协议,使路由器处理分组更迅速。增强了数据的安全性,加入了审计、保密等功能。加强了协议的可扩展性,允许增加新功能。3.TCP与UDPTCP协议:提供可靠的面向连接的端到端的服务,它需要在发送端与接收端之间建立一条虚连接。UDP协议:提供简单的无连接服务,即通信的两端不要求同时准备好。UDP只是对IP协议的简单的扩充,增加了端口的功能,使得用户UDP报文包含数据和端口地址及编号,可以在两个用户进程之间传送数据报。4.应用层协议①简单邮件传输协议SMTP:实现主机之间电子邮件的传送。②域名系统DNS:用于实现主机名与IP地址之间的映射。③远程登录协议TELNET:本地主机作为仿真终端登录到远程主机上运行应用程序。④文件传输协议FTP:实现主机之间的文件传送。⑤超文本传输协议HTTP:用于Internet中的客户机与服务器之间的数据传输。⑥网络文件系统NFS:实现主机之间的文件系统的共享。⑦引导协议BOTP:用于无盘主机或工作站的启动。⑧简单网络管理协议SNMP:实现网络的管理。⑨动态主机配置协议DHCP:实现对主机的地址分配和配置工作。⑩路由信息协议RIP:用于网络设备之间交换路由信息。简单文件传输协议TFTP:名字服务协议NSP:远程过程调用RPC:2.4IP地址与子网掩码2.4.1IP地址的定义与分类2.4.2IP地址的分配与保留2.4.3子网掩码与子网划分1.定义IP地址是区别TCP/IP网络上每一台计算机的惟一标识。2.结构由网络号与主机号两部分组成,如图2-17所示。网络号用来标识一个网络,主机号用来标识这个网络上的某一台主机。网络号主机号图2-17IP地址结构2.4.1IP地址的定义与分类图2-18IP地址格式3.分类3.格式:从本质上说,它是由32位的二进制组成,但为了方便阅读,把它分成4个部分,每一部分包含一个字节;然后将每一个字节转换为0-255的十进制数,并用句号将他们格开。例如:192.168.10.1110000001010100000001010000000012.4.2IP地址的分配与保留有些IP地址是预留的,不分配给网络上的设备。这些预留的地址包括网络地址(用于表示网络本身)和广播地址(用于网络上的所有设备的广播分组)1.网络IP地址:主机标识字段全为0的IP地址,简称网络IP。例如:以A类网络为例,10.0.0.0是主机10.1.2.3所属网络的IP地址。2.广播IP地址:主机标识字段全为1的IP地址,简称广播IP。一个简单的例子:由两台主机a(172.17.10.1)和b(172.16.10.1)255.255.0.0,现在要向从a中发送一个数据b主机网段所在的所有主机则应当使用目标地址为172.16.255.255引言:刚开始开发IP时,并没有对IP地址进行分类,因为当时认为,互连用于学术,军队,研究机构的计算机,254个网络就够了。但随着网络数量的增加,使得不分类的地址难于满足网络发展的需要。因此人们对网络地址进行分类。以适用于不同规模的的网络。3.保留IP地址:A类:A类地址支持特大型网络,第一个字节表示网络地址,余下的3字节表示主机地址。第一个字节地址范围:1-126。A类地址第一位总是0,因而能够表示最小的数为00000000(十进制0),最大的数为01111111(127)。然而这网络号都是预留的,不能用作网络地址。因此其取值范围为1-126。网络的主机数计算:主机数=2n-2,因为要留出一个网络号和一个广播号。B类:支持大中型网络。B类地址使用4个字节中的两个字节表示网络地址;另外两个字节表示主机地址。特征:第一个字节取值范围:128-191。B类地址第一个字节的前两位总是10,余下的6位可以是1,也可以是0,因此能够表示的最小数是10000000(十进制128),最大数是10111111(191),故第一个字节为128-191的地址都是B类地址。C类:C类地址是最常用的地址,用于支持大量的小型网络。前三个字节表示网络号,后一个字节表示主机号。特征:第一个字节的取值范围是192-223。C类地址前三个字节是110,因此表示的最小数是11000000(十进制192),表示的最大数是11011111(223),故其范围是:192-223。D类和E类IP地址均是保留的D类:D类地址使用一个IP地址进行多播。多播地址是一个独一无二的网络地址,使用这个目标地址的分组将被发送给预先定义的IP地址组。因此一个工作站可以同时将一个数据流发送个多个接受方。第一字节取值范围224-239因为它的前四为必须是11100000-11101111E类:被Internet工程任务小组保留给自己用。E类地址的前4位总是位1111000-11111111,因此第一个字节的取值范围是:240-255。类别首字节的二进制格式十进制取值范围网络IP格式广播IP格式保留的网络号A类0xxxxxxx0~127X.0.0.0X.255.255.2550、10、127B类10xxxxxx128~191X.X.0.0X.X.255.255128.0、172.16、191.255C类110xxxxx192~223X.X.X.0X.X.X.255192.0.0、192.168.0~255、223