TCP/IP网络通信协议的实现与探讨

来源 :网络与信息 | 被引量 : 0次 | 上传用户:fellting
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:TCP/IP协议(Transmission Control Protocol/Internet Protocol)是目前最成功的网络通信协议,它被用于当今所构筑的最大的开放式网络系统Internet之上就是其成功的证明。TCP/IP协议具有广泛的兼容性和可伸缩性,可连接不同的计算机网络协议、不同的网络设备。TCP/IP事实上己成为网络互联的标准,并成为支持Internet/Intranet的协议标淮。本文就是针对当前流行的TCP/IP网络通信协议的实现进行了具体的研究和探讨。
  关键词:TCP/IP协议;Internet;网络通信
  
  1 前言
  
  TCP/IP初步架构的出现源于1964年,冷战时期美国国防部高级研究计划局DARPA提出ARPANET研究计划,目的是希望美国国防部的很多主机、通信控制处理机和通信线路在战争中,如部分遭到攻击而损坏时,其它部分还能正常工作,同时它希望适应从文件传送到实时数据传输的各种应用需求,因此它要求的是一种灵活的网络体系结构,实现异型网的互联(Interconection)与互通(Intercomunication)。
  最初ARPANET使用的是租用线路。当卫星通信系统与通信网发展起来之后,ARPANET最初开发的网络协议NCP (Net Control Protocol,网络控制协议)因其在通信可靠性较差的通信子网中出现了不少问题,导致了新的网络协议TCP/IP的出现。虽然TCP协议和IP协议都不是OSI标准,但它们是目前最流行的商业化的协议,并被公认为当前的工业标准或“事实上的标准”。1974年,Kahn最早定义出了的TCP/IP参考模型(TCP/IP Reference Model ); 1985年由Leiner等人对该模型做了进一步的研究;1988年Clark对该模型的设计思想进行了讨论。
  今天,Internet己经发展得更加商业化,更加面向消费者,尽管基本目的发生了改变,但其最初的质量标准(也就是开放式、抗毁性和可靠性)依然是必需的。这些特性包括可靠传输数据、自动检测、避免网络发生错误等。更重要的就是TCP/IP是一个开放式的通信协议,开放性就意味着在任何组合间,不管这些设备的物理特征有多大差异,都可以进行通信。
  
  2 标准TCP/IP协议
  
  如同OSI参考模型一样,TCP/IP也是一种分层模型。与OSI参考模型不同的是,TCP/IP参考模型更侧重于互联设备间的数据传送,而不是严格的功能层次划分。TCP/IP通过解释功能层次分布的重要性来做到这一点,但它仍为设计者具体实现协议留下很大的余地。因此,OSI参考模型适用于解释互联网络的通信机制,而TCP/IP更适合做互联网络协议的市场标准。
   TCP/IP协议是一套把因特网上的各种系统互联起来的协议组,可以保证因特网上数据准确又快速地传输。TCP/IP协议是一个很大的协议族,通常表示为一个简化的四层模型。这四层分别是应用层、传输层、网络层和链路层。其中一些常用协议在TCP/IP分层模型中所处的位置如图1所示。
  
  


  图1TCP/IP层次结构图
  
  3IP协议的实现
  
  3.1 IP数据报格式
  IP ( Internet Protocol,互联网协议)是TCP/IP协议中一个最重要的协议。IP数据报以32比特为一个计数单位(组),其格式如图2所示。
  
  


  图21P数据报格式
  
  3.2IP协议的软件实现
  IP是TCP/IP协议中最为核心的协议。所有的数据都以IP数据报格式传输。IP协议可以实现无连接数据报传送、数据报路由选择和差错控制的功能。在本课题中,由于单片机资源有限,结合实际需要只实现了IP数据报传送和接收,没有实现路由选择算法和差错控制,同时也不支持IP数据报的分片和重组。
  IP协议主要通过IP接收函数和IP发送函数两个函数实现。
  ①IP发送函数
  void ip_send对来自上层的数据,按照IP数据报的结构构造数据报。通过调用ARP处理程序解析对应IP的物理地址。若返回NULL值,则将数据存入一个已定义的结构体WAITE中,并发送ARP请求。若返回对应IP的物理地址,则将数据交给底层以太网驱动程序处理。
  ②IP接收函数
  void ip rcve (UCHAR xdata*inbuf)单片机收到数据包之后,应先对数据包的类型进行判断。如果是IP数据报,则调用该程序。接着再判断其数据域中所使用的协议类型,是ICMP协议调用ICMP处理子程序,是UDP协议调用UDP处理子程序,是TCP协议调用TCP处理子程序,其它返回。程序流程图如图3所示:
  
  


  图3IP接收过程流程图
  
  3.3 校验和算法
  在大多数TCP/IP协议中采用的差错检验方法是校验和,校验和是在分组上附加的信息。校验和能够防止分组在传输时所受到的损伤。在发送端先计算检验和并将得到的结果与分组一起发送过去。接收端对包括校验和的整个分组重复进行同样的计算。若得到的结果正确则接收此分组,否则就将其丢弃。发送端和接收端的校验和计算方法分别如下:
  ①发送端按以下步骤产生校验和
  ②接收端按以下步骤产生校验和
  下面给出校验和算法的源程序:
  
  UINT Checksum (UCHAR xdata *checks UINT length)//计算校验和
  {LONG sum=0; UINT i:UINT xdata *ptr: ptr=(UINT xdata *)check;
  for (i=0:i<(length)/2;i++)
  {sum+=*ptr++;}
  if (length&0x01)//表示长度为单数
  {sum=sum+((*ptr)&Oxff00);}
  sum=(sum&Oxffff)+((sum;16)&Oxffff);//高16位和低16位相加
  if(sum&OxffffU000){sum++;}//表示有进位
  return((UINT)((sum)&Oxf});}
  
  4TCP协议的实现
  
  4.1 TCP数据报格式
  TCP(Transfer Control Protocol,传输控制协议)是传输层最常用的协议,是一个比较复杂的协议。TCP和IP一样,也是TCP/IP协议族中最重要的协议。它可以提供面向连接的、可靠的数据传输服务。TCP数据报文段格式如图4所示:
  
  


   图4TCP报文段的格式
  
  4.2 TCP协议的实现
  TCP协议的实现是整个TCP/IP协议栈中最复杂的一个。TCP协议是面向连接的、端对端的可靠通信协议。TCP采取了很多机制来保证它的可靠性,比如TCP连接的建立与关闭机制、超时重传机制、数据包确认机制、流量控制机制等等。在嵌入式系统中实现TCP协议所要做的就是实现这些机制,当然要在不影响协议栈功能的前提下适当做一下简化。
  4.3TCP的超时重传与流量控制机制的实现
  当一个TCP连接顺利建立起来后,TCP连接的双方可以互相传递数据了。TCP的可靠传输是靠确认机制来实现的,也就是每发送一个数据包后,只有接收到对方发送确认包后,才能确定该数据包已经成功发送,否则就要重发。
  TCP的流量控制是为了协调通信双方的收发速率不均衡而设计的。远端的客户机一般是通用计算机,相对与本地的嵌入式Web Server来说运行速度要快得多。因此,当远端快的发送方向本地慢的接收方发送数据的时候,如果发送速度很快,则会导致本端来不及处理,甚至导致死机。TCP连接建立时,双方会利用TCP首部中的Window窗口字段通报双方的可用窗口。实际上,接收方通报的窗口大小是根据其接收缓存的大小而定,考虑到本系统在使用TCP协议时,只设置了一个中等IP包大小接收缓存,因此接收窗口设为1024。同时,每次接收包的ACK确认时,窗口大小不再动态改变,恒定设置为1024。这样远端主机就会以较慢的传输速率与本端的Web Server进行通信。
  
  5 结论
  
  本文主要针对目前流行的TCP/IP网络通信协议的实现进行研究和探索,由于时间仓促,加上本人对该领域的研究才刚刚起步,所以还存在一些问题值得进一步研究探讨,主要有:
  (1) 对于TCP/IP协议,时间的控制非常重要。包括TCP的超时重传,TCP状态的保活等。如果时间处理不当,将影响整个系统的通讯性能。
  (2)如何进一步实现TCP/IP对于多点通信以及完整协议栈的实现还有待于进一步研究。
  (3) IPv6作为下一代互联网的核心协议,能够提供几乎无限的地址空间,从根本上克服了IPv4中地址空间不足的问题。因此,下一步可增加对IPv6协议的研究与实现。
  
  参考文献
  [1] 胡海.嵌入式TCP/IP协议栈研究与实现[D].西南交通大学,2005.8.
  [2] 袁晓莉,徐爱均.基于OS-II和TCP/IP的远程温度监测系统.2005.5.
  [3] 吴艳光.嵌入式TCP/IP协议栈设计方法的研究 [D].太原理工大学,2004.
  [4] 马永力. 基于SX52BD的嵌入式Web服务器的设计与实现.山东大学,2005.
  [5]路英娟.TCP/IP协议小议[J].科技情报开发与经济,2004(6).
  [6]葛志辉,李陶深.TCP/IP协议的脆弱性与相应的对策.2004.
  
  ---------
  作者简介:张凯(1980-),男,湖南益阳人,广东省湛江师范学院,助教,主要研究方向:计算机网络工程。(广东 湛江 524300)
  联系地址:广东省湛江市遂溪城遂海路182号, 电话:13590059258。
其他文献
1.“64位”    64位相对32位而言确实是技术的一个大提升,但是目前而言对我们普通消费者没有任何意义!不说别的,64位的XP和64位的Vista系统,在中国,买的人可能没有超过千位……为什么?因为64位离普通使用者还非常遥远!没有软件的支持,硬件上又有什么意义呢?32位太过成熟,64位太过早熟……    2.“双128”    这应该是比较老的但是在很多网友心中“根深蒂固”的用来形容显卡的词
期刊
现在BT下载很流行,网络上的资源也很多,但似乎越来越多的人都认为BT下载对硬盘是有很大损耗的,会导致硬盘寿命提前结束,甚至还有人说自已有过这样的经历。今天不讨论BT下载到底是不是会伤害硬盘,只给大家谈谈要是BT下载对硬盘有害的话,怎样来保护我们的硬盘。下面是在实际应用中的几点小技巧。     1.使用专用的硬盘     如要你有多余的硬盘,如升级淘汰下来的小硬盘,那就好说了。把那块硬盘安装到机器上
期刊
Windows Vista操作系统的桌面和以前的版本有什么不同呢?下面我们一起来看看Windows Vista下面的一些应用技巧。     1.设置桌面图标     按Windows XP的常规操作方法,只要在桌面空白处单击鼠标右键,选择右键菜单上的“属性”命令,然后在开启的“显示属性”窗口中的“自定义桌面”功能页面上进行设置即可。不过在按上述方法操作后,我们并没有在Vista的右键菜单看到“属性
期刊
相对而言,WindowsXP是微软公司所有操作系统中启动速度最快的,因为WindowsXP的内核在启动时可以平行处理多个初始化请求,并能将其预读入内存,而不用等待;同时系统自动停止不需要的请求,并能在有新的请求时自动修改读取顺序,所以启动速度比较快。  为了更好地管理系统启动性能,微软推出专门的系统启动跟踪、优化程序:Bootvis.exe。使用该程序我们能直观地了解启动时的系统进程,加快系统的启
期刊
在日常使用Word2007的过程中,我们应该尽量地能规范Word2007文档,这样不仅便于浏览,而且也使得文档看上去更加美观。如果你需要将 Word2007打印或者编订的话,符合规范的文档就显得非常的重要。规范的文档制作并非是困难的,只要你能掌握一些小技巧。  本文将为你简单介绍如何规范Word2007文档。说起来其实只需要三部分就可以:页面的整体设定(方便打印和后期装订)、文字内容样式和段落的调
期刊
在讲刷新的作用之前,我们先来看看网友是如何看桌面刷新的,他们对于刷新的理解是什么。    测试电脑:    “测试电脑有没有卡,慢不慢,如果一闪即过代表电脑运行正常,如果刷新的缓慢有卡顿的现象则说明电脑运行出现问题了。” ——网友小洁    小编点评:这位网友的观点也不无道理。    狂点刷新是为了过瘾:    “我也不知道刷新有什么用,就感觉刷新的时候桌面一闪一闪的,看着挺过瘾,所以没事的时候就
期刊
摘要:本文结合IP专用网络系统的应用特点,对系统安全的需求进行了分析,从网络安全需求分析、设计目标和原则,以及方案设计等方面加以详细的阐述,提出了IP专用网络系统安全方案的设计思想。  关键词:IP专用网络;网络安全;系统    1 概述    近年来IP网络不断发展,资源共享给军事、政治和经济等领域带来了不尽的方便与快捷。在网上可以随时索取所需资料,可以传送电子邮件,还可以网上购物等等。然而当计
期刊
摘要:本文通过对Blog 的发展状况、概念、特征的了解,探讨了Blog图书馆个性化服务的应用并提出几点设想。  关键词:Blog;图书馆;个性化服务    Blog是作为继E-MAIL、BBS、ICQ之后出现的第四种网络化交流方式,已经越来越引起人们的重视,其核心内容是为了满足用户的个性化需求。Blog是个人性和公共性的结合,是知识过滤、知识积累、知识传播的整合,这也正符合图书馆的基本特征。精神旨
期刊
摘要:CDMA 1X VPDN是专门针对移动用户接入企业内部专网的一种移动办公系统平台解决方案,是在VPDN的基础上增加了无线上网的概念,利用CDMA高速分组数据网络,结合隧道协议及相应的认证和授权机制,为移动用户构建虚拟专用拨号网,通过专用的网络加密通信协议,实现移动用户在任何时间和地点都能够安全地接入企业内部专网,访问内部资源的目的。  关键词:CDMA;VPDN;移动办公    从移动通信的
期刊
摘要:本文在对C/S与P2P网络计算模式优劣分析的基础上,对其在网络信息与资源共享、信息交互与信息搜索方面进行了对比分析。  关键词: C/S;P2P;信息资源共享    Internet上汇集的成千上万的信息资源、数据资源、软件资源、硬件资源等等,共同构成了生产、传播和使用信息的重要载体。人们希望使这些信息资源能得到充分共享和利用,更好地为人类服务。但是,网络计算模式的不同,也影响着信息资源共享
期刊