基于TCPIP网络数据转发.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于TCPIP网络数据转发

基于TCPIP网络数据转发   摘要:以实例证明了计算机网络中数据按层转发的过程,结合局域网中交换机与路由器对数据转发过程进行了具体说明。   关键词:TCP/IP 协议层 数据转发      一个计算机网络通常是由多个互连的结点组成。而结点之间需要不断的交换数据与控制信息。要做到有条不紊地交换数据,每个结点都要遵守一些事先约好的规则。这些规则明确地规定了所交换数据的格式和时序。这些为网络数据交换而制定的规则、约定与标准就是网络协议(Pmtoeol)。   交换机是工作在数据链路层的设备,主要用于局域网中的网络连接,采用以太网技术。在交换机中采用主板总线的结构,为每个端口提供一个独立的共享介质,即每个冲突域仅有唯一的一个端口。在交换式以太网中每一个端口只连接一台主机或一个以太网集线器,从而解决了共享介质冲突问题。   以太网交换机在数据链路层进行数据转发时,需要确认数据帧应该发送到哪一端口,而不是简单的向所有端口进行转发,从而提高网络的利用率,这就是交换机的MAC地址表的功能。   由于广播被转发到的所有设备被认为是在同一个广播域中,这会带来一个问题,当通信量很大时,会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴。阻止广播风暴在互联网中传播的惟一方法是使用第三层设备。      一、以太网接口的数据实现      Net/3在协议栈底部的接口层(包括在本地网上发送和接收分组的硬件与软件)试图在网络协议和连接到一个系统的网络设备的驱动器间提供一个与硬件无关的编程接口。每一个设备驱动程序为一个网络接口进行初始化,并进行其后的帧的传输和接收。Net/3提供了各种驱动程序,其中一例的数据结构和函数如图1所示,   各函数功能如下:   (1)leiner函数,以太网帧接收开始,当接口产生一个中断时,leiner被调用。在正常操作中,一个以太网接口接收发送到它的单播地址和以太网广播地址的帧。当一个完整的帧可用时,接口就产生一个中断,并且内核调用leintr。leiner检测硬件,并且如果有一个帧到达,就调用leread把这个帧从接口转移到一个mbuf链(一个通过m_next指针链接的mbuf链表)中。如果硬件报告一个帧已传输完或发现一个差错(如一个有错误的检验和),则leintr更新相应的接口统计,复位这个硬件,并调用lestart来传输另一个帧。所有以太网设备驱动程序将它们接收到的帧传给ether_input做进一步处理。设备驱动程序构造的mbuf链不包括以太网首部,以太网首部作为一个独立的参数传递给ether_input。   (2)leread函数,函数leread的开始是由leiner传给它的一个连续的内存缓冲区,并且构造了一个ether header结构和一个mbuf链。这个链表存储来自以太网帧的数据。   (3)Ether_output函数,所有以太网设备的if_output是ether_output。Etherl_output用14字节以太网首部封装一个以太网帧的数据部分,并将它放置到接口的发送队列中。   (4)lestart函数,函数lestart从接口输出队列中取出排队的帧,并交给以太网卡发送。如果设备空闲,调用此函数开始发送帧。      二、数据在路由器中的转发      在图中主机A上的某个用户ping主机B的IP地址。其中各设备端口的IP地址如图2所示,以此为例,讨论ping指令的访问过程。   (一)因特网控制报文协议(ICMP)将创建一个回应请求数据包并把这个请求数据包交给IP协议,IP协议创建一个数据包。包头中含有源IP地址、目的IP地址和协议字段。   (二)IP协议判断目的IP地址是处在本地网络中。还是处在一个远程网络上。由于IP协议断定这是一个远程请求,这个数据包被送到默认网关,Windows中的注册表启动查找被配置的默认网关。主机172.16.10.2的默认网关是172.16.10.1即路由器的EO口地址。因为主机A与路由器的EO口在同一个局域网内,必须要知道EO口的硬件地址。以便封装成帧,再发送给路由器与172.16.10.0网络的连接端口。   (三)主机A检查ARP缓存,查看默认网关的IP地址是否已经解析为硬件地址,如果解析,数据包将被释放、传送到数据链路层用于组装成帧;如果这个硬件地址尚未解析,一个ARP广播将被发送到此本地网络,以求得172.16.10.1的硬件地址。路由器会响应这个请求并把EO口的硬件地址提供给主机A,接着,主机A将缓存这个地址。同时,路由器也会缓存这个主机A的硬件地址到ARP缓存中。   (四)局域网驱动器提供媒体访问产生以太网数据帧,并使用控制信息来封装此数据包。在这个帧中包含有目的方和源方的硬件地址,

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档