I sent a Version message shown below:
F9BEB4D976657273696F6E0000000000560000003EA2EDFF7111010001000000000000003CE5725A00000000010000000000000000000000000000000000FFFF5B86CFD0208D010000000000000000000000000000000000FFFF________208D847C51678AA429DE000000000000
I received the following message:
F9BEB4D976657273696F6E0000000000680000002C00D4E37F1101000D00000000000000DCE0725A00000000010000000000000000000000000000000000FFFF________208D0D00000000000000000000000000000000000000000000000000E665131FDCB099B0122F5361746F7368693A302E31352E302E312FC7BC070001F9BEB4D976657261636B000000000000000000005DF6E0E2
The response received is in a TCP packet itself and from the packet, it seems like there is two Bitcoin protocol messages in a single TCP packet response.
Dissecting the above response, it is made of a VERSION command that is replied to me:
F9BEB4D976657273696F6E0000000000680000002C00D4E37F1101000D00000000000000DCE0725A00000000010000000000000000000000000000000000FFFF________208D0D00000000000000000000000000000000000000000000000000E665131FDCB099B0122F5361746F7368693A302E31352E302E312FC7BC070001
And also a VERACK response:
F9BEB4D976657261636B000000000000000000005DF6E0E2
Is it a typical behavious for Bitcoin protocol to bunch up as much messages into a single TCP packet before sending it out ?
Note: Both messages have IP address cleaned out via underscore marks.