-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_frame_size.cpp
42 lines (37 loc) · 1.22 KB
/
test_frame_size.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <tins/tins.h>
#include <iostream>
#include <string>
using namespace std;
using namespace Tins;
void test_frame_size() {
PacketSender sender("lo");
unsigned int i = 0;
while (++i) {
vector<char> data (1000+i*100, 66);
TCP pkt = TCP() / RawPDU(string(data.begin(), data.end()));
EthernetII eth = EthernetII() / IP() / pkt;
cout << i << ". sending... " << eth.size() << " of data" << endl;
try {
sender.send(eth);
// sender.send(pkt);
} catch (socket_write_error) {
cout << "too long msg\n";
return;
}
}
}
void send_packet(string iface, string data) {
PacketSender sender(iface);
EthernetII pkt = EthernetII() / IP() / TCP() / RawPDU(data);
pkt.dst_addr(EthernetII::address_type("dc:a9:71:3f:a5:57"));
pkt.src_addr(EthernetII::address_type("6c:62:6d:34:14:11"));
IP ippkt = IP() / TCP() / RawPDU(data);
sender.send(pkt);
cout << sender.default_interface().name() << endl;
}
int main() {
vector<char> data (5000, 91);
test_frame_size();
// for (int i = 0; i < 100; i++) send_packet("enp3s0", string(data.begin(), data.end()) + "SIOCSARP: Network is unreachable");
return 0;
}