UDP数据的封装与拆装..doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UDP数据的封装与拆装.

UDP数据的封装与拆装 2.1 UDP封装的基本内容[4] 收到应用层提交的数据后,将其分段,并在每个分段前封装一个UDP头,最终的IP包是在UDP头之前再添加IP头形成的。IP用协议号17标识UDP。 由于功能简单,UDP头相对于TCP头简化了很多,UDP头包含以下字段: 1.源端口:16位的源端口号,含义与TCP相同 2.目的端口:16的目的端口号,含义与TCP相同 3.长度:16位的长度字段,表明包括UDP头和数据在内的整个UDP数据报的长度,单位为字节。 4.检验和:16位的错误检查字段,基于部分IP头信息、UDP头和载荷数据的内容计算得到,用于检测传输过程中出现的错误。 2.2 UDP的封装与拆装[10] 要从进程将报文发送到另一个进程,UDP协议就要将报文进行封装和拆装,如下(图16): UDP端口号(源、目的) IP地址(源、目的) 物理网络地址(源、目的)MAC地址 封装 拆装 图16 封装:当进程有报文要通过UDP发送时,它就将此报文连同一对插口地址以及数据的长度传递给UDP。UDP收到数据后就加上UDP首部。然后UDP就将这用户数据报连同插口地址一起传递给IP。IP加上自己的首部,在协议字段使用值17,指出这数据是从UDP协议来的。这个IP数据报在传递给数据链路层。数据链路层收到IP数据报后,加上自己的首部(可能还有尾部),再传递给物理层。物理层将这些比特编码为电信号或光信号将其发送到远程的机器上。   拆装:当这个报文到达目的只及时,物理层对信号解码,将其变为比特,传递给数据链路层。数据链路层使用其首部(和尾部)检查数据。若无差错,则剥去首部和尾部,并将数据报传递给IP,IP软件进行它的检查。若无差错,就剥去首部,将用户数据报连同发送端和接收端的IP地址一起传递给UDP,UDP使用检验和对整个用户数据报进行检查。若无差错,则剥去首部,将应用数据连同发送端的插口地址一起传递给接收进程。在需要回答收到的报文时,就应将发送端的插口地址传递给进程。 2.3 UDP封装的应用[14] 网络安全协议IPSec是目前适用于所有Internet通信的新一代安全技术标准,它可以“无缝”的为IP引入安全特性,并为数据提供身份认证,完整性检验,抗重播攻击以及加密等级制,网络地址转换NAT和IPSec与NAT一直都有矛盾,NAT进行地址映射的时候要对IP包进行修改,然而对于IPSec报文,这些信息是无法修改的,所以普通的IPSec报文无法穿越NAT设备,这是一个急需解决的问题,也是目前研究的一个难点。 目前解决IPSec与NAT不兼容问题的思路中,UDP封装法是比较好的一种方案,我们需要一个不用对NAT设备位置进行控制的“主动”地解决方法,用UDP协议封装IPSec数据包可以满足这个要求。 2.3.1 因特网工程任务组的UDP封装格式[14] UDP封装的核心思想是把IPSec信包装入一个UDP/IP分组,然后让NAT去修改附加的UDP/IP分组,在IETF的一个草案中,提出了一种封装的方法,并给出了数据包的封装格式,其中前8字节为标准的UDP包头,源端口与目的端口采用与IKE相同的值,校验和为0.非IKE标志位全0的8个字节,以与发起者的IKE的cookie保持对齐。 2.3.2 因特网工程任务组UDP封装法中存在的问题[14] 经过分析,IETF UDP封装法方案在解决兼容性方面仍然存在着几个问题: 1.在IPSec中,进入的安全关联SA由三个参数确定,即地址、协议、安全参数索引SPI。若采用NAPT,在外部主机上面会有多个地址相同,SPI不同的SA。在处理进入数据包的时候,可以采用SPI值的不同来定位SA,而在处理外出数据包的时候,就不可能从多个有相同地址的外出SA中选择正确地SA了。 2.若NAT网关为NAPT,发往内部各主机数据包的UDP封装的目的端口号都为500,这样一来,NATP就无法分解各个数据包究竟应该发送到内部的哪一台主机 3.从外部主机向NAT网关内的主机发送数据时,需要用该主机的私网IP地址为目的地址来定位SA,因此对于进入外部主机的数据包必须将其源地址恢复成私网的IP地址后传递给上层协议,如果不对进入数据包的源地址进行处理,会导致在发送相应数据包时无法正确定位相应的SA 对于以上缺陷,现在已经有了一些解决方案,比如设计NAT-T模块以及NAT模块,利用NAT-T模块进行UDP封装和解封装,利用NAT模块进行私网公网地址的转换 2.3.3 改进UDP封装方法 改进的UDP封装方法是针对原有UDP封装方法的缺陷而设计的,它能够克服原有方案的缺点,更好的解决IP

文档评论(0)

kaiss + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档