A. 怎样用wireshark捕获和ppp协议报文
PPP协议(Point-to-Point Protocol)提供了在串行点对点链路上传输数据报的方法,支持异步8位数据及位导向的同步连接(如ISDN)。它提供了一种管理两点间会话的有效方法,正在取代SLIP(Serial Line Interface Protocol)协议成为点对点网络的标准。 嵌入式单片机PPP协议是在单片机中嵌入PPP协议,以实现单片机与计算机之间的PPP数据传输,使它既可以作为PPP连接的客户端,也可以作为独立的PPP服务器端来使用。它在家电控制和小型数据传输系统中具有非常广阔的应用前景,并且具有成本低、传输稳定等特点,是当前单片机研究的热门话题之一。 1 PPP的工作原理 PPP采用高级数据链路控制(HDLC)协议作为在对点链路上分装数据报的基本方法。使用可扩展的链路控制协议(LCP)来建立、配置和测试数据链路。用网络控制协议簇(NCP)来建立和配置不同的网络层协议,PPP允许同时采用多种网络层协议。 为基裂了建立点对点链路上的通信连接,发送端PPP首先发送LCP帧,以配置和测试数据链路。在LCP建立好数据链路并协调好所选设备后,发送端PPP发送NCP帧,以选仔模择和配置一个或多个网络层协议。当所选的网络层协议配置好后,便可以将各网络层协议的数据包发送到念锋缓数据链路上。配置好的链路将一直处于通信状态...
B. TCPDUMP 抓包 怎么查看 抓的包的内容
1、tcpmp检测登录linux系统输启前入tcpmp,如果找不到表示没悉游有安装。也可以睁旁销用rpm查询。
C. 计算机网络题,若通过数据包捕获软件采集到的一个IP数据报首部(用16进制表示)为:45 00 00
根据IP报文头部格式可知第九个16进制数是TTL字段,也就是3B=59,TTL每过一个路由器就减少一,初始值为68,所以68-59=9跳
D. UDP是什么它有什么用
UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI参考模型中的传输层协议,它是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
UDP的正式规范是IETF RFC768。UDP在IP报文的协议号是17。
在这里插入图片描述
在OSI模型中,UDP在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。
与所熟知的 TCP(传输控制协议)协议一样,UDP 协议直接位于 IP(网际协议)协议
的顶层。根据 OSI(开放系统互连)参考模型,UDP 和 TCP 都属于传输层协议。 UDP 协议
的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据
的传输单位。每一个数据包的前 8 个字节用来包含报头信息,剩余字节则用来包含具体的传
输数据。
UDP报头
在这里插入图片描述
UDP报头包括4个字段,每个字段占用2个字节(即16个二进制位)。
在IP4v中,“来源连接端口”和“校验和”是可选字段(粉色背景标出)。
在IPv6中,只有来源连接端口是可选字段。
UDP数据报格式有首部和数据两个部分。首部很简单,共8字节。包括:
源端口(Source Port):2字节,源端口号。
目的端口(Destination Port):2字节,目的端口号。
长度(Length):2字节,用于校验UDP数据报的数据字段和包含UDP数据报首部的“伪首部”。其校验方法用IP分组首部中的首部校验和。
伪首部,又称为伪包头(Pseudo Header):是指在TCP的分段或UDP的数据报格式中,在数据报首部前面增加源IP地址、目的IP地址、IP分组和协议字段、TCP或UDP数据报的总长度等共12字节,所构成的扩展首部结构。此伪首部是一个临时的结构,它既不向上也不向下传递,仅仅只是为了保证可以校验套接字的正确性。
在这里插入图片描述
TCP和UDP区别
特征点 TCP UDP
传输可靠性 面向连接 面向非连接
应用场景 传输数据量大 传输量小
速度 慢 快
TCP(传输控制协议)提供的是面向连接、可靠的字节流服务。当客户端和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP(用户数据协议)是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP咋传输数据前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
由于UDP缺乏拥塞控制(congestion control),需要基于网络的机制来减少因失控和高速UDP流量负荷而导致的拥塞崩溃效应。换句话说,因为UDP发送者不能够检测拥塞,所以像使用包队列和丢弃技术的路由器这样的网络基本设备往往就成为降低UDP过大通信量的有效工具。数据报拥塞控制协议(DCCP)设计成通过在诸如流媒体类型的高速率UDP流中,增加主机拥塞控制,来减小这个潜在的问题。
UDP方式传输数据
发送时:先把数据放到报文,写到缓冲区字节数组再传送。
接收时:从缓冲器数组读取,打包到报文。
UDP的应用场景
在选择使用协议的时候,选择UDP必须要谨慎。由于缺乏可靠性且属于非连接导向协议,UDP一般必须允许一定量的数据包丢失、出错和复制粘贴。但有些应用,比如TFTP,需要可靠性保证,则必须在应用层增加根本的可靠机制。但是绝大多数UDP应用都不需要可靠机制,甚至可能因为引入可靠机制而降低性能。流媒体、即时多媒体游戏和IP电话(VoIP)就是典型的UDP应用。如果某个应用需要很高的可靠性,那么可以用传输控制协议(及TCP协议)来代替UDP。
E. 交换机的局域网中,Sniffer能否监视其他主机的网络通讯
可以 抓获同一局域网内 其他计算机主机的非点对点通讯的报文
可以通困哪或过报文分析 它的通信情况 也相当于是监视了
如果缓纯要很直观的图形界面 或他电脑操作状况 那就不得而知汪伍了
Sniffer是从最原始的计算机通讯数据来分析 的
希望我的回答能对你有所帮助
F. Wireshark 抓包理解 HTTPS 请求流程
目录
我的操作是这样的,让手机和电脑在同一个局域网内(比如连接同一个 wifi),接着在手机的wifi上设置代理,电脑使用 Charles 做代理,IP 为电脑在局域网 IP,我这边的环境,手机 IP 为 172.17.32.117,电脑 IP 为 172.17.32.19。再设置代理端口为 8888。设置代理后,接下来手机的请求都会通过电脑的网卡代理请求发送出去。
其实可以不用这么绕。我之所以多设了一个代理,是因为自己电脑创建的 wifi 热点,手机接收不到。为了让手机的包能经过电脑网络嗅探到才这么处理的。
最便捷的方式,就是电脑放个 wifi 热点给手机连接完事。
创建后代理连接后,然后使用 Wireshark 嗅探网卡,比如我这里使用的是 etho0 网卡去访问网络的。这时候玩玩手机,打开几个请求,Wireshark 上面就会出现捕捉的大量的包旁庆祥,各种各样的协议都有,有 ARP 寻人启事(寻找 IP 对应的物理地址),有 TCP 连接包,有 HTTP 请求包。
这里我设置了一下过滤规则,把对网易的一个 https://nex.163.com 的一个的请求过滤出来如下:
整个完整的 HTTPS 请求的过程如下:
接下来把手机称为 A(172.17.32.211),电脑称为 B(172.17.32.19),对完整的过程进行简要分析。
作为整个过程的第一个 TCP 包,这里对它做一个详细的剖析,理解一下 TCP 报文的格式和内容。TCP 是传输层协议,负责可靠的数据通信,它在整个体系结构的位置如下:
作为传输层协议,主要为上层协议提供三个功能:
TCP 协议为 HTTP 和 SSL 协议提供了基础的通信功能。所以 SSL 协议是基于 TCP 的。
三次握手的内容有:
对每个包进行详细的分析:
A 发出一个带 SYN 同步位的包,通知服务端要建立连接 。
第一次握手,发出的 TCP 包的数据和 Wireshark 解析的结果如下:
灰色部分就是 TCP 报文的数据内容,第一个两个字节 0x8c85 = 35973 表示源端口。
TCP 报文的格式如下,对应的如上图的灰色部分。非灰色部分分别为 IP 首部和数据帧首部。
参考谢希仁版本的 《计算机网络》一书,对照着整个报文格式表,把整个 TCP 报文的二进制信息和相关意义做些说明:
到这里的话,TCP 数据报首部固定部分结束,固定部分一共有 20 字节。也就是 TCP 首部,至少要有 20 字节。
固定首部后,就是可长度可以变化的选项了:
整个所以 TCP 数据包的大小可以这样表示:
我们 Wireshark 后面的运搏一长串的信息就指出了该 TCP 报文的一些主要信息:
从上面的分析可以看出,这个 SYN 包并没有携带数据,但是按协议这里要消耗一个序号。
在发出 SYN 包后,A 端进入 SYN-SENT 状态。
B 收到 SYN 包,发出 SYN + ACK 确认包 。
这个包,既是确认收到了第一差乎次握手的包,也是一个由 B 端发出的同步包,表示自己准备好了,可以开始传数据了。
TCP 报文包相对于第一次握手的包可以窥见一些变化:
可以看到,这个包的应答时间戳刚好是第一次握手的发送时间戳。从这里也可以理解到,这个包就是在响应第一次握手的包
所以,接收方 A 可以利用这个值来计算这一次 RTT ,收到第二次握手的包后,计算当前时间戳减去该包的应答时间戳就是一个 RTT 的延时了。
这虽然是 ACK 包,但也是 SYN 包,所以也要消耗一个序号。
在发出这个包后,B 端进入 SYN-REVD 状态。
A 收到后,再发出一个 ACK 确认包
发出的包如下:
这里我们产生一个疑问,这里发送端 A 发连接请求信息、接收端 B 发确认信息,又互相同步了序号,是不是已经可以传输数据了?但实际上 A 还要再发一个 ACK 确认报文,如图所示,确认收到了 B 第二次握手发出的包,这个时候,在这个 ACK 包后 A 和 B 才正式进入 ESTABLISHED 状态。这就是第三次握手。
这是为什么呢?
假设我们用两次握手,然后在第一次握手期间,A 发了第一次握手包后出现了这样的场景:一直没有得到响应而进行超时重传,又发了一次包,然后我们称上一次包为失效包。
然后我们可以看到:
所以,只有接收端 B 在发送端 A 发出了第三次握手包后,才认为连接已经建立,开始等待发送端 A 发送的数据,才不会因为失效的连接请求报文导致接收端异常。
TCP 三次握手的时序图如下:
三次握手,有几个重要的任务,一个是 同步序号 ,接收端和发送端都发出同步包来通知对方初始序号,这样子后面接收的包就可以根据序号来保证可靠传输;另一个是让发送端和接收都 做好准备 。然后就开始传数据了。
整个过程都发生在 HTTP 报文发出之前。HTTP 协议就是依靠着 TCP 协议来做传输的管理。TCP 可以认为是它的管家,管理着传输的大大小小的事务,比如要不要保证包顺序一致?什么时候发包?要不要收包?TCP 是很严格的。
三次握手在 Java API 层面,对应的就是 Socket 的连接的创建(最终调用的是 native 层的 socket 创建):
这里的 connectTimeout 对应的是三次握手的总时长,如果超时了就会被认为连接失败。
比如一个场景,客户端发出一个 SYN 报文后,迟迟没有收到服务端的 SYN + ACK。这时候客户端触发重传机制,每次重传的间隔时间加倍,同样没有收到包。然后如果这段时间超出了连接超时时间的设置,那么建立连接超时就发生了。
所以,如果三次握手要花的时间,总是大于这里的 connectTimeout 时间,这个 Socket 就无法建立连接。
我们这一次请求的三次握手时间在 180ms 左右。
像在 OkHttp 中,如果是三次握手阶段的连接超时,是会有重试机制的。也就是重新建联,重新发出 SYN 报文发起 TCP 连接。重新建联的时候会更换连接的路由,如果已经没有可选择路由的话,那么这个就真的失败了。
在 OkHttp 3.9.0 的默认配置中,连接超时的时间为 10000ms = 10s。在 OkHttpClient.Builder 中。
实际应用的时候,根据业务场景来调整。
这次请求,为了让 Wireshark 抓到手机的包,我使用了电脑作为代理。
其实就是客户端 A 使用 HTTP 协议和代理服务器 B 建立连接。和普通的 HTTP 请求一样,需要携带 IP + 端口号,如果有身份验证的时候还会带上授权信息,代理服务器 B 会使用授权信息进行验证。然后代理服务器会去连接远程主机,连接成功后返回 200。
Wireshark 抓到的包有这样两条信息,就是在创建代理:
请求报文:
响应报文:
HTTP CONNECT 是在 HTTP1.1 新增的命令,用于支撑 https 加密。
因为我采用代理的方式抓包才有这一个步骤。如果是直接抓 PC 机上浏览器发出的 HTTPS 包,不会有这个过程。
然后我们思考一下,为什么代理服务器需要这些信息,要连接的主机名和端口号?
这是因为后面进行 SSL 加密 HTTP协议,因为代理服务器拿不到加密密钥,是无法获取到 HTTP 首部的,进而无法这个请求是要发到哪个主机的。所以,这里先使用 CONNECT 方法,把主机名和对应的端口号通知代理服务器。
这个也被称为 HTTPS SSL 隧道协议。建立这个 SSL 隧道后,这个特殊代理就会对数据进行盲转发。
SSL 整个协议实际上分两层,SSL 记录协议和其他子协议(SSL握手协议,SSL改变密码协议,SSL警告协议):
这两层协议的关系,其实就是数据封装的关系,SSL 握手封装协议封装其他上层协议。
封装握手协议:
封装应用数据协议,比如 HTTP:
封装交换密码协议:
封装警报协议:
所以 SSL 记录协议其实就是一个其他协议的载体,只是提供了一个封装的功能。它的格式为:
MAC 就是消息验证码,用来验证数据的完整性,保证中途没有篡改。这个消息验证码比数字签名弱一些,使用的是对称密钥加密摘要。数字签名使用的是非对称密钥加密,有区分公钥私钥。
记录协议的主要目的有这几个,为其他 SSL 子协议提供了以下服务:
TCP 三次握手结束并且和代理服务器成功连接后,建联成功,客户端 A 就开始发起 SSL 连接,首先会进入 SSL 握手阶段。
SSL 握手阶段的主要目的有这么几个:
SSL 握手的流程并不是一成不变的,根据实际的应用场景来。主要有三种:
SSL 握手的完整的交互过程如下,这里是验证服务端又验证了客户端的情况:
我们的请求只验证服务端,所以 7,8,9 是不存在的。
现在具体分析每一个阶段的内容。
Client Hello
作为 SSL 握手的第一个握手包,我们详细分析和理解一下包的内容。
下面是 Wireshark 解析好的这个 SSL 协议的数据包:
这个包如何解读,按照之前对 SSL 协议的分析,其实分成两个部分:
因为是握手过程,密钥还没协商,这里还是使用明文传输,记录协议的数据载体就是明文的 SSL 握手协议。
SSL 握手协议的格式为:
我们可以从握手协议的数据包中得到这些信息:
密码套件随着密码学的发展而发展,而且根据现实应用中,可能会有某些密码被破解,从而导致密码套件可能会导致安全问题,所以一般都会使用当前最新最安全的密码套件。
在 Android 系统中,一般情况下,使用 SSLSocket进行连接的时候,会带上系统默认的支持的密码套件。但是这个有个缺点,比如某些密码套件的加密算法被破解或者出现安全漏洞,而且要跟着系统升级反应缓慢。OkHttp 在进行 SSL 握手的时候,会使用 ConnectionSpec 类中带上提供了一系列最新的密码套件。可以从注释上看,这些密码套件在 Chrome 51 和 Android 7.0 以上得到了完全支持。
然后,再把这些密码套件和 Android 系统支持的密码套件取交集,提交给服务端。这样,万一哪个密码套件有问题,OkHttp 官方会下降支持。网络库 OkHttp 库会随着版本的迭代,不断地去提供比较新的密码套件,并且放弃那些不安全的密码套件。接入应用即时更新 OkHttp,就不用等待缓慢的系统更新了。
如果提供的所有密码套件服务端都不支持,OkHttp 有回退机制,退而求其次,选比较旧的套件。
Server Hello
服务端收到了客户端的 Hello,通过客户端的配置信息,结合服务端的自身情况,给出了最终的配置信息。
Wireshark 解析后的内容如下:
具体内容如下:
Certificate
上面的 Server Hello 已经制定了接下来的非对称加密算法
服务端下发证书,客户端验证服务端的身份,并且取出证书携带的公钥,这个公钥是交换加密算法的公钥。也就是在 Server Hello 阶段指定的 ECDHE (EC Diffie-Hellman)算法,也是通常说的 DH 加密。
这个 Certificate 消息下发了从携带自己公钥的数字证书和 CA 证书的证书链,在 Certificates 字段中:
CA 是 PKI 体系的重要组成部分,称为认证机构。
那什么是 CA 证书?就是用来 CA 中心发布的,认证该服务单证书的合法性,可以确保该证书来源可靠而不是被中间人替换了。但是 CA 证书也可能被中间人拦截造假?那就再用一个证书来认证它。看起来好像没完没了。实际上到最后有一个根 CA 证书,这个证书存储再浏览器或者操作系统中,是系统直接信任的。
服务端证书需要 CA 证书做认证。使用的还是数字签名方式,从数据中摘要一段信息,用 CA 证书的加密。然后验证的时候时候,用 CA 证书的公钥解密,用同样的摘要算法摘要数据部分和解密好的信息进行比较。
客户端在验证服务端证书的有效性有这样的一个过程。首先会找到该证书的认证证书,也就是中级 CA 证书。然后找中级 CA 证书的认证证书,可以是另一个中级 CA 证书,也可能是根 CA 证书。这样直到根 CA 证书。
接着从根 CA 证书开始往下去验证数字签名。比如有这样的证书链:根 CA 证书-> 中级 CA 证书 -> 服务端证书。用 CA 证书的公钥去验证中级证书的数字签名,再用中级证书的公钥去验证服务器证书的数字签名。任何一个环节验证失败,就可以认为证书不合法。
这就是整个证书链的认证过程:
查看抓到的包的数据,发现只有两个证书。为服务端证书和中级 CA 证书。根 CA 证书呢?顺藤摸瓜找到它。
首先看服务端证书。它内容如下:
从这个证书中我们可以窥见这些信息:
首先是 signedCertificate 字段的内容,即数字证书的数据:
然后是证书颁发机构的签名信息:
从上面的 issuer 可以了解到,认证该服务器证书的 CA 证书为 GeoTrust SSL CA - G3 ,我们从 Certificates 找到对应的中级证书的内容如下(中级证书可以有好几级,我们这儿只有一级):
可以得到中级证书名为 GeoTrust SSL CA - G3 ,证书组织为 GeoTrust Inc. 。
认证该 CA 证书的证书呢?还是看 issue 字段,认证证书名为 GeoTrust Global CA ,组织同样是 GeoTrust Inc. 。
其实这个就是根 CA 证书。在这个请求中没有找到,但在浏览器或者操作系统可以找到。一般的浏览器和系统都会内置该 CA 证书。所以根证书是受浏览器或者操作系统信任的,无需其他证书做担保。
如果想要自己的系统再信任某些非通用的权威机构的根 CA 证书,那么就去安装它。
比如我的 Windows 系统就安装了 GeoTrust Global CA 证书:
像我们平时使用 Charles 抓 HTTPS 就是这个原理,把 Charles 的 CA 证书安装在手机中,成为受信任的根 CA 证书。
基本原理就是,Charles 代理作为 SSL 隧道,并没有透明传输,而是作为一个中间人,拦截了 SSL 握手信息,修改里面的 CA 证书。仿冒手机端和真实服务端建立连接获取主密钥,然后又仿冒服务端和手机客户端建立 SSL 连接,修改服务端证书的 CA 和数字签名,这样 Charles 就可以解析到加密的 HTTP 内容了。
修改后的服务端证书如下,可以看到 issuer 被替换成了 Charles 的证书。
G. wireshark抓包——DHCP 篇
简介:为了更好地观察DHCP续租等过程,利困正用windows server 2012 搭建DHCP服务器
(1)我准备了一台windows server 2012虚拟机、一台windows10,2012搭建服务器,win 10测试。
(2)搭建DHCP服务器必须要有静态的ip地址,这里咱们没有就随便填写即可
右击电脑右下角小电脑的图标,点击“打开网络和共享中心”
(3)在弹出的窗口上选择“更改适配器设置”
(4)右击小电脑,点击属性
(5)点击ipv4 的Internet 协议版本
(6)配置ip地址
(7)接下来就是安装DHCP服务,打开仪表板,点击添加角色和功能
(8)服务器选择本机
(9)选择dhcp服务器添加功能,如果没有配置静态的ip就会收到提醒
(10)下一步即可
(11)安装完成后点击工具中的 DHCP
(12)点击新建作用域
下一步
填写信息(随便填)
填写想要分配的ip段
依情况而(起始和结束打同样的地址,表示这个地址不会分配出去,或者一个范围,按需要来,如下),下一步
默认就好
袜尺和 选择如下图选项
填写之前配好的网关即可
这里dns,wins,暂时不配置,默认就好
下一步
完成
现在就可以看到咱们新建的作用域了
打开windows 测试,网络的获取形式为自动,把网络放在同一网段内,这里我们把网络放在VMnet8网卡上,最好把虚拟机的DHCP也关掉
查看2012 就可以看到已经分配了(没有的刷新一下)
window10 端
DHCP搭建完成
(1)打开wireshark并过滤dhcp包
可以看到红色部分为咱们创建的DHCP服务
DHCP续租过程通常被称为DORA过程,因为它使用了四种类型的DHCP数据包 ,发现(discover)、提供(offer)、请求(request)、确认(acknowledge)
1)第一阶段discover
第一个包从0.0.0.0的68端口发往255.255.255.255的67端口,客服端使用的是0.0.0.0,是因为它目前还有没有ip地址。数据包发往255.255.255.255,是告盯因为这是一个独立于网络的广播地址,从而确保这个数据包发送到它所在网络上的每个设备,简单来说就是某计算机A大喊我没ip地址,DHCP 看到后就会响应
1)第二阶段offer
范围内的DHCP服务器接收到discover 请求后,会向客户端发出DHCP Offer 报文作为回应,该报文包含该DHCP服务器可向DHCP客户端提供的IP地址以及该DHCP服务器自己的IP地址信息
ip 地址的租期为8天
子网掩码为:255.255.255.0
这里理论上还有DNS ,router等信息,因为咱们没有配置,所以没有
3)第三阶段request
这个文件依然是从ip地址0.0.0.0发出,因为还没有完成获取ip地址的过程,以广播的形式发送DHCP Request 报文,该报文会加入对应DHCP服务器的地址以及所需要的IP。
4)第四阶段 ack确认
被选择的DHCP服务器通过ack报文把在offer报文中准备的ip地址租约给对应客户端。这时客服端就有ip地址了。
H. 被抓包是什么意思
被抓包指在做“坏事”的时候现场给逮住发现了。女朋友说"你被我抓包了"的意思是:你做坏事被女朋友抓到了。
抓包的本意是网游作弊。通过对网络上传输的数据进行抓取,可以对其困竖进行分析,对于软件的Debug很大的帮助。当然也可以通过抓取用户发送的涉及用户名和密码的数据包来获取用户的密码。
数据在网络上是以很小的称为帧的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。
接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进仿宴行存储。就是在这个传输和接收的过程中,嗅探器会带来安全方面的问题。
(8)计算机网络报文抓取扩展阅读:
关于被抓包的小故事:
在印度的一个小村庄里,一条饥肠辘辘的眼镜蛇闯进一户人家觅食,在鸡笼备尺银里发现了一顿鸡蛋大餐。
为了如愿吃到美食,它首先咬死了两只母鸡,随后,便将鸡蛋一股脑儿吞下了肚。就在它酒足饭饱准备离开的时候,这家的主人听到动静及时赶到。面对被抓包的窘境,眼镜蛇为了赶紧逃命,一口气吐出了9颗鸡蛋,看得人目瞪口呆。
I. 计算机网络课设 socket 编程
、IP分组首部信息解析l 目的及要求:熟悉SOCKET的编程,利用RAW Socket编程技术设计一个应用程序能够截获网络底层上的IP分组,然后对其首部进行解析,将IP分组的首部信息显示并保存到相关文件中。能初步掌握TCP/IP网络编程的方法,对网络基本协议的结构有进一步的认识。l 具体内容(1)定义好IP分组首部相关的数据结构;(2)在WINDOWS环境下实现程序;(3)在命令提示符下输入:程序文件名 结果文件名;然后抓取IP分组显示首部信息并保存在结果文件中,按Ctrl+C结束程序的运行。 2、TCP报文首部信息解析l 目的及要求:熟悉SOCKET的编程,利用RAW Socket编程技术设计一个应用程序能够截获网络底层上的IP分组,然后通过其中的协议字段获取TCP报文类型的分组并对其首部进行解析,将TCP报文的首部信息显示并保存到相关文件中。能初步掌握TCP/IP网络编程的方法,对网络基本协议的结构有进一步的认识。l 具体内容(1)定义好IP分组、TCP报文首部相关的数据结构;(2)在WINDOWS环境下实现程序;(3)在命令提示符下输入:程序文件名 结果文件名;然后抓取TCP报文分组显示首部信息并保存在结果文件中,按Ctrl+C结束程序的运行。 3、网络连通性测试程序的设计与实现l 目的及要求:熟悉PING程序的工作原理,该程序利用ICMP的回送请求和回送应答来进行工作,而ICMP协议数据是直接封装到IP分组后传递的,利用RAW Socket编程技术。能初步掌握TCP/IP网络协议的基本实现方法,对网络的实现机制有进一步的认识。l 具体内容(1)定义好IP分组、ICMP报文相关的数据结构;(2)在WINDOWS环境下实现程序;(3)在命令提示符下输入:“myping ip地址”;不要求支持主机名,也不带参数(有能力的同学可以实现支持主机名,并带上-l[数据长度]、-n[报文数量]等参数),默认发送4个ICMP数据包,要求返回4次响应。返回信息的格式:“来自[IP]地址的回复:字节=32bytes 序号=X”或“请求超时”(无法PING通的情况)。 4、路由追踪程序的设计与实现l 目的及要求:熟悉ICMP协议的作用,利用ICMP的回送请求和回送应答来进行检测出到达网络上任何一台目的主机途中所经过的路由器,并将结果显示在标准输出上。通过本实验,使学生更加熟悉ICMP报文的结构,对ICMP协议有更好的理解和认识。l 具体内容(1)定义好IP分组、ICMP报文相关的数据结构;(2)在WINDOWS环境下实现程序;(3)在命令提示符下输入:“mytrace IP地址 或 主机名 或 域名”;数)持续发送ICMP回送请求数据包,其中的IP首部TTL字段依次增加,如果是中途路由器收到TTL为0的IP分组后,将会发回超时的错误报告ICMP响应报文,如果到达最后的主机,将会发回ICMP回送应答报文,结束追踪。然后将整个发送过程中收到的ICMP报文中的路由器信息依次在多行中显示出来,格式为“编号 往返时延 路由器地址”。 以上四个题目任选一个 最好能c或c++实现 现在只学过C和C++