Arlon's CSUMB Intro to Computer Networks CST-311 Module 1 Learning Journal #1/#33 for the week Wed 09/01-Tues 09/07, year 2021

Arlon's CSUMB Intro to Computer Networks CST-311 Module 1 Learning Journal #1/#33 for the week Wed 09/01-Tues 09/07, year 2021

Well I have been extremely super excited about this class, so it is really great to finally be jumping in!

In the beginning I was little muddled at first over some past drama, a little caught up in some past projects, and a little overwhelmed with all the new terminology - but definitely still super excited to get to the topic and I was super happy to see all the practice problems and super awesome lab experiments presented - a little stumped by a few - but not too stumped, they're great!

Just like in database class, orientation had me learning things I didn't know, right off the bat! Even though I had been doing experimentation with the setup, what I learned in orientation still took me in a direction I hadn't gone before - x-forwarding for starters is really neato, MiniNet itself and software networking is an amazing concept I'd never seen or heard of, running Wireshark out of SSH with x-forwarding really blew my mind - but I think it's all starting to sink in now, what's going on, and these are all super neato tricks I'm ready to start applying!

Right before the class started we had a short break and I was able to get a minute to devour Michael W. Lucas's Networking for System Administrators, which really helped take the edge off and explain lots, a little ahead of time. Right away I got a huge tip from that book I was able to apply to our Python sockets lab. A TCP or UDP socket connection can be made in bash super simply, cross off the Python client half and just use this instead, for TCP:

nc -v <ip address> <port>
for udp just add option -u:
nc -uv <ip address> <port>
pretty neat, nc (netcat) is presented in our lab too, in a similarly useful context, but not exactly like that. What that does in this context is, just like our Python socket client, it gets input from the console and sends that line of text as a packet of data to host <ip address> port <port> and can replace the Python client in our lab for testing and/or fun! The way I understand it is it's 'creating traffic' as netcat, like cat, but over a net.

I began the week's work by focusing on the most importantly pressing item, the group project, lab sockets. It's a really interesting experiment I personally have attempted and failed at in the past, so it is super great to be instructed through it. (When I attempted something like this many years ago and failed I was trying sockets with PHP to JavaScript and gave up eventually because of too many dependencies I didn't want to have to deal with, and just used a COMET framework I made instead, which worked better and was less resource intensive overall anyway because doing it with COMET instead didn't unnecessarily require a continuous connection.) So anyways we got our Python sockets lab done and working pretty quick, then I did some successful seeming experiments with CodeAnywhere, our prospective IDE (although I had to pay money, which super goes against my grain, especially since it used to be a free service) and then after the group work was mostly figured out I was able to start jumping on the quizzes.

The quizzes were super logical, easily referenced in our text, and I agree with all the answers except one. I made a few dumb mistakes, and the only answer I disagree with is the one that used SI units for a photo's file size being sent from Mars when it specifically says right in our supplemental learning addendum called "How much is a Kilobyte?" that we should use JEDEC for file sizes " By default, use JEDEC for file sizes and SI for network bandwidth." So I think that one question was unfair, but everything else was great, the other questions I got wrong, I went back and went over again and it turned out I had literally had botched the simple arithmetic which I understood and did on paper but looked simple enough to manipulate a few steps in my head which I apparently shouldn't have. For some reason the couple wrong answers I arrived at happened to also be multiple choice answers which - you get that answer on paper you figure, what are the odds, right? But yeah, I botched the arithmetic AND it matched an answer - in two cases! Just bad luck I guess, and definitely not being careful enough, for those two. Then there was another I simply answered wrong, dumbly, somehow didn't read it carefully enough, and one I guess I didn't understand right, and the explanation made it clear afterward, that one was trip times in MiniNet. The flip side to all that I guess is that I understand everything fairly well overall, since I would have gotten almost 100% on the quizzes had I been more careful and #10 hadn't used SI units for a file size after saying specifically file sizes are in JEDEC.

At first I thought we were supposed to run the group lab 1 server out of the mininet virtual machine and the python client off localhost, which we did, so that required port forwarding out of VirtualBox and we got that going, but then I read more closely and I think it's actually just supposed to be localhost to localhost and the extra credit is supposed to be MiniNet to MiniNet. We started off with localhost to MiniNet client/server with port forwarding in the VirtualBox network NAT configuration.

Here's another networking tip I learned a while back: Say you want to send a funny graphical image+message to someone's screen. On a real (Debian) machine on your network, SSH in, sudo su to a user on the system running x (the computer screen) and run xhost + as them (them is yourself on different computers, don't really do this to someone else.) Ok, now, as any other user SSH'd into that machine you can run DISPLAY=:0 xcowsay hi and a cow will show up on their screen and say hi to them while they are working, or you could say "work harder" or put different pictures in place of the cow, etc. I still haven't figured out how to map various users to numbers (ie DISPLAY=:0 means the 0'th screen, 0'th user and presumably there could be lots of others) but even with seemingly arbitrary numbers in place of usernames it's still a fun concept. I know there is a way to send the command to an IP address and trigger the dbus daemon (Debian) so you can send messages to a whole different computer you aren't logged in to, but I haven't figured it out yet. So I'll keep working on trying to figure out how to send something like that over IP without SSH (in other words, the way I know how to do it, you SSH in, then do DISPLAY=:0 xcowsay hi but I'm pretty sure there is a way to do it without the SSH command, triggering the target host's dbus daemon.)

Comments

Popular posts from this blog

Module 2 Learning Journal 1-19-21

Arlon's CSUMB ProSeminar CST300 Module 4 Learning Journal for the week Wed 1/27-Tues 2/2, year 2021

Arlon's CSUMB ProSeminar CST300 Module 8 Learning Journal for the week Wed 02/24-Saturday 02/27, year 2021 - Journal 8