直接网络编程课件

上传人:我*** 文档编号:143884282 上传时间:2020-09-02 格式:PPT 页数:16 大小:789KB
返回 下载 相关 举报
直接网络编程课件_第1页
第1页 / 共16页
直接网络编程课件_第2页
第2页 / 共16页
直接网络编程课件_第3页
第3页 / 共16页
直接网络编程课件_第4页
第4页 / 共16页
直接网络编程课件_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《直接网络编程课件》由会员分享,可在线阅读,更多相关《直接网络编程课件(16页珍藏版)》请在金锄头文库上搜索。

1、网络编程与开发技术,天津职业技术师范大学 信息学院,第7章 直接网络编程技术,内 容 提 要,1、概述 2、数据链路层帧与网络协议数据单元结构 3、原始套接字编程 4、基于Winpcap的网络数据包捕获技术 5、基于libnet的网络数据包构造技术,7.1 概述,第七章 直接网络编程技术,常规网络编程方法一般无法直接访问到位于网络层和数据链路层的网络协议。NetBIOS主要在会话层和传输层发挥作用,而Winsock工作在TCP/IP协议的传输层,两者都无法直接对传输层以下的网络协议进行直接操作。对网络设计和维护人员或者需要网络其它高级应用的用户而言,这两种编程接口就暴露出其内在的局限性:用户无

2、法控制底层网络协议的操作,无法直接取得数据链路层帧和网络层数据包,无法根据用户需求产生特定的网络流量。本章介绍几种不同的直接网络编程方法。 第一种:原始套接字方法。原始套接字可以对底层的传输协议加以控制,对IP头信息进行实际的操作,通过它可以模拟一些IP的实用工具,如traceroute和ping等。 第二种:基于Winpcap的网络数据包捕获技术。通过WinPcap可以捕获网络中各种链路层数据帧,为用户分析网络运行状况提供支持。 第三种:基于libnet的网络数据包构造技术。libnet提供了一个跨平台的网络数据包构造和发送编程接口。,7.2 数据链路层帧与网络协议数据单元结构,第五章 多线

3、程结构的网络编程,以太网数据链路层帧结构 TCP/IP协议族协议数据单元结构 TCP/IP网络层协议及其协议数据单元 路由器协议 TCP/IP传输层协议及其协议数据单元,7.2.1 以太网数据链路层帧结构,第七章 直接网络编程技术,IEEE802.3定义了一种具有七个字段的帧(MAC):前导符,SFD,目标地址,源地址,PDU的长度/类型,数据以及CRC。以太网不提供对收到的帧进行确认的任何机制,这使它成为一种不可靠的介质。确认必须在高层完成。CSMA/CD中MAC帧的格式如图所示。,IEEE802.3MAC帧结构,前导符(Preamble): 包含7个字节(56位),其中1和0交替出现,警告

4、接收系统即将有数据帧到来,同时使系统能够同步输入时序。 起始帧分界符(SFD):这个字节为10101011,标志帧的开始。SFD通知接收方后面所有的内容都是数据。 目标地址(DA):DA字段为6个字节,包含了数据帧的目的物理地址。一个系统的物理地址是一个在它的网络接口卡(NIC)上编码的比特模式。每一个NIC有一个独一无二的地址将它和其它所有的NIC区别开来。,7.2.1 以太网数据链路层帧结构,第七章 直接网络编程技术,源地址(SA):SA同样分配了6个字节,包含转发数据帧的最后一个设备的物理地址。该设备可以是发送站点,也可以是接收和转发数据包的最近路由器。 PDU的长度/类型: 源地址后面

5、的两个字节指出到来的PDU中的字节数。如果PDU的长度是固定的,那么这个字段可以用来表示数据类型,如IP(0 x0800)、ARP(0 x0806)、RARP(0 x8035)、XNS(0600)等。在以太网中,如果高层协议采用IP协议,则MAC帧的结构如下图(没有标出前导符和起始帧分界符)。NIC有一个独一无二的地址将它和其它所有的NIC区别开来。,目的地址,源地址,类型字段,协议标识:IP(TCP/IP),高层采用IP协议的MAC帧结构,协议标识:ARP协议,高层采用ARP协议的MAC帧结构,7.2.1 以太网数据链路层帧结构,第七章 直接网络编程技术,数据:保存高层协议的数据(PDU)。

6、 CRC:802.3帧的最后一个字段是检错信息,通常为CRC-32。,目的地址,源地址,类型字段,协议标识:RARP协议,高层采用RARP协议的MAC帧结构,7.2.2 TCP/IP协议族协议数据单元结构,第七章 直接网络编程技术,TCP/IP是一系列协议,或者说是一个协议族, TCP/IP是根据它最常用的两个协议命名的。它定义了数据传输如何通过因特网进行交换。利用TCP/IP的因特网就如同由许多大小和类型不同的计算机连结起来的单个网络。,实际的因特网,TCP/IP看到的因特网,因特网结构,7.2.2 TCP/IP协议族协议数据单元结构,第七章 直接网络编程技术,TCP/IP协议由五层构成:物

7、理层、数据链路层、网络层、传输层和应用层。TCP/IP中的应用层等价于OSI中的会话层、表示层和应用层的集合。在传输层,TCP/IP定义了两个协议:TCP和UDP。在网络层,TCP/IP定义的主要协议是网际协议(IP),还有其它一些用于支持数据传输的协议。,7.2.3 TCP/IP网络层协议及其协议数据单元,第七章 直接网络编程技术,(1)IP协议 IP是TCP/ IP协议中所使用的传输机制,它是一个不可靠和无连接的数据报协议。IP协议以数据包的形式独立传输数据。IP数据包格式如图所示。数据包长度可变(最多可达65536个字节),由两个部分组成:报文头和数据。报文头可以为2060个字节,包括对

8、路由和传输必须的信息。,7.2.3 TCP/IP网络层协议及其协议数据单元,第七章 直接网络编程技术,版本:定义了IP的版本号。当前的版本是4(IPv4)。 报文头长度(HLEN): HLEN字段以4字节为单位定义了报文头的长度。 服务类型:定义了应该如何处理数据报。它包括数据报的优先级比特、发送者所需要的服务类型,如吞吐量、可靠性以及时延。 总长度:两个字节总长度字段定义了IP数据报的总长度,长达65536个字节。 标识:数据包的序列号。当数据报被分段时,每个分段将使用同一序列号。 标志:用在分段中,表示数据报是否被分段;是中间段还是最后一个分段。 段偏移:段偏移表示数据在原始数据报中的偏移

9、(如果被分段)。 生存期:生存期字段定义了数据报在被丢弃前可以传输的跳数。 协议:协议字段定义了封装在数据报中的是哪一种上层协议数据。 头部校验和:这是一个16比特的字段,用于检查报文头是否正确。 源IP地址:是一个4字节的IP地址,指明数据包的初始地址。 目的IP地址:是一个4字节的IP地址,指明数据包的最终目的地址。 选项:选项字段为IP数据报提供了更多的功能。它可以携带用来控制路由、时序、管理和定位的字段。,7.2.3 TCP/IP网络层协议及其协议数据单元,第七章 直接网络编程技术,(2)ARP协议 地址解析协议(ARP)将IP地址与物理地址相联系。当一台主机或路由器需要找到在其网络中

10、另一台主机的物理地址时,它就形成一个包含IP地址的ARP查询包,并将这个包在网络上广播。网络中的每一个主机都会收到并处理这个ARP包,但是只有预期的接收者可以识别出它的IP地址,并将其物理地址发送回来。拥有数据包的主机将目标主机的地址同时加到高速缓存和数据报报文头中,然后将数据报发送出去。 (3)RARP协议 逆向地址解析协议(RARP)允许主机仅仅知道物理地址的情况下找到自己的IP地址。RARP的工作原理与ARP类似。想要获得自己IP地址的主机对网络中的每一台主机广播一个包含其物理地址的RARP查询包。网络上的RARP服务器识别出RARP包,并返回主机的IP地址。,7.2.3 TCP/IP网

11、络层协议及其协议数据单元,第七章 直接网络编程技术,(4)ICMP协议 因特网控制报文协议(ICMP)是由主机和路由器所使用的一种机制,用来向发送者通知IP数据报所发生的问题。因为IP是无连接的,它无法将报文和错误信息传到最初的主机,ICMP协议代替IP完成这些功能,将状态信息和错误信息发送到发报文的主机。ICMP利用IP通过网络运载ICMP数据。ICMP仅仅是将IP当作运输工具,ICMP数据是封装在IP包中的。,7.2.3 TCP/IP网络层协议及其协议数据单元,第七章 直接网络编程技术,ICMP报文的第一部分是类型域,表明采用的模式。类型域中可能出现的数值及其含义如表所示。ICMP报文中的

12、下一个是代码域。它也分配有数值,不同的数值有不同的含义。检验和域是在ICMP报文中从ICMP类型开始计算。下一个字段是未使用的域。数据字段保存IP报头和数据报。,7.2.3 TCP/IP网络层协议及其协议数据单元,第七章 直接网络编程技术,(5)IGMP协议 IP协议可以包括在两种类型的通信中:单播和组播。单播是指在一个发送者和一个接收者之间的通信。但有时需要将相同的报文同时发送给很多的接收者,这种情况称为组播,它是一对多的通信。 IP寻址支持组播,所有1110开头的(D类)32比特的IP地址都是组播地址。28比特留做组地址,有超过250 000 000个地址可用于分配,其中有些地址是永久指定

13、的。因特网组报文协议(IGMP)被设计用来帮助组播路由器标识LAN中的主机,这些主机是组播组的成员。 与ICMP类似,IGMP同样利用IP通过网络运载IGMP数据。IGMPv报文的第一部分是版本号;第二部分是类型域,表明采用的模式(查询或者报告)。第三部分是是未使用的域;第四部分是检验和;最后一部分是组播地址(报告类型),或者为0(查询)。,7.2.3 TCP/IP网络层协议及其协议数据单元,第七章 直接网络编程技术,(5)IGMP协议 IP协议可以包括在两种类型的通信中:单播和组播。单播是指在一个发送者和一个接收者之间的通信。但有时需要将相同的报文同时发送给很多的接收者,这种情况称为组播,它是一对多的通信。 IP寻址支持组播,所有1110开头的(D类)32比特的IP地址都是组播地址。28比特留做组地址,有超过250 000 000个地址可用于分配,其中有些地址是永久指定的。因特网组报文协议(IGMP)被设计用来帮助组播路由器标识LAN中的主机,这些主机是组播组的成员。 与ICMP类似,IGMP同样利用IP通过网络运载IGMP数据。IGMPv报文的第一部分是版本号;第二部分是类型域,表明采用的模式(查询或者报告)。第三部分是是未使用的域;第四部分是检验和;最后一部分是组播地址(报告类型),或者为0(查询)。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号