Login
升级VIP 登录 注册 安全退出
当前位置: 首页 > word文档 > 其他文档 > TCPIP的理解与应用,tcpip协议原理与应用

TCPIP的理解与应用,tcpip协议原理与应用

收藏

本作品内容为TCPIP的理解与应用,格式为 doc ,大小 42496 KB ,页数为 7页

TCPIP的理解与应用


('TCP/IP的理解与应用摘要:TCP/IP是多种协议的总称,它是网络中使用的基本的通信协议。本文主要介绍了tcp/ip的四个层次和工作原理;第二部分是对tcp/ip的深入了解,对关于TCP流控制作了介绍;第三部分主要是对TCP/IP协议的一个简单的总结。关键字:TCP/IP协议TCP/IP模型IP地址正文一.TCP/IP的理解TCP/IP协议(TransferControlnProtocol/InternetProtocol)叫做传输控制/网际协议,又叫网络通讯协议,这个协议是Internet国际互联网络的基础。它是人们在网络建设中边实践边开发研究的产物,它不是由某一国际标准化组织机构提出的标准协议,它有异于OSI/RM协议(ISO提出的协议),但它是Internet上使用的事实上的工业标准协议。它是网络中使用的基本的通信协议。TCP/IP并不是简单地说成是TCP(传输控制协议)和IP(网际协议),它是很多种协议的总称(如:一些较常用的Telnet协议、ftp文件传输协议、电子邮件等),只不过TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。从协议分层模型方面来讲,TCP/IP由四个层次组成:链路层、网络层、传输层、应用层。而TCP/IP中的应用层对应于OSI参考模型的应用层+表示层+会话层;链路层对应于数据链路层+物理层;传输层对应于传输层;网络层对应于网络层。并且OSI模型有7层,而TCP/IP模型是4层。OSI模型在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信;而TCP/IP模型在网络层仅有一种通信模式――无连接模式,但在传输层支持两种模式――面向连接和面向无连接。下面简单地介绍下TCP/IP的的四个层次:●数据链路层(链路层)数据链路层提供了TCP/IP与各种物理网络的接口。物理网络指的是各种局域网和广域网如Ethernet和X.25公共分组交换网等。其还为网络层提供服务。●网际层(网络层)网际层解决了计算机与计算机之间的通信问题,这一层的通信协议统一为IP协议。IP协议具有以下几个功能:管理Internet地址:Internet上的计算机都要有唯一的地址,即IP地址。●传输层IP协议仅仅负责数据的传送,而不考虑传送的可靠性和数据的流量控制等安全因素。传层提供了可靠传输的方法。传输层常用的协议是TCP(传输控制协议)和UDP(用户数据协议)。TCP提供了可靠传输的机制,它能够自动检测丢失的数据并自动重传,弥补IP议的不足。TCP和IP总是协调一致地工作,一确保数据的可靠传输。●应用层应用层提供了网络上计算机之间的各种应用服务,如Telnet(远程登录)、FTP(文件传协议)、SMTP(简单邮件传输协议)、HTTP(超文本传输协议)和Gopher等。几乎所有应用程序都有自己的协议。在网际上源主机的协议层与目的主机的同层协议通过下层提供的服务实现对话。在源和目的主机的同层实体称为伙伴(peers),或叫对等进程。它们之间的对话实际上是在源主机上从上到下然后穿越网络到达目的主机后在从下到上到达相应层。下面以使用TCP协议传输文件(如FTP应用程序)为例说明TCP/IP的工作原理:在源主机上应用层将一串字节流传给传输层。传输层将字节流分成TCP段,加上TCP包头交给网际(IP)层。IP层生成一个包,将TCP段放入其数据域,并加上源和目的主机的IP地址。将IP包交给数据链路层。数据链路层在其帧的数据部分装IP包,发往目的主机或IP路由器处。在目的主机,数据链路层将数据链路层帧头去掉,将IP包交给网际层。IP层检查IP包头,如果包头中的检查和与计算出来的不一致,则丢该包。如果检查一致,IP层去掉IP头,将TCP段交给TCP层,TCP层检查顺序号来判断是否为正确的TCP段。TCP层为TCP包头计算TCP头和数据。如果不对,TCP层丢弃这个包,若对,则向源主机发送确认。在目的主机,TCP层去掉TCP头,将字节流传给应用程序。IP地址的表示形式Internet和我们直接发生关系的既不是物理网,也不是网络协议,而是网络应用软件和应用程序。它们是我们使用网络时必须借助的基本工具,是我们与网络打交道的交互界面和入口。这些网络应用程序与在单个计算机上运行的单用户应用程序不同,它离开网络使用将没有意义。目前网络应用程序很多,如:Mail、telnet、ftp、archie、gopher、WAIS和WWW浏览器等。要上网,就必须了解Internet的地址和域名等基本常识。Internet的地址就像我们身边的街道号码,用来标示网上计算机的“住址”。Internet实际上是一个大型的TCP/IP网络,在Internet上进行信息交换的基本要求就是网上的所有主机必须具有唯一的地址,就象日常生活中朋友之间相互通信需要写明通信地址一样。Internet地址分为两种形式:用数字表示的IP地址和用字母表示的域名地址。在Internet上为每台主机指定的地址称为IP地址。其是唯一的,具有固定、规范的格式。每个IP地址含32位,被分为4段,每段8位,段与段之间用句点分隔为A、B、C三类:A类IP地址:用7位来标识网络号,24位标识主机号,最前面一位为“0”,即A类地址的第一段取值介于1~126之间。A类地址通常为大型网络而提供,全世界总共只有126个只可能的A类网络,每个A类网络最多可以连接16777214台主机。B类IP地址:用14位来标识网络号,16位标识主机号,前面两位是“10”。B类地址的第一段取值介于128~191之间,第一段和第二段合在一起表示网络号。B类地址适用于中等规模的网络,全世界大约有16000个B类网络,每个B类网络最多可以连接65534台主机。C类IP地址:用21位来标识网络号,8位标识主机号,前面三位是“110”。C类地址的第一段取值介于192~223之间,第一段、第二段、第三段合在一起表示网络号。最后一段标识网络上的主机号。C类地址适用于校园网等小型网络,每个C类网络最多可以有254台主机。所有的IP地址都由国际组织NIC(NetworkInformationCenter)负责统一分配,目前全世界共有三个这样的网络信息中心:InterNIC:负责美国及其他地区;ENIC:负责欧洲地区;APNIC:负责亚太地区。我国申请IP地址要通过APNIC,APNIC的总部设在日本东京大学。申请时要考虑申请哪一类IP地址,然后向国内的代理机构提出。我们注意到前面讲的IP地址都是以数字形式表示主机的地址的,这种IP地址人们记忆起来是非常困难的。对非计算机和网络的专业人士来说,记住这种地址是很不现实的。因此,Internet还采用域名地址来表示每台主机。通过为每台主机建立IP地址与域名地址之间的映射关系,用户可以在网上避开难以记忆的IP地址,而用域名地址来唯一标记网上的计算机。域名地址与IP地址的关系类似于一个人的姓名与身份证号码之间的关系。要把计算机连入Internet,必须获得网上唯一的IP地址与对应的域名地址。域名地址由域名系统(DNS)管理。每个连到Internet的网络中都有至少一个DNS服务器,其中存有该网络中所有主机的域名和对应的IP地址,通过与其他网络的DNS服务器相连就可以找到其他站点。这也就是在TCP/IP属性中要进行DNS配置的原因。域名地址是分段表示的,每段分别授权给不同的机构管理,各段之间用圆点分隔。与IP地址相反,各段自左至右越来越高。Internet对某些通用性的域名作了规定。例如,com是工商界域名,edu是教育界域名,gov是政府部门域名,等等目前共有14种如表1所示。此外,国家和地区的域名常用两个字母表示。例如,fr表示法国,jp表示日本,us表示美国,uk表示英国,cn表示中国,等等。如果在一个域名的末尾没有找到地理域,就可以假定该域名是自美国的,其他国家的右边第一域名则代表国家。表1从用户的角度看,TCP/IP协议提供一组应用程序,主要包括:1.远程登录协议(Telnet)2.文件传输协议(Ftp)3.电子邮件服务(Email)4.Internet漫游服务(WWW服务)5.简单邮件传输协议(SMTP)6.信息服务(Gopher)7.文件检索服务(Archie)远程登录协议(Telnet)用Telnet可以登录到远程服务器上并进行信息访问,可访问所有的数据库、联机游戏、对话服务以及电子公告牌,如同与被访问的计算机在同一房间中工作一样。文件传输协议(Ftp)运用FTP可以从网上得到许多应用程序和信息。最初的FTP程序是工作在UNIX系统下的,而目前的许多FTP程序是工作在Window95下的,FTP程序除了完成文件的传送之外,还允许用户建立与远程计算机的连接,登录到远程主机上,并可在远程主机上的目录间移动。●电子邮件服务(Email)电子邮件是Internet提供的使用最广泛的服务。通过电子邮件,可以与Internet上的任何人交换信息。电子邮件的快速、高效、方便以及价廉,使得越来越多的人热衷于这项服务。目前,全球平均每天约有几千万份电子邮件在网上传输。Internet漫游服务(WWW服务)实际上,现在大家使用最多的应该是WWW服务,它同其它Internet程序的最大区别就是它的界面对我们有很大的吸引力,通过WWW服务,只要用鼠标单击加亮的词或者短语,就可以到达世界上的任何地方。由于WWW服务使用的是超文本链接,所以可以很方便的从一个信息页转换到另一个信息页。它不仅能查看文字,还可以欣赏图片、音乐、动画。最流行的WWW服务的程序就是Navigator和IE了。简单邮件传输协议(SMTP)SMTP是TCP/IP协议族的一个成员,这种协议认为你的主机是永久连接在Internet上的,而且,认为你在网络上的主机在任何时候是可以被访问的。所以,它适用于永久连接在Internet的主机,但是无法使用通过SLIP/PPP连接的用户接收电子邮件。解决这个问题的办法是在邮件主机上同时运行SMTP和POP协议的程序SMTP负责邮件的发送和在邮件主机上的分拣和存储,POP协议负责将邮件通过SLIP/PPP连接传送到用户的主机上。●信息服务(Gopher)Gopher最早出现在1991年,它其实是第一个操作简便、使用广泛的从Internet服务器上获取信息的客户应用程序。除了操作简便外,它的另一个特点是速度快。Gopher运行时,将显示一个交互式的供用户选择的菜单,菜单中的选项由简单的短句组成,每个短句通常指向另一个菜单,并最终指向有用的文件。Gopher是帮助用户在Internet信息海洋中搜索有用信息的导航器。用户只要关心浏览的内容,而不必关心具体的服务器。文件检索服务(Archie)它是一种从整个Internet上匿名FTP服务器获取文件的服务。其完全依赖于匿名FTP系统的管理员,他们将他们的站点对全世界的Archie服务器进行了注册。Archie仅通过文件名进行检索。二.tcp/ip的深入理解TCP协议在能够发送数据之前就建立起了“连接”。要实现这个连接,启动TCP连接的那一方首先将发送一个SYN数据包。这只是一个不包含数据的数据包,然后,打开SYN标记。如果另一方同时在它收到SYN标记的端口通话,它将发回一个SYN+ACK:SYN和ACK标志位都被打开,并将ACK(确认)编号字段设定为刚收到的那个数据包的顺序号字段的值。接下来,连接发起方为了表示收到了这个SYN+ACK信息,会向发送方发送一个最终的确认信息(ACK包)。这种SYN、SYN+ACK、ACK的步骤被称为TCP连接建立时的“三次握手”。在这之后,连接就建立起来了。这个连接将一直保持活动状态,直到超时或者任何一方发出一个FIN(结束)信号。任何一方都可以关闭一个TCP连接,要求双方发送一个FIN信号关闭自己的通讯频道。一方可以在另一方之前关闭,或者双方同时关闭TCP连接。因此,当一方发送一个FIN信号时,另一方可发送“FIN+ACK”,开始关闭自己一方的通信并且确认收到了第一个FIN信号。发送第一个FIN信号的人接下来再发送一个“FIN+ACK”信息,确认收到第二个FIN信号。另一方就知道这个连接已经关闭了,并且关闭了自己的连接。发送第一个FIN的人没有办法收到最后一个ACK信号的确认信息。这时它会进入“TIME_WAIT”(等待时间)状态并启动一个定时器,防止另一方没有收到ACK信息并且认为连接仍是打开的。一般来说,这个状态会持续1至2分钟。现在,我们来讨论第一个问题。如果有人(假如一个黑客)在你的Web服务器上留下一个半开或者半关的连接,那就是一个坏消息。每一个连接都要消耗内存,打开数千个虚假的TCP连接可能导致服务器瘫痪。当然,你实际上不可能在不影响TCP正常工作的情况下调整TCP定时器。如果你听说过TCPSYN攻击的话,那就是这个意思。为了防止出现这种情况,大多数操作系统都要限制半开连接的数量。例如,Linux默认的限制一般是256个。关于持续流控制问题,现在我们就来讨论这个问题。TCP中实现它的机制是TCP滑动窗口机制。TCP协议使用“重新发送与正向ACK”来保证数据传输的可靠性。发送方将等待一段时间,如果没有收到其发送的数据包的ACK确认信息,发送方就要重新发送。顺便说一下,TCP协议中有许多定时器。这只是其中一个定时器。ACK的概念对于流控制是非常重要的,因为TCP滑动窗口协议使TCP的往复确认变得更有效率。如果TCP要发送一个数据包并且等待每一个ACK确认信息,它实际上就把数据吞吐量削减了一半。理想的情况是,我们能够一次发送许多数据包,然后等待收到一个确认收到全部数据包的ACK信息,而不用对方发来更多的数据。但是,我们如何知道发送了多少个数据包呢?TCP窗口尺寸可以控制在“已发送但是没有确认”的状态下能够容纳多少个数据包。如果这个窗口尺寸很大,我们不必等待ACK信息就可以发送大量的数据包。这实际上就是流控制。接收方就是控制窗口大小的那一方。如果接收方将窗口大小设为“0”,那么,发送方根本就不能发送任何数据。如果这个窗口的尺寸是“1”,那么,我们就回到了简单的“发送和等待ACK”的协议。如果最后的窗口尺寸是“0”,发送者将发出一个探测信号以搞清这个窗口什么时间再次打开。如果发送方从来没有收到ACK信息,它就一直不断地重试,直到定时器过期。请记住,这个窗口尺寸在TCP头中是一个16位字段。如果你要一个窗口尺寸(按字节计算)大于16位可以表示的容量(2的16次方个字节),还可以使用一个名为“窗口缩放”的TCP协议选项。这个选项允许窗口尺寸乘以比例因子。如果没有极大的窗口尺寸,TCP协议就就无法充分利用GB级别的高速连接。这也是我们需要针对这些新的高速连接调整TCP参数的原因,关于TCP流控制的问题,我们不能不提一下Nagle算法。如果我们在一个telnet连接上使用一个大的TCP窗口会发生什么事情呢?你会输入一个指令(例如敲了一个字母),然后一直等待回应它却迟迟不出现在终端回显上。这对于实时通信来说是一个大问题。而且,telnet也会增加网络的阻塞度,因为一个字节的数据(例如我们的一次击键)需要40个字节的包头。于是RFC896定义这个Nagle算法用以消除小的数据包。这个思路是我们应该在数据发送之前给先把小数据集中起来然后一次性发送,以便提高效率。为了更有效率,它还限定只允许存在一个未经确认的数据段,你在得到确认信息之前不能发送更多的数据。Telnet和互动SSH连接使用TCP_NODELAY套接口选项启用这个功能,这样当你按下一个按键的时候,你能够立即得到一个回应。TCP协议非常善于解决流控制问题,因此非常适应于许多应用程序。TCP协议中的流控制的含义是:“在收到对发送的数据的确认信息这前,我可以发送多少数据?”这就是TCP窗口。学习阻塞控制的问题可以留作读者的练习。需要指出的是,在TCP协议之下连接速度开始很慢,然后速度逐渐加快。这个做法并不总是最理想的。三.对TCP/IP的简单总结TCP/IP是一组协议的总称,简单地可以把TCP/IP理解成是计算机与计算机之间通信的共同语言,是他们通话的规则。虽说在计算机通信中OSI/RM协议是标准协议,但在实际使用中的是TCP/IP协议,TCP/IP是网络中使用的基本的通信协议。根据所实现的功能不同,人们把TCP/IP协议分成了四个层次(链路层,网络层,传输层,应用层),其中大部份的用户界面程序都处在应用层(相应的各层功能如上所述),通信双方的计算机都有相同的层次,处在同一层次的就叫对等层,对等层之间使用相同的协议,这让人会误以为通信时是对等层与对等层之间的通信。而在各方中上层使用它下层所提供的服务,并且为它上层提供服务。在通信时,一方把数据一层一层往下传直到最底层,并且每一层都为该数据添加一个该层所能识别的数据包,也就是所说的封装过程,到最底层的时候通过介质把封装后的数据传到目标地址,目标地址接收数据,并一层一层的往上传,在往上传的时候用该层的协议去把对等层所添加的数据包去掉,也就是解封装的过程,到达最上层的时候就是对方计算机所发送过来的原数据。从用户的角度看,TCP/IP协议提供一组应用程序如:FTP、HTTP等,在通信中每个应用程序占用一个端口,计算机根据端口判断是什么应用程序(如:FTP是21端口、HTTP是80端口等)。TCP协议也是TCP/IP协议中比较重要的一种,它是一个面向连接的协议。TCP连接的建立是通过三次握手,关闭连接是四次握手。总之,TCP/IP不是一个简单的一个协议,它是一组复杂的协议的组合。TCP协议和IP协议只是当中很两个基本的重要协议。想好学好网络课程都需要学好TCP/IP。参考资料[1]任泰明《TCP/IP协议与网络编程》西安电子科技大学出版社,2004年[2]徐万涛、洪建新《计算机网络实用技术教程》清华大学出版社,2007[3]参考网站www.baidu.com',)


  • 编号:1700773351
  • 分类:其他文档
  • 软件: wps,office word
  • 大小:7页
  • 格式:docx
  • 风格:商务
  • PPT页数:42496 KB
  • 标签:

广告位推荐

相关其他文档更多>