Although the http.Transport structure allows you to modify the various low-level parameters of a network connection, you can write Go code that permits you to read the raw data of network packets.
There are two tricky points here. Firstly, network packets come in binary format, which requires you to look for specific kinds of network packets and not just any type of network packet. Put simply, when reading network packets, you should specify the protocol or protocols that you are going to support in your applications in advance. Secondly, in order to send a network packet, you will have to construct it on your own.
The next utility to be shown is called lowLevel.go, and it will be presented in three parts. Notice that lowLevel.go captures Internet Control Message Protocol (ICMP) packets, which use the IPv4 protocol and print their contents....