├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── cmd ├── README.md ├── application │ ├── dns │ │ ├── README.md │ │ ├── dns_client.go │ │ └── dns_server.go │ ├── http │ │ ├── httpclient.go │ │ └── httpserver.go │ └── websocket │ │ ├── websocketclient.go │ │ └── websocketserver.go ├── arp.md ├── http.md ├── link │ └── tap │ │ └── main.go ├── network │ ├── arp │ │ └── main.go │ └── ping │ │ └── main.go ├── port │ └── main.go ├── tcp.md ├── transport │ ├── tcp │ │ ├── client.go │ │ ├── client │ │ │ └── main.go │ │ ├── main.go │ │ └── server │ │ │ └── main.go │ └── udp │ │ ├── client │ │ └── main.go │ │ ├── net_client.go │ │ └── server │ │ └── main.go ├── udp.md └── websocket.md ├── config └── net.go ├── go.mod ├── go.sum ├── http-api.md ├── internal ├── endpoint │ └── endpoint.go └── socket │ └── socket.go ├── pkg ├── buffer │ ├── prependable.go │ ├── string.go │ ├── url.go │ ├── view.go │ └── view_test.go ├── checker │ └── checker.go ├── ilist │ └── list.go ├── logging │ └── log.go ├── rand │ └── rand.go ├── reexec │ ├── README.md │ ├── command_linux.go │ ├── command_unix.go │ ├── command_unsupported.go │ ├── command_windows.go │ └── reexec.go ├── seqnum │ └── seqnum.go ├── sleep │ ├── commit_amd64.s │ ├── commit_asm.go │ ├── commit_noasm.go │ ├── empty.s │ ├── sleep_test.go │ └── sleep_unsafe.go ├── syscall │ ├── c_net │ │ ├── net.go │ │ ├── net_test.go │ │ ├── network.c │ │ ├── network.h │ │ ├── nl.c │ │ └── nl.h │ └── pivot_root.go ├── tmutex │ ├── tmutex.go │ └── tmutex_test.go └── waiter │ ├── waiter.go │ └── waiter_test.go ├── protocol ├── application │ ├── dns │ │ ├── endopoint.go │ │ ├── query.go │ │ └── rsp.go │ ├── http │ │ ├── client.go │ │ ├── connection.go │ │ ├── define.go │ │ ├── define_status.go │ │ ├── header.go │ │ ├── interface.go │ │ ├── pkg.go │ │ ├── request.go │ │ ├── request_client.go │ │ ├── response.go │ │ ├── server.go │ │ ├── server_patttern.go │ │ └── server_socket.go │ └── websocket │ │ ├── client.go │ │ ├── conn.go │ │ ├── upgrade.go │ │ └── utils.go ├── header │ ├── arp.go │ ├── checksum.go │ ├── dns.go │ ├── eth.go │ ├── icmpv4.go │ ├── icmpv6.go │ ├── interfaces.go │ ├── ipv4.go │ ├── ipv6.go │ ├── ipv6_fragment.go │ ├── tcp.go │ ├── tcp_test.go │ └── udp.go ├── link │ ├── channel │ │ └── channel.go │ ├── fdbased │ │ └── endpoint.go │ ├── loopback │ │ └── loopback.go │ ├── rawfile │ │ ├── blockingpoll_unsafe.go │ │ ├── errors.go │ │ └── rawfile_unsafe.go │ ├── sniffer │ │ ├── pcap.go │ │ └── sniffer.go │ └── tuntap │ │ └── tuntap.go ├── network │ ├── arp │ │ ├── arp.go │ │ └── arp_test.go │ ├── fragmentation │ │ ├── frag_heap.go │ │ ├── frag_heap_test.go │ │ ├── fragmentation.go │ │ ├── fragmentation_test.go │ │ ├── reassembler.go │ │ ├── reassembler_list.go │ │ └── reassembler_test.go │ ├── hash │ │ └── hash.go │ ├── ip_test.go │ ├── ipv4 │ │ ├── icmp.go │ │ ├── ip.go │ │ ├── ipv4.go │ │ └── ipv4_test.go │ └── ipv6 │ │ ├── icmp.go │ │ ├── icmp_test.go │ │ └── ipv6.go ├── ports │ ├── ports.go │ └── ports_test.go ├── tcpip.go ├── time.s ├── time_unsafe.go └── transport │ ├── ping │ ├── endpoint.go │ ├── ping_packet_list.go │ └── protocol.go │ ├── tcp │ ├── accept.go │ ├── client │ │ ├── client.go │ │ ├── get.go │ │ ├── read.go │ │ └── write.go │ ├── connect.go │ ├── cubic.go │ ├── dual_stack_test.go │ ├── endpoint.go │ ├── forwarder.go │ ├── protocol.go │ ├── rcv.go │ ├── reno.go │ ├── sack.go │ ├── segment.go │ ├── segment_heap.go │ ├── segment_queue.go │ ├── snd.go │ ├── tcp_sack_test.go │ ├── tcp_segment_list.go │ ├── tcp_test.go │ ├── tcp_timestamp_test.go │ ├── testing │ │ └── context │ │ │ └── context.go │ └── timer.go │ ├── tcpconntrack │ ├── tcp_conntrack.go │ └── tcp_conntrack_test.go │ └── udp │ ├── client │ ├── client.go │ ├── get.go │ ├── read.go │ └── write.go │ ├── endpoint.go │ ├── protocol.go │ ├── udp_packet_list.go │ └── udp_test.go ├── resource ├── arp.png ├── dns_client.png ├── dns_server.png ├── e1.png ├── e2.png ├── http.png ├── websocket.png └── wm.png ├── stack ├── linkaddrcache.go ├── linkaddrcache_test.go ├── nic.go ├── registration.go ├── route.go ├── stack.go ├── stack_test.go ├── stackinit │ └── init.go ├── transport_demuxer.go └── transport_test.go ├── tcp-api.md ├── tool ├── Makefile ├── README.md ├── down.go └── up.go ├── udp-api.md └── websocket-api.md /.gitignore: -------------------------------------------------------------------------------- 1 | .idea -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/README.md -------------------------------------------------------------------------------- /cmd/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/README.md -------------------------------------------------------------------------------- /cmd/application/dns/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/application/dns/README.md -------------------------------------------------------------------------------- /cmd/application/dns/dns_client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/application/dns/dns_client.go -------------------------------------------------------------------------------- /cmd/application/dns/dns_server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/application/dns/dns_server.go -------------------------------------------------------------------------------- /cmd/application/http/httpclient.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/application/http/httpclient.go -------------------------------------------------------------------------------- /cmd/application/http/httpserver.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/application/http/httpserver.go -------------------------------------------------------------------------------- /cmd/application/websocket/websocketclient.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/application/websocket/websocketclient.go -------------------------------------------------------------------------------- /cmd/application/websocket/websocketserver.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/application/websocket/websocketserver.go -------------------------------------------------------------------------------- /cmd/arp.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/arp.md -------------------------------------------------------------------------------- /cmd/http.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/http.md -------------------------------------------------------------------------------- /cmd/link/tap/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/link/tap/main.go -------------------------------------------------------------------------------- /cmd/network/arp/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/network/arp/main.go -------------------------------------------------------------------------------- /cmd/network/ping/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/network/ping/main.go -------------------------------------------------------------------------------- /cmd/port/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/port/main.go -------------------------------------------------------------------------------- /cmd/tcp.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/tcp.md -------------------------------------------------------------------------------- /cmd/transport/tcp/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/transport/tcp/client.go -------------------------------------------------------------------------------- /cmd/transport/tcp/client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/transport/tcp/client/main.go -------------------------------------------------------------------------------- /cmd/transport/tcp/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/transport/tcp/main.go -------------------------------------------------------------------------------- /cmd/transport/tcp/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/transport/tcp/server/main.go -------------------------------------------------------------------------------- /cmd/transport/udp/client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/transport/udp/client/main.go -------------------------------------------------------------------------------- /cmd/transport/udp/net_client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/transport/udp/net_client.go -------------------------------------------------------------------------------- /cmd/transport/udp/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/transport/udp/server/main.go -------------------------------------------------------------------------------- /cmd/udp.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/udp.md -------------------------------------------------------------------------------- /cmd/websocket.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/cmd/websocket.md -------------------------------------------------------------------------------- /config/net.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/config/net.go -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/brewlin/net-protocol 2 | 3 | go 1.12 4 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /http-api.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/http-api.md -------------------------------------------------------------------------------- /internal/endpoint/endpoint.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/internal/endpoint/endpoint.go -------------------------------------------------------------------------------- /internal/socket/socket.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/internal/socket/socket.go -------------------------------------------------------------------------------- /pkg/buffer/prependable.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/buffer/prependable.go -------------------------------------------------------------------------------- /pkg/buffer/string.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/buffer/string.go -------------------------------------------------------------------------------- /pkg/buffer/url.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/buffer/url.go -------------------------------------------------------------------------------- /pkg/buffer/view.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/buffer/view.go -------------------------------------------------------------------------------- /pkg/buffer/view_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/buffer/view_test.go -------------------------------------------------------------------------------- /pkg/checker/checker.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/checker/checker.go -------------------------------------------------------------------------------- /pkg/ilist/list.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/ilist/list.go -------------------------------------------------------------------------------- /pkg/logging/log.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/logging/log.go -------------------------------------------------------------------------------- /pkg/rand/rand.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/rand/rand.go -------------------------------------------------------------------------------- /pkg/reexec/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/reexec/README.md -------------------------------------------------------------------------------- /pkg/reexec/command_linux.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/reexec/command_linux.go -------------------------------------------------------------------------------- /pkg/reexec/command_unix.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/reexec/command_unix.go -------------------------------------------------------------------------------- /pkg/reexec/command_unsupported.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/reexec/command_unsupported.go -------------------------------------------------------------------------------- /pkg/reexec/command_windows.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/reexec/command_windows.go -------------------------------------------------------------------------------- /pkg/reexec/reexec.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/reexec/reexec.go -------------------------------------------------------------------------------- /pkg/seqnum/seqnum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/seqnum/seqnum.go -------------------------------------------------------------------------------- /pkg/sleep/commit_amd64.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/sleep/commit_amd64.s -------------------------------------------------------------------------------- /pkg/sleep/commit_asm.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/sleep/commit_asm.go -------------------------------------------------------------------------------- /pkg/sleep/commit_noasm.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/sleep/commit_noasm.go -------------------------------------------------------------------------------- /pkg/sleep/empty.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/sleep/empty.s -------------------------------------------------------------------------------- /pkg/sleep/sleep_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/sleep/sleep_test.go -------------------------------------------------------------------------------- /pkg/sleep/sleep_unsafe.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/sleep/sleep_unsafe.go -------------------------------------------------------------------------------- /pkg/syscall/c_net/net.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/syscall/c_net/net.go -------------------------------------------------------------------------------- /pkg/syscall/c_net/net_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/syscall/c_net/net_test.go -------------------------------------------------------------------------------- /pkg/syscall/c_net/network.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/syscall/c_net/network.c -------------------------------------------------------------------------------- /pkg/syscall/c_net/network.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/syscall/c_net/network.h -------------------------------------------------------------------------------- /pkg/syscall/c_net/nl.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/syscall/c_net/nl.c -------------------------------------------------------------------------------- /pkg/syscall/c_net/nl.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/syscall/c_net/nl.h -------------------------------------------------------------------------------- /pkg/syscall/pivot_root.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/syscall/pivot_root.go -------------------------------------------------------------------------------- /pkg/tmutex/tmutex.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/tmutex/tmutex.go -------------------------------------------------------------------------------- /pkg/tmutex/tmutex_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/tmutex/tmutex_test.go -------------------------------------------------------------------------------- /pkg/waiter/waiter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/waiter/waiter.go -------------------------------------------------------------------------------- /pkg/waiter/waiter_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/pkg/waiter/waiter_test.go -------------------------------------------------------------------------------- /protocol/application/dns/endopoint.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/dns/endopoint.go -------------------------------------------------------------------------------- /protocol/application/dns/query.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/dns/query.go -------------------------------------------------------------------------------- /protocol/application/dns/rsp.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/dns/rsp.go -------------------------------------------------------------------------------- /protocol/application/http/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/http/client.go -------------------------------------------------------------------------------- /protocol/application/http/connection.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/http/connection.go -------------------------------------------------------------------------------- /protocol/application/http/define.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/http/define.go -------------------------------------------------------------------------------- /protocol/application/http/define_status.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/http/define_status.go -------------------------------------------------------------------------------- /protocol/application/http/header.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/http/header.go -------------------------------------------------------------------------------- /protocol/application/http/interface.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/http/interface.go -------------------------------------------------------------------------------- /protocol/application/http/pkg.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/http/pkg.go -------------------------------------------------------------------------------- /protocol/application/http/request.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/http/request.go -------------------------------------------------------------------------------- /protocol/application/http/request_client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/http/request_client.go -------------------------------------------------------------------------------- /protocol/application/http/response.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/http/response.go -------------------------------------------------------------------------------- /protocol/application/http/server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/http/server.go -------------------------------------------------------------------------------- /protocol/application/http/server_patttern.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/http/server_patttern.go -------------------------------------------------------------------------------- /protocol/application/http/server_socket.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/http/server_socket.go -------------------------------------------------------------------------------- /protocol/application/websocket/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/websocket/client.go -------------------------------------------------------------------------------- /protocol/application/websocket/conn.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/websocket/conn.go -------------------------------------------------------------------------------- /protocol/application/websocket/upgrade.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/websocket/upgrade.go -------------------------------------------------------------------------------- /protocol/application/websocket/utils.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/application/websocket/utils.go -------------------------------------------------------------------------------- /protocol/header/arp.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/header/arp.go -------------------------------------------------------------------------------- /protocol/header/checksum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/header/checksum.go -------------------------------------------------------------------------------- /protocol/header/dns.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/header/dns.go -------------------------------------------------------------------------------- /protocol/header/eth.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/header/eth.go -------------------------------------------------------------------------------- /protocol/header/icmpv4.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/header/icmpv4.go -------------------------------------------------------------------------------- /protocol/header/icmpv6.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/header/icmpv6.go -------------------------------------------------------------------------------- /protocol/header/interfaces.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/header/interfaces.go -------------------------------------------------------------------------------- /protocol/header/ipv4.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/header/ipv4.go -------------------------------------------------------------------------------- /protocol/header/ipv6.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/header/ipv6.go -------------------------------------------------------------------------------- /protocol/header/ipv6_fragment.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/header/ipv6_fragment.go -------------------------------------------------------------------------------- /protocol/header/tcp.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/header/tcp.go -------------------------------------------------------------------------------- /protocol/header/tcp_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/header/tcp_test.go -------------------------------------------------------------------------------- /protocol/header/udp.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/header/udp.go -------------------------------------------------------------------------------- /protocol/link/channel/channel.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/link/channel/channel.go -------------------------------------------------------------------------------- /protocol/link/fdbased/endpoint.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/link/fdbased/endpoint.go -------------------------------------------------------------------------------- /protocol/link/loopback/loopback.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/link/loopback/loopback.go -------------------------------------------------------------------------------- /protocol/link/rawfile/blockingpoll_unsafe.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/link/rawfile/blockingpoll_unsafe.go -------------------------------------------------------------------------------- /protocol/link/rawfile/errors.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/link/rawfile/errors.go -------------------------------------------------------------------------------- /protocol/link/rawfile/rawfile_unsafe.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/link/rawfile/rawfile_unsafe.go -------------------------------------------------------------------------------- /protocol/link/sniffer/pcap.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/link/sniffer/pcap.go -------------------------------------------------------------------------------- /protocol/link/sniffer/sniffer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/link/sniffer/sniffer.go -------------------------------------------------------------------------------- /protocol/link/tuntap/tuntap.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/link/tuntap/tuntap.go -------------------------------------------------------------------------------- /protocol/network/arp/arp.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/arp/arp.go -------------------------------------------------------------------------------- /protocol/network/arp/arp_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/arp/arp_test.go -------------------------------------------------------------------------------- /protocol/network/fragmentation/frag_heap.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/fragmentation/frag_heap.go -------------------------------------------------------------------------------- /protocol/network/fragmentation/frag_heap_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/fragmentation/frag_heap_test.go -------------------------------------------------------------------------------- /protocol/network/fragmentation/fragmentation.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/fragmentation/fragmentation.go -------------------------------------------------------------------------------- /protocol/network/fragmentation/fragmentation_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/fragmentation/fragmentation_test.go -------------------------------------------------------------------------------- /protocol/network/fragmentation/reassembler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/fragmentation/reassembler.go -------------------------------------------------------------------------------- /protocol/network/fragmentation/reassembler_list.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/fragmentation/reassembler_list.go -------------------------------------------------------------------------------- /protocol/network/fragmentation/reassembler_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/fragmentation/reassembler_test.go -------------------------------------------------------------------------------- /protocol/network/hash/hash.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/hash/hash.go -------------------------------------------------------------------------------- /protocol/network/ip_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/ip_test.go -------------------------------------------------------------------------------- /protocol/network/ipv4/icmp.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/ipv4/icmp.go -------------------------------------------------------------------------------- /protocol/network/ipv4/ip.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/ipv4/ip.go -------------------------------------------------------------------------------- /protocol/network/ipv4/ipv4.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/ipv4/ipv4.go -------------------------------------------------------------------------------- /protocol/network/ipv4/ipv4_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/ipv4/ipv4_test.go -------------------------------------------------------------------------------- /protocol/network/ipv6/icmp.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/ipv6/icmp.go -------------------------------------------------------------------------------- /protocol/network/ipv6/icmp_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/ipv6/icmp_test.go -------------------------------------------------------------------------------- /protocol/network/ipv6/ipv6.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/network/ipv6/ipv6.go -------------------------------------------------------------------------------- /protocol/ports/ports.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/ports/ports.go -------------------------------------------------------------------------------- /protocol/ports/ports_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/ports/ports_test.go -------------------------------------------------------------------------------- /protocol/tcpip.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/tcpip.go -------------------------------------------------------------------------------- /protocol/time.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/time.s -------------------------------------------------------------------------------- /protocol/time_unsafe.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/time_unsafe.go -------------------------------------------------------------------------------- /protocol/transport/ping/endpoint.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/ping/endpoint.go -------------------------------------------------------------------------------- /protocol/transport/ping/ping_packet_list.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/ping/ping_packet_list.go -------------------------------------------------------------------------------- /protocol/transport/ping/protocol.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/ping/protocol.go -------------------------------------------------------------------------------- /protocol/transport/tcp/accept.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/accept.go -------------------------------------------------------------------------------- /protocol/transport/tcp/client/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/client/client.go -------------------------------------------------------------------------------- /protocol/transport/tcp/client/get.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/client/get.go -------------------------------------------------------------------------------- /protocol/transport/tcp/client/read.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/client/read.go -------------------------------------------------------------------------------- /protocol/transport/tcp/client/write.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/client/write.go -------------------------------------------------------------------------------- /protocol/transport/tcp/connect.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/connect.go -------------------------------------------------------------------------------- /protocol/transport/tcp/cubic.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/cubic.go -------------------------------------------------------------------------------- /protocol/transport/tcp/dual_stack_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/dual_stack_test.go -------------------------------------------------------------------------------- /protocol/transport/tcp/endpoint.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/endpoint.go -------------------------------------------------------------------------------- /protocol/transport/tcp/forwarder.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/forwarder.go -------------------------------------------------------------------------------- /protocol/transport/tcp/protocol.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/protocol.go -------------------------------------------------------------------------------- /protocol/transport/tcp/rcv.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/rcv.go -------------------------------------------------------------------------------- /protocol/transport/tcp/reno.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/reno.go -------------------------------------------------------------------------------- /protocol/transport/tcp/sack.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/sack.go -------------------------------------------------------------------------------- /protocol/transport/tcp/segment.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/segment.go -------------------------------------------------------------------------------- /protocol/transport/tcp/segment_heap.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/segment_heap.go -------------------------------------------------------------------------------- /protocol/transport/tcp/segment_queue.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/segment_queue.go -------------------------------------------------------------------------------- /protocol/transport/tcp/snd.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/snd.go -------------------------------------------------------------------------------- /protocol/transport/tcp/tcp_sack_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/tcp_sack_test.go -------------------------------------------------------------------------------- /protocol/transport/tcp/tcp_segment_list.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/tcp_segment_list.go -------------------------------------------------------------------------------- /protocol/transport/tcp/tcp_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/tcp_test.go -------------------------------------------------------------------------------- /protocol/transport/tcp/tcp_timestamp_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/tcp_timestamp_test.go -------------------------------------------------------------------------------- /protocol/transport/tcp/testing/context/context.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/testing/context/context.go -------------------------------------------------------------------------------- /protocol/transport/tcp/timer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcp/timer.go -------------------------------------------------------------------------------- /protocol/transport/tcpconntrack/tcp_conntrack.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcpconntrack/tcp_conntrack.go -------------------------------------------------------------------------------- /protocol/transport/tcpconntrack/tcp_conntrack_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/tcpconntrack/tcp_conntrack_test.go -------------------------------------------------------------------------------- /protocol/transport/udp/client/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/udp/client/client.go -------------------------------------------------------------------------------- /protocol/transport/udp/client/get.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/udp/client/get.go -------------------------------------------------------------------------------- /protocol/transport/udp/client/read.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/udp/client/read.go -------------------------------------------------------------------------------- /protocol/transport/udp/client/write.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/udp/client/write.go -------------------------------------------------------------------------------- /protocol/transport/udp/endpoint.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/udp/endpoint.go -------------------------------------------------------------------------------- /protocol/transport/udp/protocol.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/udp/protocol.go -------------------------------------------------------------------------------- /protocol/transport/udp/udp_packet_list.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/udp/udp_packet_list.go -------------------------------------------------------------------------------- /protocol/transport/udp/udp_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/protocol/transport/udp/udp_test.go -------------------------------------------------------------------------------- /resource/arp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/resource/arp.png -------------------------------------------------------------------------------- /resource/dns_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/resource/dns_client.png -------------------------------------------------------------------------------- /resource/dns_server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/resource/dns_server.png -------------------------------------------------------------------------------- /resource/e1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/resource/e1.png -------------------------------------------------------------------------------- /resource/e2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/resource/e2.png -------------------------------------------------------------------------------- /resource/http.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/resource/http.png -------------------------------------------------------------------------------- /resource/websocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/resource/websocket.png -------------------------------------------------------------------------------- /resource/wm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/resource/wm.png -------------------------------------------------------------------------------- /stack/linkaddrcache.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/stack/linkaddrcache.go -------------------------------------------------------------------------------- /stack/linkaddrcache_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/stack/linkaddrcache_test.go -------------------------------------------------------------------------------- /stack/nic.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/stack/nic.go -------------------------------------------------------------------------------- /stack/registration.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/stack/registration.go -------------------------------------------------------------------------------- /stack/route.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/stack/route.go -------------------------------------------------------------------------------- /stack/stack.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/stack/stack.go -------------------------------------------------------------------------------- /stack/stack_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/stack/stack_test.go -------------------------------------------------------------------------------- /stack/stackinit/init.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/stack/stackinit/init.go -------------------------------------------------------------------------------- /stack/transport_demuxer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/stack/transport_demuxer.go -------------------------------------------------------------------------------- /stack/transport_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/stack/transport_test.go -------------------------------------------------------------------------------- /tcp-api.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tool/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/tool/Makefile -------------------------------------------------------------------------------- /tool/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/tool/README.md -------------------------------------------------------------------------------- /tool/down.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/tool/down.go -------------------------------------------------------------------------------- /tool/up.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/tool/up.go -------------------------------------------------------------------------------- /udp-api.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /websocket-api.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brewlin/net-protocol/HEAD/websocket-api.md --------------------------------------------------------------------------------