We often say that you don’t have to know how an engine works to drive a car, but you can bet that every driver at the Indy 500 knows exactly how it works. You could say the same for computers. You don’t need to understand the details, but it really helps, especially if something goes wrong. [Low-Level Academy] has an online class where you can program in Rust inside your browser to learn about low-level TCP and UDP networking details.
Just how low it goes, we aren’t exactly sure, yet. There are three of eight modules ready to go. The first three cover number encoding, exchanging messages with UDP, and fragmentation. Reliability, routing, server programming, TCP, and HTTP are not out yet, but the ultimate project is a web server. In addition, new modules are released to sponsors first, so the fragmentation module for example won’t be available for a few more days. While that seems unorthodox, it is no different than having to wait for an HBO show to show up on basic cable in reruns.
The number encoding won’t be anything new for Hackaday readers. It covers things like UTF-8, octal, and hex. However, you should look at it to see how interactive it is. For instance, instead of just showing an example of how to decode a hex number, the text lets you change the input number and the work changes on the fly to show the value.
This same technique populates your input into live Rust code that you can run or edit. For example, here’s a DNS lookup of one of our favorite sites.
If you know Rust or if you want to learn Rust, this might be a good way to do it, even if you do understand networking at this level. If you want to understand more about how networking works, we aren’t sure this is exactly low-level, but it is lower than many people go. Maybe they’ll have future series about MAC addresses, ARP, and routing protocols. But even if they don’t, this is worth a look.
If you know enough about how the network works at the lowest levels, you can probe and figure out what operating system a computer is probably using based on quirks in their network stacks. Understanding network fundamentals is a key part of defending against cyberattack or, we suppose, mounting one.
No comments:
Post a Comment