senip使用

使用SENDIP和Socket编程发送数据到指定IP和端口 本文还有配套的精品资源,点击获取 简介:本文旨在探讨如何通过SENDIP工具和socket编程实现将字符数据发送到指定IP和端口的过程。TCP作为传输层协议,在确保数据可靠性传输方面发挥着重要作用。文章将引导读者了解TCP/IP协议栈,掌握使用socket进行网络通信的基本步骤,并可能涉及到使用SENDIP或TestTcp.exe等工具。这些技能对于服务器程序开发及调试至关... 阅读详情
 

在从事网络产品尤其是网络安全产品开发时,我们一直面临着一个问题,就是对产品的TCP/IP 协议栈进行稳定性或安全性测试,确保开发产品在遇到各种不规则的错误的IP 包时仍可正常稳定高效地工作,我们知道,在正常的网络环境中,很难产生错误的IP 包,也很难产生我们想要的错误的IP 包,为此,要完成对产品的测试,我们必须自己来制造各种各样错误的IP 包,本篇的目的就是介绍如何利用各种发包工具来制造自己想要的错误的IP 包。SENDIP 是一个LINUX 下的命令行工具,可以通过命令行参数的方式发送各种格式的IP 包,它有大量的命令行参数来规定各种协议的头格式,目前可支持NTP, BGP, RIP, RIPng,TCP, UDP, ICMP 或raw IPv4 和IPv6 包格式,并且可以随意在包中添加数据。

帮助文件说明

Usage: sendip [-v] [-d data] [-h] [-f datafile] [-p module] [module options] hostname

-d data        add this data as a string to the end of the packet

                Data can be:

                rN to generate N random(ish) data bytes;

                0x or 0X followed by hex digits;

                0 followed by octal digits;

                any other stream of bytes

-f datafile    read packet data from file

-h             print this message

-p module      load the specified module (see below)

-v             be verbose

参数含义:

    -v: 详细模式,即打印出你发送报文的内容,类似于debug模式,建议配置该参数,可以清楚的看到发送的报文内容是否正确。

    -d: 添加data字段的内容,有option字段的话放在options字段之后,任意添加。也可以一次用文件导入,不过参数是下面的-f。

    -h: 显示上面的帮助文件。

    -f: 在data字段添加参数后所指的文件里的内容,参数后跟的内容就是一个文件名。

    -p: 指定发送报文的类型,选项就是帮助提示中的ipv4 ipv6 icmp tcp udp bgp rip ntp的8种类型,注意各个协议之间的搭配使用,例如ntp是用udp传输,而rip是用tcp传输。这个参数可以复用来更加精确的确定一个报文的类型和各个字段,例如:-p ipv4 –p tcp –p rip是可以一起用的。该参数必须配置。

    hostname: 直接输入ip地址即可,也可以是主机名,但是之前要把主机名和对应的ip写入到/etc/hosts的文件中。该参数必须配置。注意不需要输入hostname这个字段,要不是ip,要不是主机名。

    配置完以上参数后就可以发送报文了,但是具体报文的各个字段都是default配置,并没有达到自己要构造报文的目的。下面以ipv4、udp、tcp、icmp为例根据man文件的内容来说明各个字段的构造方法,ipv6、rip、bgp和ntp希望后面有时间再补充。

IPV4报文的构造

    先看man文件中显示支持可以构造的IPV4报文字段有哪些,然后在参数后直接说明该字段的含义。构造报文首先要求对报文的各个字段非常熟悉,所以先看一下IP首部的图表:

IP首部:

0                          15  16                              31

4位版 本

首部长 度

8位

服务类型(TOS)

16位

总长度(字节)

16位

标识

3位标志

13位

片偏移

8位

生存时间TTL

8位

协议

16位

首部检验和

32位

源IP地址

32位

目的IP地址

32位

选项(若有)

数据

sendip_表1

   上面是一个简单的图示,具体各个字段可以参见高文宇的《IP协议》文档。

Arguments for module ./ipv4.so:

       -is x  Source IP address (see README)

    构造源IP地址,任意构造。判断不是很严格,可以输入错误,它会自动补充或用255.255.255.255来代替,例如输入1.1.则用255.255.255.255来代替;如果输入1.1则会自动补齐中间的两位,显示为1.0.0.1;如果输入1.1.1则会自动填充为1.1.0.1。目的IP地址也是一样。源IP默认为127.0.0.1。

      -id x  Desitnation IP address

    构造目的IP地址,这里其实可以不用写,因为hostname为一个必带的参数字段,最后的目的地址是匹配hostname参数后的内容。注意,这里的ip和hostname的内容要求一样,不然sendip发出了报文(它发出的报文目的地址是-id参数后的地址),但是id和hostname所带参数内容所指的主机的网卡并收不到报文。默认以-id后的参数为准。

       -ih x  IP header length (see README)

    构造header(首部)长度,这里所指的是32-bit的word的个数,就是以4个字节为单位元,你定义的结果要乘以4,要求最小为5(5x4=20bytes),最大为15(15x4=60bytes)。如果构造首部不是20bytes的报文,网卡收到的时候ethereal只解析到mac地址,它不认为是一个完整的IP报文。默认是20字节。

       -iv x  IP version (you almost definately don’t want to change this)

    构造IP版本,这个可以任意,0到15任意选择,超过15发出的报文IP version为0。默认为4。

       -iy x  IP type of service

    构造服务类型,这里先说明一下Type of service(PreDTRCx)的各个标志位的意义:

Precedence(000-111)

D(1 = minimize delay)

T(1 = maximize throughout)

R(1 = maximize reliability)

C(1 = minimize cost)

x(reservd and set to 0)

服务类型的前3位设置分组的优先级,数值越大,则分组越重要。接下来的3位分别表示延迟、吞吐率和可靠性,如果为0则表示常规服务,如果为1则表示短延迟、高吞吐率和高可靠性。最后两位没有使用。sendip并不能细致到定义每一个bit位的数值,默认是全0。

   -il x  Total IP packet length (see README)

    构造IP报文的总长度,这里的总长度是包括数据字段的,就是说如果没有数据字段,这里的值应该和首部长度字段的值是一样的。最大值为65535(二进制16个1),但是注意配置这个值的意义不大,用ethereal抓到这个报文时显示的值还是一个正确的值,这个报文本来有多大就是多大。默认是根据报文内容来确定,是一个正确的值。

       -ii x  IP packet ID (see README)

    构造IP报文的标识号,这个时随机的,没有太多意义,不知道是不是会在校验的时候用到。默认是随机构造。在IP协议中的作用是标识报文,例如一个分片后的IP报文,它的ID肯定是一样的。取值的范围是1-65535,不在这个范围的话,程序会随机构造一个id号。

       -ifr x IP reservced flag (see README)

    保留的标志位。默认为0,选项为0、1、r。

       -ifd x IP don’t fragment flag (see README)

    构造强制不分片标志位,默认为0,选项为0、1、r。

       -ifm x IP more fragments flag (see README)

    构造分片标志位,这个标志位只有在报文需要分片时才置为1,默认为0,选项为0、1、r。 

       -if x  IP fragment offset

    构造需要分片的报文的位偏移,默认发送的报文没有分片的话就是0。

       -it x  IP time to live

    生存时间值,修改的意义不大,默认配置为255。

       -ip x  IP protocol

协议字段,判断哪个协议使用了IP封装来传输,例如ICMP为0x01,TCP为0x06,UDP为0x11。

       -ic x  IP checksum (see README)

    构造首部校验和字段,只覆盖首部,不包括数据字段。默认是正确的校验和,看不出什么规律来,应该是有一种算法。测试时可以随意构造一个错误的checksum,看DUT是不是检测checksum这个字段。但是验证的过程中发现配置后没有作用,并没有修改。测试了icmp的包倒是修改了,不知道是不是软件的bug。

    注意:以下内容都是选项字段,之前没有了解过的话,可能会觉得有些陌生,为了更好的了解这些字段的意思,可以先用ping这个简单的命令来进行一些实践操作,理解其中的一些字段的含义。

实例:

1、返回一个时戳,表示到达目的地址的时间,在reply的回应包中可以看到。

C:/>ping -s 1 192.168.100.18

Pinging 192.168.100.18 with 32 bytes of data:

Reply from 192.168.100.18: bytes=32 time<1ms TTL=63

Timestamp: 192.168.100.18 : 9612956

2、记录路由,表示在ping包到达目的地址时经过的路由设备,需要设备的支持。

C:/>ping -r 1 192.168.100.18 -n 1

Pinging 192.168.100.18 with 32 bytes of data:

Reply from 192.168.100.18: bytes=32 time<1ms TTL=63

    Route: 192.168.100.18

Ping statistics for 192.168.100.18:

   -r表示记录路由的跳数,注意这个参数值只能是1-9,原因是因为记录路由这个选项需要3个字节的开销,后面每跟一个ip地址需要4个字节,而选项字段的最大值为40个字节。这个参数的作用被之后的tracert命令代替。

-n 表示发多少个ping包。

3、严格源路由和记录路由,表示不但要记录路由,还要求到达目的地址必须要经过指定的路由地址。

C:/>ping -k 192.168.96.2 192.168.98.1 192.168.100.18

表示到达192.168.100.18时,先必须经过192.168.96.2和192.168.98.1这两个路由设备,再到达目的ip。

    现在逐一来看各个参数的含义:

       -ionum x

    根据《TCP/IP详解》卷2第9章,并没有这个选项字段,这里应该是软件自己为了控制选项字段的长度而设计的。这里先说明一些选项字段的基础知识:

l         选项字段必须是4字节的整数倍,原因很简单,因为IP header length是以4字节为一个单位元;

l         IP选项字段可能包含0个或多个单独选项,选项有两种类型,单字节和多字节,如下图:

?/P>

sendip_图1

所有选项1都以字节类型(type)字段开始。在多字段选项中,类型字段后面紧接着一个长度(len)字段,其它的字节是数据(data)。许多选项数据字段的第一个字节是1字节的位移(offset)字段,指向数据字段内的某个字节。长度(len)字节的计算覆盖了类型、长度、和数据字段。类型(type)被继续分成了3个子字段:1bit备份(copied)、2bit类(class)字段和5bit数字(number)字段。

现在来看各个选贤字段的定义和使用方法。默认这个参数后的长度值总是正确的,默认没有选项字段。

       -ioeol IP option: end of list

    1字节,表示选项表的结尾,就是一个选项字段的结束标识符。

       -ionop IP option: no-op

    1字节,没有任何意义,表示无操作,碰到这个字段可以忽略。

       -iorr x

    长度可变,作用是记录路由。格式是pointer:addr1:addr2,这里的pointer其实就是一个具体的offset值,是一个十六进制的值,我测试最小值是十进制的10(这里只能用十进制表示,10刚好对应的是0x16)。使用可以参照这个命令行:

[root@FC5 ~]# sendip -v -p ipv4 -is 192.168.96.111 -id 192.168.96.202  -iorr 10:192.168.96.1 192.168.96.202 -d asf

    这里要说明一点为什么要加一个asf的3个字节的数据字段,因为在测试的时候,我在被发送报文的pc端抓包发现如果ethereal分析显示total length这个值不对的话,它就不会分析其它字段,这样会导致不能清楚看到option字段,不知道是不是正确构造了报文,所以在构造报文时还需要注意这个小窍门,ethereal分析后还少几个字节就加几个字符。这样你就可以看到你刚才发送的option字段里的内容了。

       -iots x

    长度可变,作用是时戳。格式是pointer:overflow:flag:(ip1:)ts1:(ip2:)ts2,pointer表示位偏移,overflow表示??,flag是标识位(0表示记录时间戳、1表示记录地址和时间戳、3表示只在预先指定的系统记录时间戳,其它保留)。注意只有flag位置1时才有ip1、ip2的参数。

[root@FC5 ~]# sendip -v -p ipv4 -is 192.168.96.222 -iots 11:4:1:192.168.96.1:11:

192.168.9.8:90 192.168.96.202

11是位偏移,4表示??,1表示记录地址和时间戳,后面就是一个ip对应一个时间戳。

构造这样的报文主要可以用于测试DUT是不是检查option字段,如果检查,是不是检查时间戳等信息。

       -iolsr x

    长度可变,表示宽松源路由和记录路由(LSRR)。格式很简单了,上面ping的实例如果运行后抓包看过以后,就发现这个是按照标准的格式来定义的。

[root@FC5 ~]# sendip -v -p ipv4 -is 192.168.96.253  -iolsr 10:192.168.96.1 192.168.96.202 -d 1

       -iosid x

    4个字节,构造identifier(标识符),取值范围0-65535,超过该范围自动变为0。我测试的结果显示前2个字节总是0x8804,后面2个字节就是输入的参数值。

       -iossr x

    长度可变,表示严格源路由和记录路由(SSRR),格式同-iolsr。

TCP报文的构造

先看man文件中显示支持可以构造的TCP报文字段有哪些,然后在参数后直接说明该字段的含义。构造报文首先要求对报文的各个字段非常熟悉,所以先看一下TCP首部的图表:

TCP首部:

0                                   15 16                     31

16位源端口号

16位目的端口号

32位序列号

32位确认号

4位

首部

长度

6位

保留

U

R

G

ACK

P

S

H

RST

S

Y

N

FIN

16位窗口大小

16位TCP检验和

16位紧急指针

选项(若有)

数据(若有)

         

sendip_表2

   Arguments for module ./tcp.so:

       -ts x  TCP source port

    构造TCP的源端口,默认为0。

       -td x  TCP destination port

    构造TCP的目的端口,默认为0。

       -tn x  TCP sequence number

    构造TCP的序列号,默认为随机。

       -ta x  TCP ack number

    构造TCP的应答号,默认为0。

       -tt x  TCP data offset

    构造TCP的首部长度,默认是正确值,标准是20字节,最大60字节。

       -tr x  TCP header reserved field EXCLUDING ECN and CWR bits

TCP头部保留位。

       -tfe x TCP ECN(Explicit Congestion Notification)bit (rfc2481)

    TCP标志位中保留的ECN字段,默认为0,选项为0、1或r。

       -tfc x TCP CWR(Congestion Window Reduced)bit (rfc2481)

    TCP标志位中保留的CWR字段,默认为0,选项为0、1或r。

    注意:ECN和CWR

       -tfu x TCP URG bit

    构造TCP标志位中的URG,表示紧急指针有效。当紧急指针(Urgent Pointer)字段有内容时有效。默认为0,选项为0、1或r。

       -tfa x TCP ACK bit

    构造TCP标志位中的ACK,表示确认ack number有效。默认为0,选项为0、1或r。

       -tfp x TCP PSH bit

    构造TCP标志位中的PSH,表示接收方应该尽快将这个报文段交给应用层。默认为0,选项为0、1或r。

       -tfr x TCP RST bit

    构造TCP标志位中的RST,表示需要重建连接,断开目前的连接。默认为0,选项为0、1或r。

        -tfs x TCP SYN bit

    构造TCP标志位中的SYN,表示使用同步序号用来发起一个连接。默认为1,选项为0、1或r。

       -tff x TCP FIN bit

    构造TCP标志位中的FIN,表示完成了发送任务。默认为0,选项为0、1或r。

       -tw x  TCP window size

    构造TCP的期望接收的窗口大小值,默认为65535字节。

       -tc x  TCP checksum

    构造TCP的checksum,检验和覆盖了整个TCP的报文段。默认为正确值。可以用于测试DUT设备是不是检验TCP报文的checksum值。

       -tu x  TCP urgent pointer

构造紧急指针,所谓紧急指针是一个正的位偏移量,和序号字段中的值相加可以得出紧急数据最后一个字节的序号。默认配置为0。注意这个值只有在-tfu置1时才有效,默认情况下如果有-tu参数,-tfu会自动为1,但是强制把-tfu置为1的话会导致-tu的参数无效。      

       -tonum x

              TCP option as string of hex bytes (length is always correct)

    选项字段的长度,但是标准字段没有这个选项。默认是没有选项字段的内容。

       -toeol TCP option: end of list

    选项字段结束的标识符。

       -tonop TCP option: no op

    没有任何意义,表示无操作,碰到这个字段可以忽略。

       -tomss x

   表示最长报文大小,每个连接方通常都在通信的第一个报文段中指明这个选项。

       -towscale x

              TCP option: window scale (rfc1323)

       -tosackok

              TCP option: allow selective ack (rfc2018)

       -tosack x

     TCP option: selective ack (rfc2018), format is l_edge1:r_edge1,l_edge2:r_edge2...

       -tots x

              TCP option: timestamp (rfc1323), format is tsval:tsecr

ICMP报文的构造

先看man文件中显示支持可以构造的ICMP报文字段有哪些,然后在参数后直接说明该字段的含义。构造报文首先要求对报文的各个字段非常熟悉,所以先看一下UDP首部的图表:

ICMP结构:

  0                          15 16                          31

8位类型

8位代码

16位检验和

其它一些细节信息内容

sendip_表4

Arguments for module ./icmp.so:

       -ct x  ICMP message type

    构造ICMP报文类型,一个字节。内容比较多,最常见的类型如下:

0 表示Echo Reply

3 表示Eestination Unreachable

    这个又分很多类型,这里不作分析,具体可以参见资料。

4 Source Quench

5 Redirect

8 Echo

10 Router Selection

11 Time Exceeded

13 Timestamp

       -cd x  ICMP code

    构造代码字段,取值范围0-255,超过255后变为0,默认配置为0。

       -cc x  ICMP checksum

    构造checksum字段,2个字节。默认是正确内容。

[root@FC5 ~]# sendip -v -p ipv4 -is 192.168.96.253  192.168.96.202  -p icmp -ct 3

发送一个源地址为192.168.96.253的类行为3的icmp报文给192.168.96.202这个地址。

 

实例:

[root@FC5 ~]# sendip -v -p ipv4 -is 192.168.96.7 -id 192.168.96.1 -p udp -us 8000 -ud 4000 192.168.96.1 –d asdfasdf

发送一个源地址为192.168.96.7,源端口为8000的udp包,到目的为192.168.96.1,目的端口为4000设备上,数据包的内容是asdfasdf,如果要直接引用一个文件的内容的话可以使用-f参数,后面写文件的路径即可。

 

小结:

    这篇文档主要是介绍sendip的报文构造方式,而sendip的缺陷就在于它不能连续的发送报文,所以这里提供一个简单的perl脚本,来循环的发送数据包,虽说不能形成flood的效果,但是对于测试可以达到数量控制的目的,有助于自动化脚本的测试,提高测试的效率。

#!/usr/bin/perl -w

$i=1;

while ($i<2)

{

   for($j=0;$j<=65;++$j)

   {

     system "sendip -v -d r64 -p ipv4 -iv 4 -ih 5 -il 20 -ifm 1  -if 0 -iy 8  -is 13.1.1.2 -id 192.168.98.173 -p udp -us $j -ud $j  -ul 56 192.168.98.173";

     system "sendip -v -d r64 -p ipv4 -iv 4 -ih 5 -il 20 -ifm 0  -if 0x3 -iy 8  -is 13.1.1.2 -id 192.168.98.173 -p udp -us $j -ud $j -ul 56  192.168.98.173";

     system "sendip -v -d r64 -p ipv4 -iv 4 -ih 5 -il 65535 -ifm 1  -if 10 -iy 4  -is 13.1.1.2 -id 192.168.98.173 -p tcp -ts $j -td $j -tt 8  192.168.98.173";

   }

++$i

}

//i代表循环的次数,j代表端口,本来是65535,我修改了一下,可以根据需要来调整次数和//端口范围

sendip 源码 Sendip是Linux下的IP数据包发送软件,它允许用户构造任意的甚至是不合法的IP数据包,并自动选择一个正确接口把它发送出去。sendip工作的基本原理是利用原始套接口编程技术,创建一个原始套接口,然后设置该套接口的IP_HDRINCL选项,从而可以由程序使用者代替操作系统任意构造IP数据报首部、上层协议首部和数据。然后利用sendto()系统调用,发送这个数据报。sendip目前的最新版本是2.1,本文挡讨论的版本是2.0。本文档首先介绍了sendip 主函数的工作流程,然后介绍了一些sendip主函数调用的附加函数,系统调用 的功能和使用方法。 立即下载

相关推荐

linux下安装sendip

linux下安装sendip 针对ipv4.c文件和tcp.c文件中的若干warning等问题给出解决方法

sendip 快速入门

sendip是linux下的命令行发包工具 命令模式: sendip 网络层 传输层 数据 domain 其中 domain 是目的主机,即此数据包的第一个路由目标,可使用网址和 ip。 常用命令参数: -d 要携带的数据。使用参数  rN 来产生随机的 N 个字节。 -f 从文件中读取要携带的数据。 -p 指定要使用的网络协议。 -v 打印整个发出的数据包。 示例: sen...

zh_94的博客 8049

sendip修正版

本资源修正了sendip在发送IPv6下的udp和tcp时的校验和错误,发上来与大家共享

sendip简单使用

sendip是linux下一个比较好用的发包软件,简单记录一下它的用法 下载源码,编译安装后,可通过 man sendip,查看具体选项介绍,其中说明sendip支持的协议包括:ipv4 ipv6 icmp tcp udp bgp rip ntp。下面发送几个简单的报文: 1、发送ICMPv4报文,-p icmp 将默认发送ICMP echo request报...

weixin_34378969的博客 447

发包工具SendIP

Linux或Unix环境下的发包工具SendIP~~~~~~

linux下的发包工具sendip

linux下的发包工具sendip linux下的发包工具sendip

sendip

sendip 1. 简介 在从事网络产品尤其是网络安全产品开发时,我们一直面临着一个问题,就是对产品的 TCP/IP 协议栈进行稳定性或安全性测试,确保开发产品在遇到各种不规则的错误的IP 包时 仍可正常稳定高效地工作,我们知道,在正常的网络环境中,很难产生错误的IP 包,也很 难产生我们想要的错误的IP 包,为此,要完成对产品的测试,我们必须自己来制造各种各 样错误的IP

jincm的专栏 1986

中科蓝讯Downloader配置实战:从软硬开关机到ANC降噪的完整指南

本文提供了中科蓝讯Downloader工具的详细配置实战指南。内容涵盖从基础的软硬开关机选择与配置,到核心的EQ音效调试、触摸按键与入耳检测优化,以及高阶的ANC降噪与电源管理设置。旨在帮助开发者快速掌握关键配置项,高效完成蓝牙耳机产品的功能调试与优化。

s4t5u6v7的博客 508

sendip linux发包工具

第一步:安装 sendip 工具 sudo apt-get update sudo apt-get install sendip man sendip //可以查看sendip的使用方法 第二步:使用 开启两台虚拟机,在其中一台执行sendip命令,在另一台抓包分析 sendip 命令格式: sendip 网络层 传输层 数据 domain sendip -v -p *** -is *** -id *** -p *** -f/-d ***

xiangminlu的博客 1886

南京邮电大学电工电子实验(二)复习一

本文给电工电子实验(二)的复习进行一些知识点的提醒

YOUXISUN的博客 2957

ue4 classuobject没有成员beginplay_【教程】UE4 C++实现简单的AI及遇到的坑

后续文章更新移步→微信公众号“虚幻社区”(mantra-xhsq),您的支持是我创作的动力。我们这篇文章的宗旨是用代码实现简单的AI,有多简单,只是搭建一个具有PawnSensing组件和回调的AI。重点也不是做一个AI,而是了解一下C++代码如何搭建最基本的AI(关于蓝图如何创建请自行百度)。如果英语还不错的话,可以移步 参考链接,链接中的内容除了创建基本的PawnSensing组件还有关于行为...

weixin_39929918的博客 1126

Mapstruct使用笔记

Mapstruct 可以用来处理java实体间的转换,比如DTO转DO,DO转DTO。 Pom依赖如下 <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct</artifactId> <version>1.2.0...

G19931112的博客 240

FPGA纯Verilog实现I²C主机控制器与EEPROM读写

I²C是一种广泛应用的同步串行总线协议,用于连接微控制器与EEPROM、传感器等低速外设。其核心原理包括开漏结构、主从通信机制、START/STOP时序及ACK/NACK应答流程。技术价值在于硬件资源占用少、布线简洁、支持多从机扩展,特别适合FPGA嵌入式系统中轻量级外设控制。典型应用场景涵盖工业数据存储、配置参数持久化及实时传感器接口。本文基于Xilinx Spartan-6 FPGA,采用纯Verilog HDL实现参数化I²C主机控制器与AT24C02 EEPROM读写验证,深入解析状态机设计、SDA

weixin_33557333的博客 119

网络:网络层

网络层:IP 位于数据链路层之上的是网络层,它关注的是如何将包从源主机发送到目标主机。这一层执行了很多任务,比如: 将数据分解成足够小的的片段以便数据链路层进行传输(有必要的话) 在因特网上传输数据 为传输层提供服务 在TCP/IP协议族中,网络层的主要协议是IP。IP分为两种:IPv4和IPv6。这两个版本之间最显著的差别在于IPv4使用32位地址来标识子网和主机,而IPv6使用了128为的地址,能为主机提供更大的地址范围。IPv4和IPv6都支持高层的UDP和TCP传输协议。 下图给出了一个裸soc

OceanStar的博客 552

ASPICE(Automotive SPICE)流程落地,研发管理工具自研,如何从量化数据体现研发效率提升的

摘要: ASPICE流程显著提升研发效率,主要体现在质量、成本和时间三个维度。关键量化指标包括:缺陷率降低30%-60%,维护工作量减少28%,研发周期缩短10%-20%,需求变更率降低58%,代码评审效率提升300%。初期开发成本虽增加9%,但长期回报率高。核心方法包括缺陷预防前移、需求精准管理和流程标准化与自动化。建立量化度量体系需覆盖缺陷密度、需求稳定性、进度偏差等指标,并依托工具链支持数据收集。实施ASPICE是短期投入换取长期质量提升和成本优化的高效投资。

汽车软件开发 181

华为OD机考双机位C卷 - 相对开音节 (Java & Python & JS & GO & C++ & C)

华为OD机考双机位C卷 - 相对开音节 , 提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 742

WIFI下零流量传文件(二)

凡事得要一步一步来,之前写了一个零流量传文字的,今天无聊完善了一下,现在可以传照片了。。其实添加个资源管理器现在理论上可以传所有文件了。 备注:REC是WIFI热点发送者 package com.example.reciver; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.

湛江下暴雨 1251

算法真的是个很有用的东西,通过python或者golang实现对N张图片的自动排版,每张图片的长和宽都不一样,有的是横图,有的是竖图,最终需要生成一张完整的矩形图片

算法真的是个很有用的东西,通过python或者golang实现对N张图片的自动排版,每张图片的长和宽都不一样,有的是横图,有的是竖图,最终需要生成一张完整的矩形图片。

代码讲故事 501

Sendip使用说明

在从事网络产品尤其是网络安全产品开发时,我们一直面临着一个问题,就是对产品的TCP/IP 协议栈进行稳定性或安全性测试,确保开发产品在遇到各种不规则的错误的IP 包时仍可正常稳定高效地工作,我们知道,在正常的网络环境中,很难产生错误的IP 包,也很难产生我们想要的错误的IP 包,为此,要完成对产品的测试,我们必须自己来制造各种各样错误的IP 包,本篇的目的就是介绍如何利用各种发包工具来制造自己

stephen_yin的专栏 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

sendip命令详解--续

根据《TCP/IP详解》卷2第9章,并没有这个选项字段,这里应该是软件自己为了控制选项字段的长度而设计的。这里先说明一些选项字段的基础知识: 选项字段必须是4字节的整数倍,原因很简单,因为IP header length是以4字节为一个单位元; IP选项字段可能包含0个或多个单独选项,选项有两种类型,单字节和多字节,如下图: sendip_图1(这里贴不上来,想办法中) 所有选项1都以字节类型(

nuoline的专栏 1503

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

linux网络调试发包抓包工具

目录 1、发包工具 1.1 sendip 1.2 tcpreply 2、抓包工具 2.1、tcpdump 2.2 tcpflow 3、速率测试工具 4、加密工具 4.1 tcpcryptd 5.linux网络编程 5.1、tcp 5.2、udp 1、发包工具 1.1 sendip Sendip是一个linux平台的命令行发数据包工具,目前(2018年2月)支持的...

何高志 3万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

常用网络工具sendip参数说明

IP包构造工具 sendip -v -d r64 -p ipv4 -iv 4 -ih 5 -il 128 -is 1.1.1.4 -id 1.1.1.1 -p tcp -ts 9999 -td 8888 -tt 8 1.1.1.1

江湖 - 郎中 - 路 1005

Linux收发包工具

【代码】Linux收发包工具。

AcTarjan的博客 567

linux sendip

`sendip` 是一个用于发送 IP 数据包的命令行工具。它通常用于网络测试和调试,尤其在系统管理员、网络工程师和软件开发人员中非常常见。其功能主要是用于生成和发送自定义的 IP 数据包,可以精确控制数据包的各个字段,用于验证网络设备的响应或检查防火墙的配置。该工具在进行网络测试和调试时非常有用,特别是在低层次协议调试时。

weixin_35723192的博客 1052

sendip命令详解

在从事网络产品尤其是网络安全产品开发时,我们一直面临着一个问题,就是对产品的 UDP报文的构造 先看man文件中显示支持可以构造的UDP报文字段有哪些,然后在参数后直接说明该字段的含义。构造报文首先要求对报文的各个字段非常熟悉,所以先看一下UDP首部的图表: UDP首部: 0 15 16 31                                                   

nuoline的专栏 2910
上一篇: __asm__ __volatile__内嵌汇编用法简述
下一篇: GPT分区在PC机上安装linux不能引导的解决方法
evenness
博客等级 码龄15年 99粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值