IP是英文Internet Protocol(网络之间互连的协议)的缩写,中文简称为“网协”,也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守 IP协议就可以与因特网互连互通。IP地址具有唯一性,根据用户性质的不同,可以分为5类。另外,IP还有进入防护,知识产权,指针寄存器等含义。
网络互联
  IP是怎样实现网络互连的?各个厂家生产的网络系统和设备,如以太网、分组交换网等,它们相互之间不能互通,不能互通的主要原因是因为它们所传送数据的基本单元(技术上称之为“帧”)的格式不同。IP协议实际上是一套由软件程序组成的协议软件,它把各种不同“帧”统一转换成NNT流量或者“IP数据包”格式,这种转换是因特网的一个最重要的特点,使所有各种计算机都能在因特网上实现互通,即具有“开放性”的特点。
数据包
  那么,“数据包(packet)” 是什么?它又有什么特点呢?数据包也是分组交换的一种形式,就是把所传送的数据分段打成 “包”,再传送出去。但是,与传统的“连接型”分组交换不同,它属于“无连接型”,是把打成的每个“包”(分组)都作为一个“独立的报文”传送出去,所以叫做“数据包”。这样,在开始通信之前就不需要先连接好一条电路,各个数据包不一定都通过同一条路径传输,所以叫做“无连接型”。这一特点非常重要,它大大提高了网络的坚固性和安全性。  TCP/IP数据包格式每个数据包都有报头和报文这两个部分,报头中有目的地址等必要内容,使每个数据包不经过同样的路径都能准确地到达目的地。在目的地重新组合还原成原来发送的数据。这就要IP具有分组打包和集合组装的功能。
  在实际传送过程中,数据包还要能根据所经过网络规定的分组大小来改变数据包的长度,IP数据包的最大长度可达 65535个字节。
  1Byte=8bit
IP地址
  IP协议中还有一个非常重要的内容,那就是给因特网上的每台计算机和其它设备都规定了一个唯一的地址,叫做“IP 地址”。由于有这种唯一的地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。现在电信网正在与 IP网走向融合,以IP为基础的新技术是热门的技术,如用IP网络传送话音的技术(即VoIP)就很热门,其它如IP over ATM、IPover SDH、IP over WDM等等,都是IP技术的研究重点。

IPV4地址

公用IP地址
  所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。IP地址就好象电话号码:有了某人的电话号码,你就能与他通话了。同样,有了某台主机的IP地址,你就能与这台主机通信了。
  按照TCP/IP(Transport Control Protocol/Internet Protocol,传输控制协议/Internet协议)协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。例如一个采用二进制形式的IP地址是一串很长的数字,人们处理起来也太费劲了。为了方便人们的使用,IP地址经常被写成十进制的形式,中间使用符号“.”分开不同的字节。于是,上面的IP地址可以表示为“10.0.0.1”。IP地址的这种表示法叫做“点分十进制表示法”,这显然比1和0容易记忆得多。
  有人会以为,一台计算机只能有一个IP地址,这种观点是错误的。我们可以指定一台计算机具有多个IP地址,因此在访问互联网时,不要以为一个IP地址就是一台计算机;另外,通过特定的技术,也可以使多台服务器共用一个IP地址,这些服务器在用户看起来就像一台主机似的。  IPV4数据包头格式将IP地址分成了网络号和主机号两部分,设计者就必须决定每部分包含多少位。网络号的位数直接决定了可以分配的网络数(计算方法2^网络号位数);主机号的位数则决定了网络中最大的主机数(计算方法2^主机号位数-2)。然而,由于整个互联网所包含的网络规模可能比较大,也可能比较小,设计者最后聪明的选择了一种灵活的方案:将IP地址空间划分成不同的类别,每一类具有不同的网络号位数和主机号位数。
  IP地址是IP网络中数据传输的依据,它标识了IP网络中的一个连接,一台主机可以有多个IP地址。IP分组中的IP地址在网络传输中是保持不变的。
基本地址格式
  现在的IP网络使用32位地址,以点分十进制表示,如192.168.0.1。
  地址格式为:IP地址=网络地址+主机地址或 IP地址=网络地址+子网地址+主机地址。
  网络地址是因特网协会的ICANN(the Internet Corporation for Assigned Names and Numbers)分配的,下有负责北美地区的InterNIC、负责欧洲地区的RIPENIC和负责亚太地区的APNIC 目的是为了保证网络地址的全球唯一性。主机地址是由各个网络的系统管理员分配。因此,网络地址的唯一性与网络内主机地址的唯一性确保了IP地址的全球唯一性。
保留地址的分配
  根据用途和安全性级别的不同,IP地址还可以大致分为两类:公共地址和私有地址。公用地址在Internet中使用,可以在Internet中随意访问。私有地址只能在内部网络中使用,只有通过代理服务器才能与Internet通信。
IP地址查询
  windows操作系统下
  开始---运行,输入cmd---在弹出的对话框里输入ipconfig /all ,然后回车出现列表.
  其中有一项:ip address就是ip地址  ipconfig详解
  linux操作系统下
  运行ifconfig 其中以太网下面 inet地址即为IP地址

IP地址的分类

网络号
  用于识别主机所在的网络;  ip分类编址
主机号
  用于识别该网络中的主机。
  IP地址分为五类,A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验,各类可容纳的地址数目不同。
  A、B、C三类IP地址的特征:当将IP地址写成二进制形式时,A类地址的第一位总是0,B类地址的前两位总是10,C类地址的前三位总是110。
A类地址
  (1)A类地址第1字节为网络地址,其它3个字节为主机地址。它的第1个字节的第一位固定为0.
  (2)A类地址范围:1.0.0.0---127.255.255.255
  (3)A类地址中的私有地址和保留地址:
  ① 10.X.X.X是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)。
  范围(10.0.0.0---10.255.255.255)
  ② 127.X.X.X是保留地址,用做循环测试用的。
B类地址
  (1) B类地址第1字节和第2字节为网络地址,其它2个字节为主机地址。它的第1个字节的前两位固定为10.
  (2) B类地址范围:128.0.0.0---191.255.255.255。
  (3) B类地址的私有地址和保留地址
  ① 172.16.0.0---172.31.255.255是私有地址
  ② 169.254.X.X是保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器。就会得到其中一个IP。
  191.255.255.255是广播地址,不能分配。
C类地址
  (1)C类地址第1字节、第2字节和第3个字节为网络地址,第4个字节为主机地址。另外第1个字节的前三位固定为110。
  (2)C类地址范围:192.0.0.0---223.255.255.255。
  (3) C类地址中的私有地址:
  192.168.X.X是私有地址。(192.168.0.0---192.168.255.255)
D类地址
  (1) D类地址不分网络地址和主机地址,它的第1个字节的前四位固定为1110。
  (2) D类地址范围:224.0.0.0---239.255.255.255
E类地址
  (1) E类地址不分网络地址和主机地址,它的第1个字节的前四位固定为1111。
  (2) E类地址范围:240.0.0.0---255.255.255.255
  IP地址如果只使用ABCDE类来划分,会造成大量的浪费:一个有500台主机的网络,无法使用C类地址。但如果使用一个B类地址,6万多个主机地址只有500个被使用,造成IP地址的大量浪费。因此,IP地址还支持VLSM技术,可以在ABC类网络的基础上,进一步划分子网。
  无类地址
  除ABCDE以外的IP地址段划分方式,如:192.168.1.0 255.255.255.252等分成C段划分的地址
实体IP
  在网络的世界里,为了要辨识每一部计算机的位置,因此有了计算机 IP 位址的定义。一个 IP 就好似一个门牌!例如,你要去微软的网站的话,就要去『 207.46.197.101 』这个 IP 位置!这些可以直接在网际网络上沟通的 IP 就被称为『实体 IP 』了。
虚拟IP
  不过,众所皆知的,IP 位址仅为 xxx.xxx.xxx.xxx 的资料型态,其中, xxx 为 1-255 间的整数,由于近来计算机的成长速度太快,实体的 IP 已经有点不足了,好在早在规划 IP 时就已经预留了三个网段的 IP 做为内部网域的虚拟 IP 之用。这三个预留的 IP 分别为:
  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
  上述中最常用的是192.168.0.0这一组。不过,由于是虚拟 IP ,所以当您使用这些地址的时候﹐当然是有所限制的,限制如下:
  私有位址的路由信息不能对外散播
  使用私有位址作为来源或目的地址的封包﹐不能透过Internet来转送
  关于私有位址的参考纪录(如DNS)﹐只能限于内部网络使用
  由于虚拟 IP 的计算机并不能直接连上 Internet ,因此需要特别的功能才能上网。不过,这给我们架设IP网络提供了很大的方便﹐比如﹕目前您的公司还没有连上Internet﹐但这不保证将来不会。使用公共IP的话﹐如果没经过注册﹐在以后真正连上网络的时候﹐就很可能和别人冲突了。也正如前面所分析的﹐到时候再重新规划IP的话﹐将是件非常头痛的问题。这时候﹐我们可以先利用私有位址来架设网络﹐等到真要连上internet的时候﹐我们可以使用IP转换协定﹐如 NAT (Network Addresss Translation)等技术﹐配合新注册的IP就可以了。
固定IP与动态IP
  基本上,这两个东西是由于近来网络公司大量的成长下的产物,例如,你如果向中国电信申请一个商业型态的 ADSL 专线,那他会给你一个固定的实体 IP ,这个实体 IP 就被称为『固定 IP 』了。而若你是申请计时制的 ADSL ,那由于你的 IP 可能是由数十人共同使用,因此你每次重新开机上网时,你这部计算机的 IP 都不会是固定的!于是就被称为『动态 IP』或者是『浮动式IP』。基本上,这两个都是『实体IP』,只是网络公司用来分配给用户的方法不同而产生不同的名称而已!

特殊的IP地址

组播地址
  在IP地址空间中,有的IP地址不能为设备分配的,有的IP地址不能用在公网,有的IP地址只能在本机使用,诸如此类的特殊IP地址众多:  组播地址注意它和广播的区别。从224.0.0.0到239.255.255.255都是这样的地址。224.0.0.1特指所有主机, 224.0.0.2特指所有路由器。这样的地址多用于一些特定的程序以及多媒体程序。如果你的主机开启了IRDP(Internet路由发现协议,使用组播功能)功能,那么你的主机路由表中应该有这样一条路由。
169.254.x.x
  如果你的主机使用了DHCP功能自动获得一个IP地址,那么当你的DHCP服务器发生故障,或响应时间太长而超出了一个系统规定的时间,Windows系统会为你分配这样一个地址。如果你发现你的主机IP地址是一个诸如此类的地址,很不幸,十有八九是你的网络不能正常运行了。
受限广播地址
  广播通信是一对所有的通信方式。若一个IP地址的2进制数全为1,也就是255.255.255.255,则这个地址用于定义整个互联网。如果设备想使IP数据报被整个Internet所接收,就发送这个目的地址全为1的广播包,但这样会给整个互联网带来灾难性的负担。因此网络上的所有路由器都阻止具有这种类型的分组被转发出去,使这样的广播仅限于本地网段。  广播地址
直接广播地址
  一个网络中的最后一个地址为直接广播地址,也就是HostID全为1的地址。主机使用这种地址把一个IP数据报发送到本地网段的所有设备上,路由器会转发这种数据报到特定网络上的所有主机。
  注意:这个地址在IP数据报中只能作为目的地址。另外,直接广播地址使一个网段中可分配给设备的地址数减少了1个。
IP地址是0.0.0.0
  若IP地址全为0,也就是0.0.0.0,则这个IP地址在IP数据报中只能用作源IP地址,这发生在当设备启动时但又不知道自己的IP地址情况下。在使用DHCP分配IP地址的网络环境中,这样的地址是很常见的。用户主机为了获得一个可用的IP地址,就给DHCP服务器发送IP分组,并用这样的地址作为源地址,目的地址为255.255.255.255(因为主机这时还不知道DHCP服务器的IP地址)。
NetID为0的IP地址
  当某个主机向同一网段上的其他主机发送报文时就可以使用这样的地址,分组也不会被路由器转发。比如12.12.12.0/24这个网络中的一台主机12.12.12.2/24在与同一网络中的另一台主机12.12.12.8/24通信时,目的地址可以是0.0.0.8。
环回地址
  127网段的所有地址都称为环回地址,主要用来测试网络协议是否工作正常的作用。比如使用ping  环回地址127.0.0.1就可以测试本地TCP/IP协议是否已正确安装。另外一个用途是当客户进程用环回地址发送报文给位于同一台机器上的服务器进程,比如在浏览器里输入127.1.2.3,这样可以在排除网络路由的情况下用来测试IIS是否正常启动。
专用地址
  IP地址空间中,有一些IP地址被定义为专用地址,这样的地址不能为Internet网络的设备分配,只能在企业内部使用,因此也称为私有地址。若要在Internet网上使用这样的地址,必须使用网络地址转换或者端口映射技术。
  这些专有地址是:
  10/8 地址范围:10.0.0.0到10.255.255.255 共有2的24次方个地址
  172.16/12 地址范围:172.16.0.0至172.31.255.255 共有2的20次方个地址
  192.168/16 地址范围:192.168.0.0至192.168.255.255 共有2的16次方个地址

IPV6发展及其特点

综述
  IPv6是"Internet Protocol Version 6"的缩写,也被称作下一代互联网协议,它是由IETF小组(Internet工程任务组Internet Engineering Task Force)设计的用来替代现行的IPv4(现行的IP)协议的一种新的IP协议。
  我们知道,Internet的主机都有一个唯一的IP地址,IP地址用一个32位二进制的数表示一个主机号码,但32位地址资源有限,已经不能满足用户的需求了,因此Internet研究组织发布新的主机标识方法,即IPv6。在RFC1884中(RFC是Request for Comments Document的缩写。RFC实际上就是Internet有关服务的一些标准),规定的标准语法建议把IPv6地址的128位(16个字节)写成8个16位的无符号整数,每个整数用四个十六进制位表示,这些数之间用冒号(:)分开,例如:3ffe:3201:1401:1280:c8ff:fe4d:db39:1984
IPv6特点
   扩展的寻址能力
  IPv6将IP地址长度从32位扩展到128位,支持更多级别的地址层次、更多的可寻址节点数以及更简单的地址自动配置。通过在组播地址中增加一个“范围”域提高了多点传送路由的可扩展性。还定义了一种新的地址类型,称为“任意播地址”,用于发送包给一组节点中的任意一个;
  简化的报头格式
  一些IPv4报头字段被删除或变为了可选项,以减少包处理中例行处理的消耗并限制IPv6报头消耗的带宽;
  对扩展报头和选项支持的改进
  IP报头选项编码方式的改变可以提高转发效率,使得对选项长度的限制更宽松,且提供了将来引入新的选项的更大的灵活性;
  标识流的能力
  增加了一种新的能力,使得标识属于发送方要求特别处理(如非默认的服务质量获“实时”服务)的特定通信“流”的包成为可能;
  认证和加密能力
  IPv6中指定了支持认证、数据完整性和(可选的)数据机密性的扩展功能。

代理IP

  代理IP就是代理服务器,英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,须送出Request信号来得到回答,然后对方再把信息以bit方式传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。而且,大部分代理服务器都具有缓冲的功能,就好像一个大的Cache,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。更重要的是:Proxy Server(代理服务器)是Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联(OSI)模型的对话层。主要的功能有:
  1.突破自身IP访问限制,访问国外站点。教育网、169网等网络用户可以通过代理访问国外网站。
  2.访问一些单位或团体内部资源,如某大学FTP(前提是该代理地址在该资源 的允许访问范围之内),使用教育网内地址段免费代理服务器,就可以用于对教育网开放的各类FTP下载上传,以及各类资料查询共享等服务。
  3.突破中国电信的IP封锁:中国电信用户有很多网站是被限制访问的,这种限制是人为的,不同Serve对地址的封锁是不同的。所以不能访问时可以换一个国外的代理服务器试试。
  4.提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界 的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。
  5.隐藏真实IP:上网者也可以通过这种方法隐藏自己的IP,免受攻击。

#include "nids.h"
/*
-----------------------------------------------------------------------------------------------------------------------
下面是检测扫描用的扫描信息数据结构
-----------------------------------------------------------------------------------------------------------------------  */
struct scan
{   u_int addr; /* 地址 */   unsigned short port; /* 端口号 */   u_char flags; /* 标记 */
};
/*
-----------------------------------------------------------------------------------------------------------------------
下面是检测扫描时用到的扫描主机数据结构
-----------------------------------------------------------------------------------------------------------------------  */
struct host
{   struct host *next; /* 下一个主机结点 */   struct host *prev; /* 前一个主机结点 */   u_int addr; /* 地址 */   int modtime; /* 时间 */   int n_packets; /* 个数 */   struct scan *packets; /* 扫描信息 */
};
/*
-----------------------------------------------------------------------------------------------------------------------
下面是IP协议首部的数据结构
-----------------------------------------------------------------------------------------------------------------------  */
struct ip_header
{   #if defined(WORDS_BIGENDIAN)   unsigned int ip_v: 4, ip_hl: 4;   #else   unsigned int ip_hl: 4, ip_v: 4;   #endif   unsigned int ip_tos;   unsigned char ip_len;   unsigned char ip_id;   unsigned char ip_off;   unsigned int ip_ttl;   unsigned int ip_p;   unsigned char ip_csum;   struct in_addr ip_src;   struct in_addr ip_dst;
};
/*
-----------------------------------------------------------------------------------------------------------------------
下面是TCP协议首部的数据结构
-----------------------------------------------------------------------------------------------------------------------  */
struct tcp_header0
{   unsigned char th_sport; /* 源端口号 */   unsigned char th_dport; /* 目的端口号 */   unsigned short th_seq; /* 序列号 */   unsigned short th_ack; /* 确认号 */   #ifdef WORDS_BIGENDIAN   unsigned int th_off: 4,  /* 数据偏移 */   th_x2: 4; /* 保留 */   #else   unsigned int th_x2: 4,  /* 保留 */   th_off: 4; /* 数据偏移 */   #endif   unsigned int th_flags;   unsigned char th_win; /* 窗口大小 */   unsigned char th_sum; /* 校验和 */   unsigned char th_urp; /* 紧急指针 */
};
/*
=======================================================================================================================
下面是检测扫描攻击和异常数据包的函数
=======================================================================================================================  */
static void my_nids_syslog(int type, int errnum, struct ip_header *iph, void *data)
{   static int scan_number = 0;   char source_ip[20];   char destination_ip[20];   char string_content[1024];   struct host *host_information;   unsigned char flagsand = 255, flagsor = 0;   int i;   char content[1024];   switch (type) /* 检测类型 */   {   case NIDS_WARN_IP:   if (errnum != NIDS_WARN_IP_HDR)   {   strcpy(source_ip, inet_ntoa(*((struct in_addr*) &(iph->ip_src.s_addr))));   strcpy(destination_ip, inet_ntoa(*((struct in_addr*) &(iph->ip_dst.s_addr))));   printf("%s,packet(apparently from %s to %s\n", nids_warnings[errnum], source_ip, destination_ip);   }   else   {   printf("%s\n", nids_warnings[errnum]);   break;   }   case NIDS_WARN_TCP:   strcpy(source_ip, inet_ntoa(*((struct in_addr*) &(iph->ip_src.s_addr))));   strcpy(destination_ip, inet_ntoa(*((struct in_addr*) &(iph->ip_dst.s_addr))));   if (errnum != NIDS_WARN_TCP_HDR)   {   printf("%s,from %s:%hi to  %s:%hi\n", nids_warnings[errnum], source_ip, ntohs(((struct tcp_header*)data)->th_sport), destination_ip, ntohs(((struct tcp_header*)data)->th_dport));   }   else   {   printf("%s,from %s to %s\n", nids_warnings[errnum], source_ip, destination_ip);   }   break;   case NIDS_WARN_SCAN:   scan_number++;   sprintf(string_content, "-------------  %d  -------------\n", scan_number);   printf("%s", string_content);   printf("-----  发现扫描攻击 -----\n");   host_information = (struct host*)data;   sprintf(string_content, "扫描者的IP地址为:\n");   printf("%s", string_content);   sprintf(string_content, "%s\n", inet_ntoa(*((struct in_addr*) &(host_information->addr))));   printf("%s", string_content);   sprintf(string_content, "被扫描者的IP地址和端口号为:\n");   printf("%s", string_content);   sprintf(string_content, "");   for (i = 0; i < host_information->n_packets; i++)   {   strcat(string_content, inet_ntoa(*((struct in_addr*) &(host_information->packets[i].addr))));   sprintf(string_content + strlen(string_content), ":%hi\n", host_information->packets[i].port);   flagsand &= host_information->packets[i].flags;   flagsor |= host_information->packets[i].flags;   }   printf("%s", string_content);   sprintf(string_content, "");   if (flagsand == flagsor)   {   i = flagsand;   switch (flagsand)   {   case 2:   strcat(string_content, "扫描类型为: SYN\n");   break;   case 0:   strcat(string_content, "扫描类型为: NULL\n");   break;   case 1:   strcat(string_content, "扫描类型为: FIN\n");   break;   default:   sprintf(string_content + strlen(string_content), "标志=0x%x\n", i);   }   }   else   {   strcat(string_content, "标志异常\n");   }   printf("%s", string_content);   break;   default:   sprintf(content, "未知");   printf("%s", string_content);   break;   }
}   /*
=======================================================================================================================
主函数
=======================================================================================================================  */
void main()
{   nids_params.syslog = my_nids_syslog;   /* 注册检测攻击的函数 */   nids_params.pcap_filter = "ip";   if (!nids_init())   /* Libnids初始化 */   {   printf("出现错误:%s\n", nids_errbuf);   exit(1);   }   nids_run();   /* 进入循环捕获数据包的状态 */
}   

转载于:https://www.cnblogs.com/niulanshan/archive/2012/11/07/6175479.html

VC++实现ip数据包分析相关推荐

  1. 计算机网络ip数据包分析题,计算机网络课程设计_IP数据包的捕获及分析.doc

    CENTRAL SOUTH UNIVERSITY 计算机网络课程设计报告 目录 第一章 课程设计的目的与要求1 1.1 课程设计的目的1 1.2 课程设计的要求1 第二章 课程设计的内容3 2.1 课 ...

  2. 计算机网络ip数据包分析题,计算机网络课程设计-IP数据包解析实验报告

    计算机网络课程设计-IP数据包解析实验报告 解析 IP数据报实验报告目录目录 21.课程设计目的 .22.课程设计要求 .23.相关知识 .24.课程设计分析 .64.1 网卡设置64.2 使用套接字 ...

  3. C++ 捕获与解析IP数据包 (winpcap)

    源代码链接:https://download.csdn.net/download/chd_lcj/10891420 (不知道为什么积分涨到4积分了...原先只是单纯的想分享下的,结果最低只能设置1积分 ...

  4. 抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

    目录 抓包过程 以太网帧(也叫MAC帧)首部分析 IP数据包首部分析 抓包过程 使用了 Wireshark 进行抓包,用两个最常用的 curl 和 ping 命令来演示抓包情况,开启抓包. ## 先访 ...

  5. 0x0800 IP数据包格式分析

    一.基本概念 IP数据包也称为IP报文分组,是网络层的一个协议,由IP报文头和IP报文用户数据组成,IP报文头部长度一半在20-60个字节之间.一个IP分组最大长度不能超过65535个字节.IP是一个 ...

  6. JAVA网络编程:TCP/IP数据包结构

    2019独角兽企业重金招聘Python工程师标准>>> 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解网络数据 ...

  7. Wireshark数据包分析之DHCP协议包解读

    *此篇博客仅作为个人笔记和学习参考 DHCP协议包格式 DHCP报文类型 DHCP Discover.DHCP Offer.DHCP Request.DHCP ACK.DHCP NAK.DHCP Re ...

  8. TCP,IP数据包结构

    TCP/IP协议中各层的数据报结构是一个比较抽象的内容,大家在日常学习过程中往往难以理解和掌握,常常是死记硬背把它记住了事.本文首先利用Sniffer工具捕获了FTP命令操作过程中的所有数据包,然后对 ...

  9. WireShark数据包分析数据封装

    WireShark数据包分析数据封装 数据封装(Data Encapsulation)是指将协议数据单元(PDU)封装在一组协议头和尾中的过程.在OSI七层参考模型中,每层主要负责与其它机器上的对等层 ...

  10. pcap文件解析工具_【免费毕设】PHP网络数据包分析工具的设计与开发(源代码+论文)...

    点击上方"蓝字"关注我们目录 系统设计 网络数据包分析系统的设计 整个网络数据报分析工具采用模块化的设计思想,原因是许多程序太长或太复杂,很难写在单一单元中.如果把代码分为较小的功 ...

最新文章

  1. 海量秋招面试资料等你来拿!你离大厂也许并不远
  2. [转]理解“Future”
  3. H264实时编码及NALU,RTP传输(ZZ)
  4. ==与equal在java中应用的感悟
  5. 第五季2:STA模式USB-WIFI网卡移植与测试
  6. android 后退按钮,如何在android中处理Search View的后退按钮
  7. 十五天数据分析-笔记
  8. 轉APUE:mmap函数
  9. CF584D 【Dima and Lisa】题解
  10. (转)软件工程 英文缩写
  11. 常用音频单位简介:dBSPL、dBm、dBu、dBV、dBFS
  12. 什么是软件设计模式?
  13. DOS命令是如何操作目录和文件夹的?
  14. python图像的手绘效果代码_Python项目1:实现将图片转化为手绘效果
  15. 视频剪辑入门技能快速分享
  16. opengl——贴图
  17. 解决戴尔笔记本电脑插上耳机没反应,要重启才能识别
  18. RPLIDAR思岚雷达学习记录--6--matlab处理雷达数据
  19. 2021年大厂iOS 面试题 - 前篇
  20. 音视频入门 (iOS上fdk-aac的交叉编译)

热门文章

  1. Google IO 2015 Material Now
  2. Spring 的 ApplicationEvent and ApplicationListener
  3. 问题:sql server 2005 中数据库关系图无法使用——基于SQL Server 2005
  4. (转载)程序员文史综合题目一(附答案)
  5. asp.net2.0自定义控件---鼠标移到按钮上更改背景颜色,移出后恢复
  6. FLEX 2.01 全套下载!
  7. smart link和聚合链路综合实验
  8. wireshark学习使用
  9. js 禁用和解除禁用按钮_js禁用button,js 将某个按钮禁用5秒钟
  10. 高并发消息队列常用通知机制