Contents in the video: Full Explanation and Break down of the 7 Layers from the OSI Layer Model used for describing how Communication works across the Internet. Coding focused on showcasing the transport protocols TCP & UDP in Java Full Projects using both TCP & UDP as the engine and also showcase of the differences between both in the backend part of an application. The projects are crafted in such a way, differences between each type of connection can be easily visible and how to perform improvements when necessary over them without changing the nature of each of them. Timestamps & Chapters: 0:00 OSI Model Full Theory and Layers Explanation 54:20 TCP (Transmission Protocol) Java Example 1:22:00 UDP (User Datagram Protocol) Java Example 1:41:58 UDP Audio Streaming Player Project 2:44:26 TCP Calculator Application Project 3:06:40 Infix to Postfix Integration. 3:47:00 Wrapping up and final thoughts. P.D: Sorry for bad audio, even though I tried to increase audio quality for using my phone as a MIC but did not yield optimal results despite post-processing attempts. The last part of the video was a disaster, I will fix it for a more clearer audio ASAP. Around 2:38:21 when showcasing the audio player complete I had to silence the audio for a copyright claim, if you are curious. In the UDP Audio Player code (Players Sender improved), I used System.arraycopy(); and that's because remember we want to only read the real bytes than contain audio, not the full package, remember a packet contains a lot of information in which the audio bytes are included, byteBuffer.array() returns the entire underlying array (which may be significantly larger than the actual content), with arraycopy we extract only those valid bytes defined by our parameters. And since is a native method of Java, that means we move memory faster that needed for real audio Streaming, because it bypasses Java bytecode overhead and uses optimized low-level instructions like memmove.