资源描述
张建忠徐敬东编著机械工业出版社出版ISBN:9787111305194,第6章IP数据报,IP数据报的格式,IP数据报包含报头区和数据区两部份数据区:高层传输的数据报头区:为了正确传输高层数据而增加的控制信息,报头中各主要字段的功能(1/2),版本与协议类型版本:数据报对应的IP协议版本号(目前使用的IP协议版本号为4)协议类型:数据报数据区数据的高级协议类型(如TCP)长度报头长度:报头区的长度(以32bit双字为单位)总长度:整个IP数据报的长度(以8bit字节为单位)服务类型转发过程中对该数据报的处理方式,报头中各主要字段的功能(2/2),生存周期:IP数据报在互联网中的存活时间(避免死循环)头部校验和:保证IP数据报报头的完整性地址:IP地址采用32位的地址形式源IP地址:数据报的发送者目的IP地址:数据报的接收者,IP头部校验和算法(1/2),将IP头部看成16位字组成的二进制数据序列,把头部校验和字段置为0对IP头部中每个16位字进行求和运算。如果求和过程中遇到溢出则进行回卷(即如果求和过程中遇到进位,则将进位加至结果的最低位)对求和的结果取反,得到最终的头部校验和值,IP头部校验和算法(2/2),IP数据报的封装,MTU,MTU:一个帧最多能够携带的数据量IP数据报的长度只有小于或等于网络的MTU,才能在这个网络传输与路由器连接的各个网络的MTU可能不同,分片,分片:IP数据报的尺寸大于将发往网络的MTU值时,路由器将IP数据报分成若干较小的部分的过程分片由报头区和数据取两部分构成每个分片经独立的路由选择等处理过程,最终到达目的主机,重组,重组:在接收到所有分片的基础上,主机对分片进行重新组装的过程目的主机进行重组减少了中间路由器的计算量路由器可以为每个分片独立选路中间路由器不需要对分片进行重组,也不可能对分片进行重组,分片控制,标识:源主机赋予IP数据报的标识符需复制到新分片的报头中目的主机利用此域和目的地址判断分片属于哪个数据报标志:是否已经分片,是否是最后一个分片片偏移本片数据在初始IP数据报数据区的位置偏移量以8个字节为单位,IP数据报选项,功能:主要用于控制和测试用户可以使用也可以不使用IP选项,但所有实现IP协议的设备必须能处理IP选项IP数据报选项由选项码、长度和选项数据三部分组成,源路由选项,源路由:IP数据报穿越互联网所经过的路径是由源主机指定的应用场合:测试特定网络的吞吐率、使数据报绕开出错网络等源路由选项分为严格源路由选项:规定IP数据报需经过的每个路由器松散源路由选项:给出IP数据报需经过的一些“要点”,记录路由选项,记录路由:记录IP数据报从源主机到目的主机所经过路径上各个路由器的IP地址应用场合查看IP数据报传输过程中所经过的路径测试路由器的路由配置是否正确,时间戳选项,时间戳:记录IP数据报经过每一路由器时的当地时间应用场合:分析网络吞吐率、拥塞情况、负载情况等,差错与控制报文,IP互联网利用ICMP传输控制报文和差错报文ICMP报文封装在IP数据报中传递,ICMP差错控制,提供差错报告是ICMP的基本功能之一ICMP不严格规定如何处理差错ICMP差错报告采用路由器到源主机模式IP数据报只包含源主机地址和目的主机地址,错误报告给目的主机没有意义(有时也不可能)路由器独立选路,发现错误的路由器不知道数据报经过的路径,无法通知相应路由器,ICMP差错报文的主要特点,ICMP差错报告作为一般数据传输,不享受特别优先权和可靠性ICMP差错报告数据中除包含故障IP数据报报头外,还包含故障IP数据报数据区的前64bit数据ICMP差错报告是伴随着抛弃出错IP数据报而产生的,ICMP主要差错报告类型,目的地不可达报告:网络不可达、主机不可达、协议和端口不可达等超时报告参数出错报告,ICMP控制报文,拥塞控制与源抑制报文路由控制与重定向报文ICMP请求/应答报文对,拥塞控制与源抑制报文(1/2),拥塞:路由器被大量涌入的IP数据报“淹没”的现象拥塞原因路由器的处理速度太慢路由器传入数据速率大于传出数据速率拥塞控制:源站抑制(抑制源主机发送速率),拥塞控制与源抑制报文(2/2),发送源站抑制报文策略输出队列溢出后,抛弃新来的数据报,而后发送设置阈值,超过后抛弃新来的数据报,而后发送有选择地抑制IP数据报发送率较高的源主机接收源站抑制报文可降低发送IP数据报的速率注意:拥塞解除后路由器不主动通知源主机,路由控制与重定向报文,ICMP重定向机制主机在启动时具有一定的路由信息,但不一定是最优的路由器检测到IP数据报经非优路由传输,就通知主机去往该目的地的最优路径功能:保证主机拥有动态的、既小且优的路由表ICMP重定向机制只能在同一网络的路由器与主机之间使用,ICMP请求/应答报文对,回应请求与应答:测试目的主机或路由器的可达性时戳请求与应答:获取其他设备的当前时间掩码请求与应答:从路由器获取本网的子网掩码,回应请求与应答ICMP的机理,请求者向特定目的IP地址发送包含任选数据区的回应请求报文目的主机或路由器收到后响应应答报文(包含请求报文中任选数据的拷贝),请求者成功收到应答可说明什么?,目的主机(或路由器)可以到达源主机与目的主机(或路由器)的ICMP软件和IP软件工作正常回应请求与应答ICMP报文经过的中间路由器的路由选择功能正常,实验:IP数据报捕获与分析,实验环境:以太网环境实验方法现有监听与分析工具(如snort、iris、tcpdump等)利用WinPcap或LibPcap编写捕获与分析程序实验目的学习网络数据包捕获方法初步掌握网络监听与分析技术的实现过程理解IP数据报校验和计算方法,WinPcap,是一个开源的、运行于Win32平台的体系结构主要功能:数据包捕获和网络分析packet.dll:内核级、低层次的包过滤动态连接库wpcap.dll:高级别系统无关函数库安装和使用:http:/winpcap.polito.it安装WinPcap驱动程序和DLL程序开发工具包:库文件、包含文件、简单的示例程序代码和帮助文件,获取设备列表,释放设备列表,例:本机接口和IP地址的获取,打开网络接口,捕获网络数据包,创建基于WinPcap的应用程序,添加pcap.h包含文件:在使用WinPcap函数的所有源文件中添加pcap.h“#includepcap.h”增加与WinPcap有关的预处理器定义:WPCAP和HAVE_REMOTE选择“配置属性”树中的“C/C+预处理器”选项添加包含文件目录:执行“工具”菜单中的“选项”命令后选择“项目VC+目录包含文件”添加wpcap.lib库文件:执行“项目”菜单中的“添加现有项”命令,在“添加现有项”对话框中选择并添加wpcap.lib,创建数据包捕获工作者线程,创建函数数据包捕获工作者线程,消息处理,定义用户自定义的消息声明和编写消息处理函数将消息和消息处理函数联系在一起向窗口发送消息:PostMessage()和SendMessage(),例:消息处理,字节顺序,网络序主机序u_shortntohs(u_shortnetshort)u_longntohl(u_longnetlong)主机序网络序u_shorthtons(u_shorthostshort)u_longhtonl(u_longhostlong),以太网帧和IP数据报的结构定义,例:提取源IP地址和目的IP地址,捕获IP数据报并验证其正确性,
展开阅读全文