Tuesday, May 31, 2016

CST 311 Week 6

Week 6

There were a lot of videos to watch this week and a there was plenty of information covered. I struggle to remember everything after doing the lab and homework assignments, which focused on performing traceroute commands to obtain router information, implementing the longest prefix matching forwarding tables, and reassigning IP addresses using DCHP (analyzed with Wireshark).

I'm hoping the upcoming weeks are short again so that I can get through that material and get enough time to review the material from the past two weeks. There's been a lot of information and I've been doing my best to keep up with it all and take it all in, but it's very difficult.

Tuesday, May 24, 2016

CST 311 Week 5

Week 5

This week was pretty intense content-wise. This has been the most challenging course for me in this program, but I am happy about it. I feel like I'm walking away each week with a new understanding of how the internet is working. It definitely helps me feel more in-tune with my surroundings at work, too. This week at work we have been having some frustrating issues with the VPN client, Pulse (Juniper Networks). It drops a lot of packets when a particular packet size is sent. If I recall correctly, it's hitting the congestion window size. I didn't understand all of the specifics of it, but I could at least somewhat follow the conversation around it and I thank this course for that.

This week we covered TCP's sequence numbers and acknowledgements, reliable data transfer, connection management, and TCP's congestion control algorithm. However, I heavily focused on TCP's congestion control algorithm. There was a quiz this week that was pretty difficult for me after reading the textbook and re-watching videos on the topic, but I think I figured it out okay. I felt like some of the concepts were just taking a really long time to click. One of the professors sent out some videos as additional resources and one of those ended up helping me, but it's also possible I was just more awake when I was working on the problems.

Monday, May 16, 2016

CST 311 Week 4

Week 4

This week caught me off guard because I didn't look at the due dates well enough to recognize that both week 3 and week 4 were due the time that week 3 was due (meaning week 3 and week 4 were combined into week 3). Week 4 is actually a week off to study for the midterm on the Saturday of the actual week 4. There were lighter work loads for both week 3 and week 4, but they were presented as being lighter to give the students more time to study for the midterm and I didn't read it as two weeks condensed into one. It would probably have been more ideal to just tell us all that all of the material was for week 3 and there isn't material for week 4 to give us time to study for the midterm. So, I found this frustrating. I always do my assignments as quickly as possible at the beginning of the week so that I don't have to waste my energy on stress surrounding deadlines.

As for the material, we covered the transport layer in more detail, multiplexing, demultiplexing, and UDP. The point of the transport layer is to provide communication between the host's processes. Multiplexing is done at the sending host and adds a transport header. Demultiplexing is done on the other side (receiving host) and breaks apart the header to send the data to the correct socket. UDP is an unreliable, unordered delivery protocol. Our Wireshark lab was focused on UDP this week.

We went into a surprising amount of detail this week with regards to calculating the checksums on UDP headers. The checksums are used to quickly check if a UDP segment has an error or not. While they're not a reliable way of checking for errors, they can help signal that something may have gone wrong. To do the assignment we had to understand binary addition. I'm glad I'm also enrolled in an Operating Systems course that taught me how to add binary numbers this semester because this course didn't provide any assistance there and it was necessary to complete the homework assignment. Calculating a checksum is done by doing this:
  1. Add two binary numbers (we added bytes, UDP uses 16-bit integers).
  2. A "wraparound" will be at the beginning of the sum (0 or 1) at the number of bits you're adding plus 1 decimal place.
  3. Remove the "wraparound" from the beginning of the sum and add it to the rest of the binary integer.
  4. Flip all the bits to be the opposite (0101 -> 1010).
  5. That is the checksum!

Sunday, May 15, 2016

CST 311 Week 3

Week 3

I got behind a bit this week due to the lab taking me a long time. Many of the prompts that we were supposed to perform didn't work because the DNS servers were no longer public or no longer existed. I made the best of it and used alternate ones and also relied on the results that the author of the Wireshark labs had received. I also work on OSX, so I've had to find the equivalent commands of those that are provided in the lab (Windows commands).

The content covered this week was SMTP (Simple Mail Transfer Protocol), DNS (Domain Name Service) and how various applications utilize these. These are all very relevant to what I've been doing at work. Coworkers have explained parts of these to me, but I just didn't completely understand some of the tools I was using. I've enjoyed becoming more familiar with the tools that have been presented this week. I've used ifconfig (ipconfig equivalent) at work to find my IP address at work pretty frequently.

We watched a video, called "A Day in the Life of an Application", that explains how some services work. I really enjoyed learning how a voice call works over Skype and how peer-to-peer sharing work. I'd heard of (and used) peer-to-peer sharing systems in the past and never really understood what was going on under the hood. I love the idea of being able to obtain data from several people that are also downloading the same content. Now I understand why you'd want to have many people downloading the same thing. All I used to understand was that it was faster and more likely to complete when there were more users.



Sunday, May 8, 2016

CST 311 Week 2

Week 2

This week has been very informative and took be a bit longer to complete in comparison to last week. That may be because I took more detailed notes when I watched the video to help me complete the quiz for the end of the week's content. I think it was beneficial to take the notes. Even when I didn't capture the information that I needed there, I was able to go back and reference the correct video to get the information I needed.

This week we've been focused on HTTP and FTP. Getting to know the different protocols has been very interesting. I had a general idea of HTTP, but no knowledge of FTP. It's really interesting that FTP opens an additional port to transfer data and then closes it immediately after the data is sent, but keeps one open regardless of the data being sent.

A simple socket programming exercise was sent out this week. I've been working on it in Java (there's a handful of languages to pick from). So far I haven't had much luck, but I am going to continue chipping away at it. I think it's a really good exercise and I personally benefit from hands-on experience, so I'm really happy about this extra credit assignment. Really, I wouldn't be too upset if it were a regular homework assignment.