当前位置:文档之家› 网络协议分析与编程-14_WinSock编程

网络协议分析与编程-14_WinSock编程

WinSock编程基本概念

编程原理

编程实例

基本概念

套接字(socket)

网络字节顺序

客户机/服务器模式

套接字(socket)的引入

为了能够方便的开发网络应用软件,由美国伯克利大学在Unix上推出了一种应用程序访问通信协议的操作系统调用socket(套接字)。socket的出现,使程序员可以很方便地访问TCP/IP,从而开发各种网络应用的程序。

随着Unix的应用推广,套接字在编写网络软件中得到了极大的普及。后来,套接字又被引进了Windows等操作系统,成为开发网络应用程序的非常有效快捷的工具。

Windows Sockets的实现

Windows Sockets是Microsoft Windows的网络程序设计接口,它是从Berkeley Sockets扩展而来的,以动态链接库的形式提供给我们使用。Windows Sockets在继承了Berkeley Sockets主要特征的基础上,又对它进行了重要扩充。这些扩充主要是提供了一些异步函数,并增加了符合Windows 消息驱动特性的网络事件异步选择机制。

Windows Sockets 1.1和Berkeley Sockets都是基于TCP/IP协议的;Windows Sockets 2从Windows Sockets 1.1发展而来,与协议无关并向下兼容,可以使用任何底层传输协议提供的通信能力,来为上层应用程序完成网络数据通讯,而不关心底层网络链路的通讯情况,真正实现了底层网络通讯对应用程序的透明。

Windows Sockets

开放的,支持多协议的Windows网络编程接口。

由开发组件和运行组件两部份组成。

介绍文档、引入库、

头文件(WINSOCK.H)。

动态链接库(Winsock.dll)。

套接字的类型

流式套接字(SOCK_STREAM)

提供面向连接、可靠的数据传输服务,数据无差错、无重复的发送,且按发送顺序接收。

数据报式套接字(SOCK_DGRAM)提供无连接服务。数据包以独立包形式发送,不提供无错保证,数据可能丢失或重复,并且接收顺序混乱。

原始套接字(SOCK_RAW)。

套接字存在于通信区域中。通信区域也叫地址族,它是一个抽象的概念,主要用于将通过套接字通信的进程的共有特性综合在一起。套接字通常只与同一区域的套接字交换数据(也有可能跨区域通信,但这只在执行了某种转换进程后才能实现)。Windows Sockets只支持一个通信区域:网际域( AF_INET),这个域被使用网际协议簇通信的进程使用。

网络字节顺序

不同的计算机存放多字节值的顺序不同,有的机器在起始地址存放低位字节(低位先存),有的机器在起始地址存放高位字节(高位先存)。基于Intel的CPU,即我们常用的PC机采用的是低位先存。为保证数据的正确性,在网络协议中需要指定网络字节顺序。TCP/IP协议使用16位整数和32位整数的高位先存格式。

客户机/服务器模式

在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户机/服务器模式(client/server),即客户向服务器提出请求,服务器接收到请求后,提供相应的服务。

模式建立基础

首先,建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用。

其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步,这就是基于客户机/服务器模式的TCP/IP。

C/S模式操作过程(1)

首先服务器方要先启动,并根据请求提供相应的服务:①打开一个通信通道并告知本地主机,它愿意在某一地址和端口上接收客户请求。

②等待客户请求到达该端口。

③接收到重复服务请求,处理该请求并发送应答信号。接收到并发服务请求,要激活一个新的进程(或线程)来处理这个客户请求。新进程(或线程) 处理此客户请求,并不需要对其它请求作出应答。服务完成后,关闭此新进程与客户的通信链路,并终止。

④返回第二步,等待另一客户请求。

⑤关闭服务器。

C/S模式操作过程(2)

客户方:

①打开一个通信通道,并连接到服务器所在主机的特定端口。

②向服务器发服务请求报文,等待并接收应答;继续提出请求。

③请求结束后关闭通信通道并终止。

基于TCP(面向连接)的socket编程

服务器端程序:

1、创建套接字(socket)。

2、将套接字绑定到一个本地地址和端口上(bind)。

3、将套接字设为监听模式,准备接收客户请求(listen)。

4、等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept)。

5、用返回的套接字和客户端进行通信(send/recv)。

6、返回,等待另一客户请求。

7、关闭套接字。客户端程序:

1、创建套接字(socket)。

2、向服务器发出连接请求(connect)。

3、和服务器端进行通信(send/recv)。

4、关闭套接字。

基于UDP(面向无连接)的socket编程

服务器端(接收端)程序:

1、创建套接字(socket)。

2、将套接字绑定到一个本地地址和端口上(bind)。

3、等待接收数据(recvfrom)。

4、关闭套接字。客户端(发送端)程序:

1、创建套接字(socket)。

2、向服务器发送数据(sendto)。

3、关闭套接字。

recvfrom() / Sendto()Sendto() / recvfrom()

相关函数说明

int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData);

wVersionRequested参数用于指定准备加载的Winsock 库的版本。高位字节指定所需要的Winsock库的副版本,而低位字节则是主版本。可用MAKEWORD(x,y)(其中,x是高位字节,y是低位字节)方便地获得wVersionRequested的正确值。

lpWSAData参数是指向WSADATA结构的指针,WSAStartup用其加载的库版本有关的信息填在这个结构中。

续:

WSADATA结构定义如下:

typedef struct WSAData{

WORD wVersion;

WORD wHighVersion;

char szDescription[WSADESCRIPTION_LEN+1]; char szSystemStatus[WSASYS_STATUS_LEN+1]; unsigned short iMaxSockets;

unsigned short iMaxUdpDg;

char FAR * lpVendorInfo;

} WSADATA, *LPWSADATA;

续:

WSAStartup把第一个字段wVersion设成打算使用的Winsock版本。wHighVersion参数容纳的是现有的Winsock库的最高

版本。记住,这两个字段中,高位字节代表的是Winsock

副版本,而低位字节代表的则是Winsock主版本。

szDescription和szSystemStatus这两个字段由特定的Winsock 实施方案设定,事实上没有用。不要使用下面这两个字段:iMaxSockets和iMaxUdpDg,它们是假定同时最多可打开多少套接字和数据报的最大长度。然而,要知道数据报的最大长度应该通过WSAEnumProtocols来查询协议信息。同时最多可打开套接字的数目不是固定的,很大程度上和可用物理内存的多少有关。最后,lpVendorInfo字段是为

Winsock实施方案有关的指定厂商信息预留的。任何一个

Win32平台上都没有使用这个字段。

续:

如果WinSock.dll或底层网络子系统没有被正确初始化或没有

被找到,WSAStartup将返回WSASYSNOTREADY。此外这

个函数允许你的应用程序协商使用某种版本的WinSock规

范,如果请求的版本等于或高于DLL所支持的最低版本,

WSAData的wVersion成员中将包含你的应用程序应该使用的版本,它是DLL所支持的最高版本与请求版本中较小的

那个。反之,如果请求的版本低于DLL所支持的最低版

本,WSAStartup将返回WSAVERNOTSUPPORTED。关于

WSAStartup更详细的信息,请查阅MSDN中的相关部分。

对于每一个WSAStartup的成功调用(成功加载WinSock

DLL后),在最后都对应一个WSACleanUp调用,以便释放为该应用程序分配的资源。

网络协议分析期末

网络协议分析 Chap 1——TCP/IP 概述 1.用IP实现异构网络互联(IP能够屏蔽底层物理网络的差异,向上提供一致性) 2.通用的协议分层思想: (1)第N层实体在实现自身定义的功能的时候,只能使用第N-1层提供的服务 (2)N层向N+1层提供服务,该服务不仅包括N层本身所具备的功能,还包括由下层服务提供的功能总和 (3)最底层只提供服务,是提供服务的基础;最高层只是用户,是使用服务的最高层,中间各层既是下一层的用户,又是上一层的服务提供者 (4)仅在相邻层间有借口,且下层服务的实现细节对上层完全透明 3.TCP/IP分层模型 分层优势:简化问题,分而治之,有利于软件升级换代 应用层、传输层、IP层、网络接口层、物理层 分层缺点:效率低 1.各层之间相互独立,都要对数据进行分别处理 2.每层处理完毕都要加一个头结构,增加了通信数据量 TCP/IP的分层原则:信宿机第n层收到的数据与信源机第n层发出的数据完全一致。 应用层:提供通用的应用程序,如电子邮件、文件传输等。 传输层:提供应用程序间端到端的通信 ①格式化信息流②提供可靠传输③识别不同应用程序 IP层:负责点到点通信 ①处理TCP分层发送请求 ②为进入的数据报寻径 ③处理ICMP报文:流控、拥塞控制 ④组播服务 网络接口层:接收IP数据报并通过选定的网络发送。 总结:TCP/IP模型是在1个硬件层上构建的4个软件层 4.TCP/IP 中协议依赖关系

CHAP 2 点到点PPP协议 1.最大接收单元:用以向对方通告可以接受的最大报文长度; 2.PPPoE定义了在以太网中使用PPP协议的规范,主要用于城域以太网以及个人用户基于以太网连接ADSL接入设备的场合 CHAP 3 Internet地址及地址解析 1.IP地址:网络号+主机号 2.IP地址的寻路特点: (1)指明了主机所在的网络,标识了对象位置 (2)标识了到达对象的路径,机先投递到对象所在网络,之后投递到相应的主机 3.IP地址分类 A类:0 —8位网络号首字节1—126 B类:10 —16位网络号首字节128—191 C类:110 —24位网络号首字节192—223 D类:1110 —组播地址首字节224—239 E类:11110 -- (保留未用)首字节240—247 特殊IP地址: 网络地址:主机号全0;广播地址:主机号全‘1’ 有限广播地址:32位全‘1’;回送地址:127.*.*.*,网络软件测试及本机进程间的通信。 4.从IP地址中提取网络部分,过程如下: (1)提取首比特位,为0则是A类地址,第一个字节是网络号 (2)首位为1,则提取第二位,为0则是B类地址,前两个字节是网络号 (3)第二位为1,则提取第三位,为0 则是C类地址,前三个字节是网络号 5.ARP的基本思想是“询问”。 6.ARP步骤: (1)发送方发送一个ARP请求,该报文以广播方式发送,包含接收方的IP地址。 (2)网络上所有主机都会受到这个请求,比较请求中的接收方IP与自己的IP,若相同,则向发送方回应,回应中包含自己的物理地址,否则不作回应。 总结:广播请求,单播回应! 话外:在TCP/IP协议中,每一个网络结点是用IP地址标识的,IP地址是一个逻辑地址。而在以太网中数据包是靠48位MAC地址(物理地址)寻址的。因此,必须建立IP地址与MAC地址之间的对应(映射)关系,ARP协议就是为完成这个工作而设计的。 7.ARP欺骗。(P31) (1)嗅探器的原理:在共享网络环境下,所有数据通过物理广播方式投递,在网卡工作于混杂模式下不会进行地址检查而直接接收数据,主机可以修改网卡的工作模式嗅探网断内的所有通讯数据。(被动攻击) (2)基于ARP欺骗的嗅探器:在同一网段中可以通过ARP询问知道网段内任意主机的IP地址和MAC地址映射关系。在交换式网络环境下,一台主机H若想截获A、B主机间的通讯,可以首先向A发送一个ARP应答报文,里面包含IPb/MACh,A收到后会更新

网络协议分析题库

第一章练习 1 OSI和ISO分别代表什么含义?它们是什么关系? 2 OSI/RM模型没有被最终采用的原因是什么? 3下面哪些协议属于应用层协议?( B ) A. TCP和UDP B. DNS和FTP C. IP D. ARP 4 Internet最早是在( C ) 网络的基础上发展起来的? A. ANSNET B. NSFNET C. ARPANET D. MILNET 5 当网络A上的主机向网络B上的主机发送报文时, 路由器要检查( B ) 地址 A.端口 B. IP C.物理 D.上述都不是 6.下面哪一个是应用层提供的服务? ( D ) A.远程登录服务 B.文件传送 C.邮件服务 D.上述都是 7要将报文交付到主机上的正确的应用程序, 必须使用( A )地址 A.端口 B. IP C.物理 D.上述都不是 8. 网络应用访问操作系统的常用接口是,实现IP地址到物理地址映射的协议是。 9. 在TCP/IP协议族中,能够屏蔽底层物理网络的差异,向上提供一致性服务的协议是;实现异构网络互联的核心设备是。 10. 在TCP/IP网络中,UDP协议工作在层,DNS协议工作在层。 11判断对错:TCP/IP是一个被广泛采用的网际互联协议标准,仅包含TCP和IP两个协议。() 第二章练习 1 PPP协议是什么英文的缩写?用于什么场合? 2 ISP验证拨号上网用户身份时,可以使用哪些认证协议? 3.PPP协议的通信过程包括哪几个阶段? 4.LCP的用途是什么? 5.PPP是Internet中使用的(1),其功能对应于OSI参考模型的(2),它 使用(3)技术来解决标志字段值出现在信息字段的问题。 (1)A. 报文控制协议 B. 分组控制协议 C. 点到点协议 D. 高级数据链路控制协议 (2)A. 数据链路层 B. 网络层 C. 传输层 D. 应用层

网络协议分析习题解答参考思路

《网络协议分析与实现》习题解答参考思路 第1章习题解答参考思路 习题1: 该题考查对异构网络互联概念、异构网络涉及的问题以及解决方法的理解程度。其中涉及的问题包括地址问题、包格式转换问题、路由问题等,其中1.1.3节还列举了很多其他的问题。 习题2: 该题可参考教材中所讲述的用户A和用户B的数据转换和传输过程进行解答。 习题3: 该题主要考查网上查找资料的能力。在http://biz.doczj.com/doc/2f6712081.html,/上可以查到所有的RFC信息。 习题4: TCP/IP模型和OSI参考模型之间的层次对应关系及各层协议参见教材中的图1-5。 习题5: 该题主要考查动手能力,可以使用Wireshark(曾称为Ethereal)、Sniffer Portable 等软件进行抓包,然后针对一些具体报文进行分析。注意分析通信中的多路复用和多路分解过程,说出通信双方的物理地址、IP地址和端口地址。 习题6: 该题主要考查阅读代码的能力,这部分代码是对数据结构课程中队列操作的一个实现。该队列是一个基于优先级排序的队列,主要的数据结构是qinfo: struct qinfo { Bool q_valid; int q_type; /* mutex type */ int q_max; int q_count; int q_seen; int q_mutex; int *q_key;

char **q_elt; }; 具体操作如下: int enq(int q, void *elt, int key); /*入队列操作,根据key的大小插到队列中的合适位置*/ void * deq(int q);/*出队列操作*/ void * headq(int q);/*获取队列头部元素*/ void * seeq(int q);/*按顺序取队列元素*/ int newq(unsigned size, unsigned mtype); /*分配一个新的队列,并返回队列的索引位置*/ int freeq(int q);/*释放队列*/ int lenq(int q);/*获取队列长度*/ static int initq();/*初始化队列*/

网络协议分析与仿真

****** 网络协议分析与仿真 课程设计报告书 院系名称:计算机学院实验内容:网络流量分析学生姓名:*** 专业名称:网络工程班级:**** 学号:********* 时间:20**年**月**日

网络协议分析与仿真课程设计报告 网络流量分析 一、课程设计目的 加深对IP、DSN 、TCP、UDP、HTTP等协议的理解; 掌握流量分析工具的使用,学习基本的流量分析方法。 二、课程设计内容 流量分析 工具:Wireshark(Windows或Linux),tcpdump(Linux) 要求:使用过滤器捕获特定分组;用脚本分析大量流量数据(建议用perl)。 内容:Web流量分析 清除本机DNS缓存,访问某一网站主页,捕获访问过程中的所有分组,分析并回答下列问题(以下除1、3、8、11外,要求配合截图回答): (1)简述访问web页面的过程。 (2)找出DNS解析请求、应答相关分组,传输层使用了何种协议,端口号是多少? 所请求域名的IP地址是什么? (3)统计访问该页面共有多少请求IP分组,多少响应IP分组?(提示:用脚本编程实现) (4)找到TCP连接建立的三次握手过程,并结合数据,绘出TCP连接建立的完整过程,注明每个TCP报文段的序号、确认号、以及SYN\ACK的设置。 (5)针对(4)中的TCP连接,该TCP连接的四元组是什么?双方协商的起始序号是什么?TCP连接建立的过程中,第三次握手是否带有数据?是否消耗了一个 序号? (6)找到TCP连接的释放过程,绘出TCP连接释放的完整过程,注明每个TCP报文段的序号、确认号、以及FIN\ACK的设置。 (7)针对(6)中的TCP连接释放,请问释放请求由服务器还是客户发起?FIN报文段是否携带数据,是否消耗一个序号?FIN报文段的序号是什么?为什么是 这个值? (8)在该TCP连接的数据传输过程中,找出每一个ACK报文段与相应数据报文段的对应关系,计算这些数据报文段的往返时延RTT(即RTT样本值)。根据课本 200页5.6.2节内容,给每一个数据报文段估算超时时间RTO。(提示:用脚本 编程实现) (9)分别找出一个HTTP请求和响应分组,分析其报文格式。参照课本243页图6-12,在截图中标明各个字段。

网络层协议分析实验报告

1、网络层协议分析 1.A 数据包捕获分析部分 1.A.1、实验目的 1)、了解ICMP 协议报文类型及作用。 2)、理解IP协议报文类型和格式。 3)、分析ARP 协议的报文格式,理解ARP 协议的解析过程。 1.A.2、实验容介绍 1)、ICMP协议分析实验 执行ping 和tracert 命令,分别截获报文,分析截获的ICMP 报文类型和ICMP 报文格式,理解ICMP 协议的作用。 2)、IP协议分析实验 使用Ping 命令在两台计算机之间发送数据报,用Wireshark 截获数据报,分析IP 数据报的格式,理解IP V4 地址的编址方法,加深对IP 协议的理解。 3)、IP 数据报分片实验 我们已经从前边的实验中看到,IP 报文要交给数据链路层封装后才能发送。理想情况下,每个IP 报文正好能放在同一个物理帧中发送。但在实际应用中,每种网络技术所支持的最大帧长各不相同。例如:以太网的帧中最多可容纳1500 字节的数据,这个上限被称为物理网络的最大传输单元(MTU,MaxiumTransfer Unit)。 TCP/IP 协议在发送IP 数据报文时,一般选择一个合适的初始长度。当这个报文要从一个MTU 大的子网发送到一个MTU 小的网络时,IP 协议就把这个报文的数据部分分割成能被目的子网所容纳的较小数据分片,组成较小的报文发送。每个较小的报文被称为一个分片(Fragment)。每个分片都有一个IP 报文头,分片后的数据报的IP 报头和原始IP 报头除分片偏移、MF 标志位和校验字段不同外,其他都一样。 重组是分片的逆过程,分片只有到达目的主机时才进行重组。当目的主机收到IP 报文时,根据其片偏移和标志MF 位判断其是否一个分片。若MF 为0,片偏移为0,则表明它是一个完整的报文;否则,则表明它是一个分片。当一个报文的全部分片都到达目的主机时,IP 就根据报头中的标识符和片偏移将它们重新组成一个完整的报文交给上层协议处理。 4)、ARP协议分析实验 本次实验使用的Windows自带的Arp命令,提供了显示和修改地址解析协议所使用的地址映射表的功能。

网络协议分析期末考试

2008-2009学年第一学期 网络协议分析 期末试卷(A卷)参考答案 第一题判断题(20小题,共20分,对打错打X) 1. 没有完成两个数据包握手称为双向“握手”,是一种不安全的进程。(V) 2. 查阅网上对象所有域名和地址的术语称为统一资源定位符URL (X ) 3. 动态端口也叫临时端口。(V) 4. 用于描述DNS数据库段的数据是一种ASCII文本数据。(V) 5.SOCKS!—种Socket 的实现机制。(X ) 6. 区分服务也叫分用服务,传输层用于向上传送通信数据。(X ) 7. RIPV2最多有15个网络直径,OSPFv2最多有128个网络直径。(X ) 8. DHCP向应消息包含DHCP#求消息。(V) 9. 定界符是PDU的有效数据。(V ) 10. ARPA是一种与Mac地址及IP地址相关的一种协议。(X ) 11. 地址请求是一种ARP服务请求。(X ) 12. 可接收的使用策略AUP是一种格式文档策略。(V ) 13. Apple Talk是一种组安全策略协议。(X ) 14. 权威服务器是PKI中一种发放安全证书的服务器。(X ) 15. 自治系统是一组单一管理权限下的路由器。(V ) 16. 区分服务也叫分用服务,传输层用于向上传送通信数据。(X ) 17. 带宽是一种跨网络信息数量的评估数据。(V ) 18. 绑定确认是一种必选数据。(X )

19. 定界符是PDU的有效数据。(V )

20. 黑洞是数据包无记录丢失的网络节点。 第二题 单项选择题( 20 小题,共 20 分) 面关于 ARP 协议的功能论述正确的是( C )。 协议边界和 OS 边界; C 、数据单元边界和协议边界; A 、 ICMP 协议同 IP 协议一样位于网络层; B 、 Traceroute 和Ping 命令进行网络检测时使用ICMP 报文; C 、 ICMP 协议可以被黑客用来探查主机的开放端口; D 、 ICMP 协议可以完成主机重定向功能。 7、下面关于 IP 协议和 UDP 协议论述正确的是( B ) 1、 A 、ARP 协议根据本地主机的 IP 地址获取远程主机的 MAC 地址; B 、ARP 协议根据远程主机的 MA C 地址获取本地主机的 IP 地址; C 、ARP 协议根据本地主机的 D 、 A RP 协议根据本地主机的 IP 地址获取本主机的 MAC 地址; MAC 地址获取本主机的 IP 地址; 2、 计算机网络体系结构在逻辑功能构成上存在有两个边界,它们是( B )。 A 、 协议栈边界和操作系统边界; B 、 D 、 3、 操作系统边界和协议栈分层边界; 下面 WAN 或 LAN 网络中关于主机数量论述不正确的是( C )。 A 、 网络中使用的协议类型越多,网络中的主机数就越少; 网络中划分的物理区域越多,网络中的主机数就越少; C 、网络中划分的广播区域越多,网络中的主机数就越少; B 、 D 、网络中使用2层交换机越多,网络中的主机数就越少; 4、 B 类网络 172.16.0.0的广播地址是( C )。 A 、172.16.0.1 B 、172.16.0.255 C 、172.16.255.255 D 、172.16.255.0 5、在进行网络 IP 地址配置时,有时会发生 IP 地址是否冲突的网络协议是( A ) IP 地址冲突, TCP/IP 协议族中检查 A 、ARP 协议 B 、PARP 协议 C 、 IP 协议 D 、 802.x 协议 6、下面关于 ICMP 协议论述不正确的是( C )。

网络协议分析最终版

中南林业科技大学 实验报告 课程名称:网络协议与分析 姓名:项学静学号:20104422 专业班级:2010级计算机科学与技术 系(院):计算机与信息工程学院 实验时间:2013年下学期 实验地点:电子信息楼602机房

实验一点到点协议PPP 一、实验目的 1.理解PPP协议的工作原理及作用。 2.练习PPP,CHAP的配置。 3.验证PPP,CHAP的工作原理。 二、实验环境 1.安装windows操作系统的PC计算机。 2.Boson NetSim模拟仿真软件。 三、实验步骤 1、绘制实验拓扑图 利用Boson Network Designer绘制实验网络拓扑图如图1-1。 本实验选择两台4500型号的路由器。同时,采用Serial串行方式连接两台路由器,并选择点到点类型。其中DCE端可以任意选择,对于DCE端路由器的接口(Serial 0/0)需要配置时钟信号(这里用R1的Serial 0/0作为DCE端)。 2、配置路由器基本参数

绘制完实验拓扑图后,可将其保存并装入Boson NetSim中开始试验配置。配置时点击Boson NetSim程序工具栏按钮eRouters,选择R1 并按下面的过程进行路由器1的基本参数配置: Router>enable Router#conf t Router(config)#host R1 R1(config)#enable secret c1 R1(config)#line vty 0 4 R1(config-line)#password c2 R1(config-line)#interface serial 0/0 R1(config-if)#ip address 192.168.0.1 255.255.255.0 R1(config-if)#clock rate 64000 R1(config-if)#no shutdown R1(config-if)#end R1#copy running-config startup-config 点击工具栏按钮eRouters,选择R2并按下面过程进行路由器的基本参数配置:Router>enable Router#conf t Router(config)#host R2

1--TCP-IP协议分析复习题

TCP/IP协议与联网技术复习题 一、选择题 1.以下哪个地址段不属于私有网络地址段( D )? A. 10.0.0.0-10.255.255.255 B. 172.16.0.0-172.31.255.255 C. 192.168.0.0-192.168.255.255 D. 192.168.0.1-192.168.0.255 2.RIP路由协议每隔( B )秒进行一次路由更新。 A. 40 B. 30 C. 20 D. 50 3.Telnet协议的熟知端口号是( D )。 A. 20 B. 21 C. 25 D. 23 4. 在TCP/IP协议簇中,TCP提供(C ) A.链路层服务 B.网络层服务 C.传输层服务 D.应用层服务 5. 对于有序接收的滑动窗口协议,若序号位数为3位,则发送窗口最大尺寸为(C ) A.5 B.6 C.7 D.8 6. 以下各项中,属于数据报操作特点的是(A ) A.每个分组自身携带有足够的信息,它的传送是被单独处理的 B.使所有分组按顺序到达目的端系统 C.在传送数据之前,需建立虚电路 D.网络节点不需要为每个分组做出路由选择 7. 提供链路层间的协议转换,在局域网之间存储转发帧,这样的网络互连设备为(B ) A.转发器 B.网桥 C.路由器 D.网关 8. 常用IP地址有A、B、C三类,IP地址128.11.3.31属于(B ) A.A类 B.B类 C.C类 D.非法IP地址 9.邮件服务器之间使用的通信协议是(C )。 A.HTTP B.POP3 C.SMTP D.IMAP 10.以下哪个是合法的URL( A )? A. B. C. telnet://http://biz.doczj.com/doc/2f6712081.html,:80/ D. smtp:// 二、填空题 1.计算机网络的基本功能是数据传输和数据共享。 2. MAC称为__媒体访问控制__.其是用来解决广播网中__接收地址__的问题。 3.188.80.16 4.82/28的网络地址是188.80.164.80。 4. 目前因特网中子网掩码同IP地址一样是一个32比特的二进制数,只是其主机标识部分全为“0”。判断两个IP地址是不是在同一个子网中,只要判断这两个IP地址与子网掩码做逻辑与运算的结果是否相同,相同则说明在同一个子网中。 5. 按交换方式来分类,计算机网络可分为报文交换网、分组交换网和__虚电路交换__。

《网络协议分析》习题答案

备注:以下给出习题答案作为参考,对于部分习题,读者也可以思考给出更好的答案。 第一章 1. 讨论TCP/IP成功地得到推广和应用的原因 TCP/IP是最早出现的互联网协议,它的成功得益于顺应了社会的需求;DARPA采用开放策略推广TCP/IP,鼓励厂商、大学开发TCP/IP产品;TCP/IP与流行的UNIX系统结合是其成功的主要源泉;相对ISO的OSI模型,TCP/IP更加精简实用;TCP/IP技术来自于实践,并在实践中不断改进。 2. 讨论网络协议分层的优缺点 优点:简化问题,分而治之,有利于升级更新; 缺点:各层之间相互独立,都要对数据进行分别处理;每层处理完毕都要加一个头结构,增加了通信数据量。 3. 列出TCP/IP参考模型中各层间的接口数据单元(IDU) 应用层/传输层:应用层报文; 传输层/IP层:TCP报文段或UDP分组; IP层/网络接口层:IP数据报; 网络接口层/底层物理网络:帧。 4. TCP/IP在哪个协议层次上将不同的网络进行互联? IP层。 5. 了解一些进行协议分析的辅助工具 可在互联网上搜索获取适用于不同操作系统工具,比如Sniffer Pro、Wireshark以及tcpdump等。利用这些工具,可以截获网络中的各种协议报文,并进一步分析协议的流程、报文格式等。 6. 麻省理工学院的David Clark是众多RFC的设计者,在论及TCP/IP标准的形成及效果时,曾经讲过这样一段话:”We reject kings, presidents and voting. We believe in rough consensus and running code.”你对他的观点有什么评价。 智者见智,我认为这就是“实践是检验真理的唯一标准”。 7. 你认为一个路由器最基本的功能应该包含哪些? 对于网桥、网关、路由器等设备的分界已经逐渐模糊。现代路由器通常具有不同类型的接口模块并具有模块可扩展性,由此可以连接不同的物理网络;路由表的维护、更新以及IP数据报的选路转发等,都是路由器的基本功能。此外,路由器厂商应为使用者提供管理功能。 第二章 1. 尝试用Modem拨入某个ISP,并根据你的操作分析PPP的流程 实验题,若有接入ISP的环境,可直接测试;否则,可参考习题4一起测试。 2. 分析PAP和CHAP的优缺点 PAP简单,但安全性差;CHAP相对安全,但开销较大,且需要通信双方首先共享密钥。 3. 了解L2F和L2TP的思想及应用 这两个协议把PPP的两个端点延伸到互联网的任何角落,相当于在TCP/IP的应用层扩展了PPP的范围。其思想是发送方把PPP帧封装到L2F或L2TP报文中,接收方则对其解封以还原PPP帧,这样对于通信的两端来说看到的是PPP帧,相当于在互联网上架设了一条虚拟的PPP链路。它们主要用于构建VPN(虚拟专用网)。 4. 尝试Windows操作系统的“超级终端”功能 Windows超级终端功能在附件/通信功能下。可以用两台有Modem的计算机,各自连接

网络协议分析期末考试

网络协议分析期末考试http://biz.doczj.com/doc/2f6712081.html,work Information Technology Company.2020YEAR

重庆理工大学 网络协议分析 期末试卷(A卷)参考答案 第一题判断题(20小题,共20分,对打√,错打×) 1.没有完成两个数据包握手称为双向“握手”,是一种不安全的进程。(√) 2.查阅网上对象所有域名和地址的术语称为统一资源定位符URL。(×) 3.动态端口也叫临时端口。 (√) 4.用于描述DNS数据库段的数据是一种ASCII文本数据。 (√) 5.SOCKS是一种Socket的实现机制。 (×) 6.区分服务也叫分用服务,传输层用于向上传送通信数据。 (×) 7.RIPv2最多有15个网络直径,OSPFv2最多有128个网络直径。(×) 8.DHCP响应消息包含DHCP请求消息。 (√) 9.定界符是PDU的有效数据。 (√)

10.ARPA是一种与Mac地址及IP地址相关的一种协议。( ×) 11.地址请求是一种ARP服务请求。 (×) 12.可接收的使用策略AUP是一种格式文档策略。 (√) 13.Apple Talk是一种组安全策略协议。 (×) 14.权威服务器是PKI中一种发放安全证书的服务器。 (×) 15.自治系统是一组单一管理权限下的路由器。 (√) 16.区分服务也叫分用服务,传输层用于向上传送通信数据。(×) 17.带宽是一种跨网络信息数量的评估数据。 (√) 18.绑定确认是一种必选数据。 (×) 19.定界符是PDU的有效数据。 (√) 20.黑洞是数据包无记录丢失的网络节点。 (√) 第二题单项选择题(20小题,共20分)

网络协议分析期末试题卷B卷

精品文档

下面关AR协议的功能论述正确的是试

AR协议根据本地主机I地址获取远程主机MA地址 B、ARP协议根据远程主机的MAC地址获取本地主机的IP地址;线评阅人 C、ARP协议根据本地主机的IP地址获取本主机的MAC地址; 2020一.判断题(共小题,每题1分,共分)号 D、ARP协议根据本地主机的MAC地址获取本主机的IP地址;学是路径上主机和路由器能够处理的最大的数据包的大小。1.MTU 2.网络体系结构逻辑功能上存在有两个边界,它们是协议边界和:上基于以太网的网络设备多数使用长地址类型的物理地址。2.目前Internet A、协议栈边界 B、OS边界 C、PDU边界 D、分层边界;,后发送两个字节, 在网络传送时先发送对于3.3A4B3A4B。期3.下面WAN或LAN网络中主机数量论述不正确的是:是一组具有相同路由策略并为同一机构所有的路由器集合。

4.AS学名A、网络中使用的协议类型越多,网络中的主机数就越少;姓 5. 网络广播协议既可以使用硬件实现,也可以使用软件实现。第订 B、网络中划分的物理区域越多,网络中的主机数就越少;为避免糊涂窗口 综合征而使用的一种启发式方法。6.推迟确认是接收方TCP 年C、网络中划分的广播子网越多,网络中的主机数就越少;学 IP协议都是 尽最大努力交付报文的协议,属于点到点协议。7.UDP和 D、网络中使用2层交换机越多,网络中的主机数就越少;地址。IPMAC8.DNS 用来把具有可读性的地址映射成 4.B类网络172.16.0.0的广播地址是: /.端到端通信只能发生在主机到主机之间。9 A、172.16.0.1 B、172.16.0.255 C、172.16.255.255 D、172.16.255.0 IP10.流量控制通常由接收方的协议发出,控制发送方传送数据速率。 5.网络IP地址配置时,检查IP地址是否冲突的网络协议是级院 RFC的特 殊形式。是标准)最佳当前实践(11.BCPRFC班学A、ARP协议 B、PARP协议 C、IP协议 D、802.x协议 12.0.0.0/7. 12.A类网络地址12.0.0.0的前缀表示

网络数据包的协议分析程序的设计开发—毕业设计论文

毕业设计(论文)网络数据包的协议分析程序的设计开发 论文作者姓名: 申请学位专业: 申请学位类别: 指导教师姓名(职称): 论文提交日期:

网络数据包的协议分析程序的设计开发 摘要 本文设计与实现了一个基于Linux下Libpcap库函数的网络数据包协议分析程序。程序的主要功能包括网络数据包捕获和常用网络协议分析。程序由输入/输出模块、规则匹配模块、数据捕获模块、协议分析模块组成。其中数据捕获模块和协议分析模块是本程序最关键、最主要的模块。 本文的主要内容如下:首先介绍了网络数据包协议分析程序的背景和概念。其次进行了程序的总体设计:确定了程序的功能,给出了程序的结构图和层次图,描述了程序的工作流程,对实现程序的关键技术做出了分析。接着,介绍完数据包捕获的相关背景和Libpcap函数库后,阐述了如何利用Libpcap函数库实现网络数据包捕获模块。然后对协议分析流程进行了详细的讲解,分析了常用网络协议。最后进行了程序的测试与运行:测试了程序能否按照预期的效果正确执行,印证了预期结果。 关键词:Libpcap;Linux;数据包捕获;应用层;协议识别

The Design and Development of Network Packet Protocol Analyzing Program Abstract The thesis is an attempt to introduce an implementation of network protocol analyzing program which is based on Libpcap, a famous network packet capture library on Linux. It has a rich feature set which includes capturing network packets and analyzing popular network protocols on Internet. The program is made up of an input/output module, a rules matching module, a packet capturing module and a protocol analyzing module. And the last two modules are key modules. The research work was described as followed. firstly, we introduce the background and concepts about network protocol analyzing programs; and we make an integrated design on the program, define functions of it, figure out its structure and hierarchical graphs, describe the workflow of it, and analyze the key techniques used in it; Secondly, after elaborating on the background of packet capture and the Libpcap library, we state a approach to implement a packet capture module with Libpcap; Thirdly, we explain the workflow about protocol analysis, and analyze common network protocols; Finally, we test our program to see whether it works as expected, fortunately, it does. Key words: Libpcap; Linux; Network packet capturing; Application layer; Protocol identification

(完整word版)网络协议抓包分析

中国矿业大学《网络协议》 姓名:李程 班级:网络工程2009-2 学号:08093672

实验一:抓数据链路层的帧 一、实验目的 分析MAC层帧结构 二、准备工作 本实验需要2组试验主机,在第一组上安装锐捷协议分析教学系统,使用其中的协议数据发生器对数据帧进行编辑发送,在第二组上安装锐捷协议分析教学系统,使用其中的网络协议分析仪对数据帧进行捕获分析。 三、实验内容及步骤 步骤一:运行ipconfig命令

步骤二:编辑LLC信息帧并发送 步骤三:编辑LLC监控帧和无编号帧,并发送和捕获:步骤四:保存捕获的数据帧 步骤五:捕获数据帧并分析 使用iptool进行数据报的捕获: 报文如下图: 根据所抓的数据帧进行分析: (1)MAC header 目的物理地址:00:D0:F8:BC:E7:06 源物理地址:00:16:EC:B2:BC:68 Type是0x800:意思是封装了ip数据报 (2)ip数据报

由以上信息可以得出: ①版本:占4位,所以此ip是ipv4 ②首部长度:占4 位,可表示的最大十进制数值是15。此ip数据报没有选项,故它的最大十进制为5。 ③服务:占8 位,用来获得更好的服务。这里是0x00 ④总长度:总长度指首都及数据之和的长度,单位为字节。因为总长度字段为16位,所以数据报的最大长度为216-1=65 535字节。 此数据报的总长度为40字节,数据上表示为0x0028。 ⑤标识(Identification):占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号, 因为IP是无连接的服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。 在这个数据报中标识为18358,对应报文16位为47b6 ⑥标志(Flag):占3 位,但目前只有2位有意义。标志字段中的最低位记为MF (More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。标志字段中间的一位记为DF(Don't Fragment),意思是“不能分片”。只有当DF=0时才允许分片。这个报文的标志是010,故表示为不分片!对应报文16位为0x40。 ⑦片偏移:因为不分片,故此数据报为0。对应报文16位为0x00。 ⑧生存时间:占8位,生存时间字段常用的英文缩写是TTL (Time To Live),其表明数据报在网络中的寿命。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1 秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。经分析,这个数据报的的TTL为64跳!对应报文16位为0x40。 ⑨协议:占8 位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。这个ip数据报显示使用得是TCP协议对

《网络协议分析》复习资料

《网络协议分析》复习资料 一、单选题(每题2分,共40分) 1. ARP请求报文属于( )。 A.单播 B.广播 C.多播 D.组播 2. 从整个Internet的观点出发,( )方法可以有效的减少路由表的规模。 A.增加动态路由的更新频率 B.使用路由过滤策略 C.路由聚合 D.划分VLAN 3. 用于无盘工作站中发现其IP地址的协议是( )。 A.ARP B.RARP C.ICMP D.DHCP 4. 必须要由网络管理员手动配置的是( )。 A.静态路由 B.直连路由 C.动态路由 D.默认路由 5. IP组播地址是( )。 A.A类地址 B.B类地址 C.C 类地址 D.D类地址 6. 一个子网网段地址为126.64.0.0掩码为255.248.0.0的网络,它最大允许的主机地址是( )。 A.126.64.255.254 B.126.224.0.5 C.126.71.255.254 D.126.63.255.255 7. 内部网关协议OSPF是一种广泛使用的基于( )的协议。 A.链路状态算法 B.距离-矢量算法 C.集中式路由算法 D.固定路由算法 8. 路由器转发分组是根据报文分组的( )。 A.端口号 B.MAC地址 C.IP地址 D.域名 9. 已知某个网络的掩码是255.255.248.0,那么下面属于同一网段的是( )。 A.10.110.16.1和10.110.25.1 B.10.52.57.34和10.52.62.2 C.10.76.129.21和10.76.137.1 D.10.33.23.2和10.33.31.1 10. 数据报分片重组的地点( )。 A.路由器 B.交换机 C.源主机 D.目的主机 11. 为了保证连接的可靠性,TCP通常采用( )。 A.三次握手法 B.窗口控制机制 C.自动重发机制 D.端口机制 12. ARP应答报文属于()。 A.单播 B.广播 C.多播 D.组播 13. 整个Internet就是由通过( )互联的多个物理网络构成。 A.集线器 B.网卡 C.路由器 D.网桥 14. 有四个子网:196.199.48.0/24,196.199.49.0/24,196.199.50.0/24, 196.199.51.0/24,将它们聚合为( )。 A.196.199.48.0/24 B.196.199.51.0/24 C.196.199.48.0/22 D.196.199.51.0/22 15. 在计算机网络中,主机及主机上运行的程序可以用()来标识。

网络协议分析实验报告

课程设计 课程设计题目网络协议分析实验报告学生姓名: 学号: 专业: 2014年 6 月 29日

实验1 基于ICMP的MTU测量方法 实验目的 1)掌握ICMP协议 2)掌握PING程序基本原理 3)掌握socket编程技术 4)掌握MTU测量算法 实验任务 编写一个基于ICMP协议测量网络MTU的程序,程序需要完成的功能: 1)使用目标IP地址或域名作为参数,测量本机到目标主机经过网络的MTU; 2)输出到目标主机经过网络的MTU。 实验环境 1)Linux系统; 2)gcc编译工具,gdb调试工具。 实验步骤 1.首先仔细研读ping.c例程,熟悉linux下socket原始套接字编程模式,为实验做好准备; 2.生成最大数据量的IP数据报(64K),数据部分为ICMP格式,ICMP报文为回送请求报 文,IP首部DF位置为1;由发送线程发送; 3.如果收到报文为目标不可达报文,减少数据长度,再次发送,直到收到回送应答报文。 至此,MTU测量完毕。

ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。[1] 它是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。ICMP报文在IP帧结构的首部协议类型字段(Protocol 8bit)的值=1.

ICMP原理 ICMP提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据ICMP报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。 我们在网络中经常会使用到ICMP协议,比如我们经常使用的用于检查网络通不通的Ping命令(Linux和Windows中均有),这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。 ICMP(Internet Control Message,网际控制报文协议)是为网关和目标主机而提供的一种差错控制机制,使它们在遇到差错时能把错误报告给报文源发方.是IP层的一个协议。但是由于差错报告在发送给报文源发方时可能也要经过若干子网,因此牵涉到路由选择等问题,所以ICMP报文需通过IP协议来发送。ICMP数据报的数据发送前需要两级封装:首先添加ICMP 报头形成ICMP报文,再添加IP报头形成IP数据报 通信术语最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。 实验2 基于UDP的traceroute程序 实验目的 1)掌握UDP协议 2)掌握UDP客户机/服务器编程模式 3)掌握socket编程技术 4)掌握traceroute算法

【协议分析】【网络层分片实验】

实验六网络层分片实验 【实验目的】 1、理解IP分片过程; 2、掌握IP分片是数据报头的变化; 【实验学时】 1学时 【实验环境】 图 3-39 实验拓扑图【实验内容】 1、掌握IP数据包分片过程。 2、掌握IP分片报头格式。 3、掌握三层交换机配置MTU方法。

【实验流程】 图 3-40 实验流程图 【实验原理】 每一个数据链路层都会有自己的帧格式,在这个格式中有一个字段是“数据字段最大长度”,当数据包封装成帧时,要求数据包的总长度必须小于这个数据字段的最大长度,这个数据字段最大长度也称为MTU,不同的数据链路层协议均有其不同的MTU值,以太网的MTU值为1500,这意味着,当我们的网络是基于以太网时,IP报文的总长度不可以超过1500字节。但是IP数据包定义的最大长度为65535,这和数据链路层的MTU值是一个矛盾,当IP数据包封装总长度超过数据链路层MTU值时,就需要对IP包进行分片。当数据被分片时,每一个数据包都有自己的报头,并且,当分片后的IP包遇到具有更小的MTU 的网络,它需要继续分片以穿过这样的网络,当然,不管如何分片,数据包在到达目的端后可以根据报头中的信息,对数据包进行重组。 分片后的数据包之所以在到达目的端后能够进行重组,主要得益于IP报头中的3个与分片重组有关的三个字段。 z标志:标志字段长度为16比特,这16比特标志位用于标识从源主机发出的数据包,在源主机有一个计数器,当IP协议发送数据包时,将计数器中的数字复制到 标识字段中,并把这个计数器的值加1,如此循环往复,从而能够保证每个IP包 都具有唯一的标识数,当一个IP包需要进行分片时,就将此标识字段的值复制到 所有的分片中,所以,从一个IP包得到的所有分片都具有相同的标志字段。而目 的端则知道具有相同标识字段的IP包需要进行重组。 z标识:长度为3比特,第一个比特保留待以后使用,第二位为不分片位,当此值为1时,表示此数据包不可被分片,如果不分片无法经物理网络进行转发,就丢弃数 据包,并向源主机发送ICMP差错报文,当此值为0时,侧在需要时将此数据包进

相关主题