Thursday, December 14, 2023

CST462S Service-Learning Reflection

For CST 462S we had to complete 25 hours of service relating to computer science. My service project was to create a computer science lesson for STARBASE Edwards. I found the experience to be rewarding.

Planning out the lesson and eventually creating the materials went smoothly, without problem. Though, if I could go back and change something about how I approached creating the lesson, I think I would spend additional time creating a rigorous plan, defining how the entire 25 hours would be allocated from the start.

What I appreciate most about this experience is the knowledge that my work might be used to teach students computer science fundamentals, and even possibly key them into a potential interest in computer science. While I created the lesson without much trouble, at times I found it difficult to stay on schedule – though I ultimately forced myself to stay on target.

If I had to give advice to a future Service-Learning student, I would emphasize the importance of good time management. Remember: you only have a set amount of time to get your 25 hours completed. If you fall behind in your schedule, it could become extremely difficult to satisfy the required hours, and to complete your deliverable / service on time.

Saturday, June 17, 2023

CST311 Week 8

The last week of CST 311 focused on summarizing layers 5-2 of the Internet protocol suite, and discussed some of the security considerations of networking. The following provides a summary of the Internet protocol suite:

5th layer (application): Contains “application” data, or arbitrary data that is sent by applications over the network. Many backbone protocols of the Internet are implemented in the application layer – one such example is DNS.

4th layer (transport): Provides two major protocols: TCP and UDP. These protocols provide abstractions over layer 3 datagrams. TCP provides a connection-oriented, reliable, and in-order byte stream abstraction for sending data between endpoints. UDP is a simpler protocol; it provides few guarantees, but due to its simple nature, often provides greater throughput and reduced latency.

3rd layer (network): Implements the essential routing functions of the Internet. The Internet Protocol is arguably the most important network-layer protocol. Every interface connected to the Internet has an “IP address,” and routers can, using these IP addresses, (in combination with some complex routing protocols), forward packets towards their destination.

2nd layer (link): Defines how link-layer frames traverse a single link. The Ethernet protocol is ubiquitous in modern networks – it drives much of the link layer around the world. The Ethernet protocol assigns every interface a unique “MAC address.” A target device’s MAC address must be specified in a link-layer frame for the frame to be delivered to the target. Switches use MAC addresses, along with a protocol called ARP, to route traffic based on MAC addresses. Note that ARP only operates within a single subnet; thus, while every interface in the world has a unique MAC address, MAC addresses can only be used to address a device within the current subnet.

Tuesday, June 13, 2023

CST311 Week 7

The seventh week of CST 311 focused on the link layer.

The link layer is concerned with how data moves across a single link. There are many different link layer protocols, all providing a unique set of services to the network layer. An important service provided by some link layer protocols is error detection, (and possibly correction). Error detection can be found throughout the internet protocol stack, though the link layer's error detection has some key advantages.

A significant portion of the link layer is implemented in hardware. This allows adapters to perform complex error detection and correction on link layer frames; operations that are much too complex to be done by software in the upper layers. Additionally, performing error correction at the link layer provides throughput and latency improvements when portions of the route are unreliable. For example, imagine that during a link layer frame’s last hop, one of its bits is flipped. The frame is simply dropped without error correction at the link layer. Subsequently, it would be an upper protocol’s responsibility to detect and handle this packet loss – which ultimately entails resending the packet. When error correction is performed at the link layer it is possible to recover an otherwise damaged packet in-flight, saving the time it would have taken for an upper protocol to retransmit and repropagate the packet to the current node.