ThousandEyes の Default User-Agent Strings によると HTTP Server Test の場合、User-Agent は User-Agent: curl/7.51.0-DEV
だと記載されています。
ですが、実際にパケットをキャプチャすると下記になっています。
User-Agent: curl
になっている (公式ドキュメントと異なる)
X-ThousandEyes-Agent: yes
も付与される
tshark で実際にキャプチャした出力例は以下の通りです。 User-Agent: curl
及び X-ThousandEyes-Agent: yes
になっていることが分かります。
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111 # tshark -i eth0 -n -V -Y "http.request"
Running as user "root" and group "root" . This could be dangerous.
Capturing on 'eth0'
Frame 27 : 292 bytes on wire ( 2336 bits) , 292 bytes captured ( 2336 bits) on interface 0
Interface id: 0
Encapsulation type: Ethernet ( 1 )
Arrival Time: Sep 2 , 2022 05 :45:51.296784160 UTC
[ Time shift for this packet: 0 .000000000 seconds]
Epoch Time: 1662097551 .296784160 seconds
[ Time delta from previous captured frame: 0 .000056665 seconds]
[ Time delta from previous displayed frame: 0 .000000000 seconds]
[ Time since reference or first frame: 98 .193993688 seconds]
Frame Number: 27
Frame Length: 292 bytes ( 2336 bits)
Capture Length: 292 bytes ( 2336 bits)
[ Frame is marked: False]
[ Frame is ignored: False]
[ Protocols in frame: eth:ip:tcp:http]
Ethernet II, Src: 06 :c4:7f:0c:9d:3a ( 06 :c4:7f:0c:9d:3a) , Dst: 06 :2d:db:37:c8:a3 ( 06 :2d:db:37:c8:a3)
Destination: 06 :2d:db:37:c8:a3 ( 06 :2d:db:37:c8:a3)
Address: 06 :2d:db:37:c8:a3 ( 06 :2d:db:37:c8:a3)
.... ..1. .... .... .... .... = LG bit: Locally administered address ( this is NOT the factory default)
.... ...0 .... .... .... .... = IG bit: Individual address ( unicast)
Source: 06 :c4:7f:0c:9d:3a ( 06 :c4:7f:0c:9d:3a)
Address: 06 :c4:7f:0c:9d:3a ( 06 :c4:7f:0c:9d:3a)
.... ..1. .... .... .... .... = LG bit: Locally administered address ( this is NOT the factory default)
.... ...0 .... .... .... .... = IG bit: Individual address ( unicast)
Type: IP ( 0x0800)
Internet Protocol Version 4 , Src: 23 .248.164.42 ( 23 .248.164.42) , Dst: 192 .168.224.16 ( 192 .168.224.16)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 ( DSCP 0x00: Default; ECN: 0x00: Not-ECT ( Not ECN-Capable Transport))
0000 00 .. = Differentiated Services Codepoint: Default ( 0x00)
.... ..00 = Explicit Congestion Notification: Not-ECT ( Not ECN-Capable Transport) ( 0x00)
Total Length: 278
Identification: 0x8b7e ( 35710 )
Flags: 0x02 ( Don't Fragment)
0... .... = Reserved bit: Not set
.1.. .... = Don' t fragment: Set
..0. .... = More fragments: Not set
Fragment offset: 0
Time to live: 42
Protocol: TCP ( 6 )
Header checksum: 0x6788 [ validation disabled]
[ Good: False]
[ Bad: False]
Source: 23 .248.164.42 ( 23 .248.164.42)
Destination: 192 .168.224.16 ( 192 .168.224.16)
Transmission Control Protocol, Src Port: 53264 ( 53264 ) , Dst Port: 80 ( 80 ) , Seq: 1 , Ack: 1 , Len: 226
Source port: 53264 ( 53264 )
Destination port: 80 ( 80 )
[ Stream index: 0 ]
Sequence number: 1 ( relative sequence number)
[ Next sequence number: 227 ( relative sequence number)]
Acknowledgment number: 1 ( relative ack number)
Header length: 32 bytes
Flags: 0x018 ( PSH, ACK)
000 . .... .... = Reserved: Not set
...0 .... .... = Nonce: Not set
.... 0 ... .... = Congestion Window Reduced ( CWR) : Not set
.... .0.. .... = ECN-Echo: Not set
.... ..0. .... = Urgent: Not set
.... ...1 .... = Acknowledgment: Set
.... .... 1 ... = Push: Set
.... .... .0.. = Reset: Not set
.... .... ..0. = Syn: Not set
.... .... ...0 = Fin: Not set
Window size value: 502
[ Calculated window size: 64256 ]
[ Window size scaling factor: 128 ]
Checksum: 0xb38d [ validation disabled]
[ Good Checksum: False]
[ Bad Checksum: False]
Options: ( 12 bytes) , No-Operation ( NOP) , No-Operation ( NOP) , Timestamps
No-Operation ( NOP)
Type: 1
0 ... .... = Copy on fragmentation: No
.00. .... = Class: Control ( 0 )
...0 0001 = Number: No-Operation ( NOP) ( 1 )
No-Operation ( NOP)
Type: 1
0 ... .... = Copy on fragmentation: No
.00. .... = Class: Control ( 0 )
...0 0001 = Number: No-Operation ( NOP) ( 1 )
Timestamps: TSval 1657494759 , TSecr 3271439425
Kind: Timestamp ( 8 )
Length: 10
Timestamp value: 1657494759
Timestamp echo reply: 3271439425
[ SEQ/ACK analysis]
[ Bytes in flight: 226 ]
Hypertext Transfer Protocol
GET / HTTP/1.1\r\n
[ Expert Info ( Chat/Sequence) : GET / HTTP/1.1\r\n ]
[ Message: GET / HTTP/1.1\r\n ]
[ Severity level: Chat]
[ Group: Sequence]
Request Method: GET
Request URI: /
Request Version: HTTP/1.1
Host: www.example.com\r\n
User-Agent: curl\r\n
Accept: */*\r\n
Accept-Encoding: deflate, gzip\r\n
Connection: Upgrade, HTTP2-Settings\r\n
Upgrade: h2c\r\n
HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA\r\n
X-ThousandEyes-Agent: yes\r\n
\r\n
[ Full request URI: http://www.example.com/]
[ HTTP request 1 /1]
User-Agent
をカスタマイズする場合は Custom User-Agent Strings in a Web Test の手順に従います。 今回は以下のように CUSTOM-USER-AGENT
と設定しました。
これをキャプチャした結果は以下の通りです。
User-Agent: CUSTOM-USER-AGENT
に変更されている
X-ThousandEyes-Agent: yes
も付与される
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111 # tshark -i eth0 -n -V -Y "http.request"
Running as user "root" and group "root" . This could be dangerous.
Capturing on 'eth0'
Frame 38 : 305 bytes on wire ( 2440 bits) , 305 bytes captured ( 2440 bits) on interface 0
Interface id: 0
Encapsulation type: Ethernet ( 1 )
Arrival Time: Sep 2 , 2022 13 :35:02.650728079 UTC
[ Time shift for this packet: 0 .000000000 seconds]
Epoch Time: 1662125702 .650728079 seconds
[ Time delta from previous captured frame: 0 .000039499 seconds]
[ Time delta from previous displayed frame: 0 .000000000 seconds]
[ Time since reference or first frame: 150 .788132120 seconds]
Frame Number: 38
Frame Length: 305 bytes ( 2440 bits)
Capture Length: 305 bytes ( 2440 bits)
[ Frame is marked: False]
[ Frame is ignored: False]
[ Protocols in frame: eth:ip:tcp:http]
Ethernet II, Src: 06 :c4:7f:0c:9d:3a ( 06 :c4:7f:0c:9d:3a) , Dst: 06 :2d:db:37:c8:a3 ( 06 :2d:db:37:c8:a3)
Destination: 06 :2d:db:37:c8:a3 ( 06 :2d:db:37:c8:a3)
Address: 06 :2d:db:37:c8:a3 ( 06 :2d:db:37:c8:a3)
.... ..1. .... .... .... .... = LG bit: Locally administered address ( this is NOT the factory default)
.... ...0 .... .... .... .... = IG bit: Individual address ( unicast)
Source: 06 :c4:7f:0c:9d:3a ( 06 :c4:7f:0c:9d:3a)
Address: 06 :c4:7f:0c:9d:3a ( 06 :c4:7f:0c:9d:3a)
.... ..1. .... .... .... .... = LG bit: Locally administered address ( this is NOT the factory default)
.... ...0 .... .... .... .... = IG bit: Individual address ( unicast)
Type: IP ( 0x0800)
Internet Protocol Version 4 , Src: 23 .248.164.42 ( 23 .248.164.42) , Dst: 192 .168.224.16 ( 192 .168.224.16)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 ( DSCP 0x00: Default; ECN: 0x00: Not-ECT ( Not ECN-Capable Transport))
0000 00 .. = Differentiated Services Codepoint: Default ( 0x00)
.... ..00 = Explicit Congestion Notification: Not-ECT ( Not ECN-Capable Transport) ( 0x00)
Total Length: 291
Identification: 0xc6aa ( 50858 )
Flags: 0x02 ( Don't Fragment)
0... .... = Reserved bit: Not set
.1.. .... = Don' t fragment: Set
..0. .... = More fragments: Not set
Fragment offset: 0
Time to live: 42
Protocol: TCP ( 6 )
Header checksum: 0x2c4f [ validation disabled]
[ Good: False]
[ Bad: False]
Source: 23 .248.164.42 ( 23 .248.164.42)
Destination: 192 .168.224.16 ( 192 .168.224.16)
Transmission Control Protocol, Src Port: 35316 ( 35316 ) , Dst Port: 80 ( 80 ) , Seq: 1 , Ack: 1 , Len: 239
Source port: 35316 ( 35316 )
Destination port: 80 ( 80 )
[ Stream index: 0 ]
Sequence number: 1 ( relative sequence number)
[ Next sequence number: 240 ( relative sequence number)]
Acknowledgment number: 1 ( relative ack number)
Header length: 32 bytes
Flags: 0x018 ( PSH, ACK)
000 . .... .... = Reserved: Not set
...0 .... .... = Nonce: Not set
.... 0 ... .... = Congestion Window Reduced ( CWR) : Not set
.... .0.. .... = ECN-Echo: Not set
.... ..0. .... = Urgent: Not set
.... ...1 .... = Acknowledgment: Set
.... .... 1 ... = Push: Set
.... .... .0.. = Reset: Not set
.... .... ..0. = Syn: Not set
.... .... ...0 = Fin: Not set
Window size value: 502
[ Calculated window size: 64256 ]
[ Window size scaling factor: 128 ]
Checksum: 0xb668 [ validation disabled]
[ Good Checksum: False]
[ Bad Checksum: False]
Options: ( 12 bytes) , No-Operation ( NOP) , No-Operation ( NOP) , Timestamps
No-Operation ( NOP)
Type: 1
0 ... .... = Copy on fragmentation: No
.00. .... = Class: Control ( 0 )
...0 0001 = Number: No-Operation ( NOP) ( 1 )
No-Operation ( NOP)
Type: 1
0 ... .... = Copy on fragmentation: No
.00. .... = Class: Control ( 0 )
...0 0001 = Number: No-Operation ( NOP) ( 1 )
Timestamps: TSval 1685646112 , TSecr 3299590778
Kind: Timestamp ( 8 )
Length: 10
Timestamp value: 1685646112
Timestamp echo reply: 3299590778
[ SEQ/ACK analysis]
[ Bytes in flight: 239 ]
Hypertext Transfer Protocol
GET / HTTP/1.1\r\n
[ Expert Info ( Chat/Sequence) : GET / HTTP/1.1\r\n ]
[ Message: GET / HTTP/1.1\r\n ]
[ Severity level: Chat]
[ Group: Sequence]
Request Method: GET
Request URI: /
Request Version: HTTP/1.1
Host: www.example.com\r\n
User-Agent: CUSTOM-USER-AGENT\r\n
Accept: */*\r\n
Accept-Encoding: deflate, gzip\r\n
Connection: Upgrade, HTTP2-Settings\r\n
Upgrade: h2c\r\n
HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA\r\n
X-ThousandEyes-Agent: yes\r\n
\r\n
[ Full request URI: http://www.example.com/]
[ HTTP request 1 /1]