What are the mandatory networking concepts ?

Some time ago, a colleague mentioned that some universities did not offer any networking course to their students and that the networking concepts were taught inside other courses such as programming systems courses. Assuming that a student will be exposed to only five hours of networking concepts, what are the mandatory concepts that he should understand ?

  • a first option would be to consider that the ability to develop a small networked application is the main concept and networking could be introduced by starting from the socket layer and use it to explain the transport layer services as well as DNS and perhaps write a small application such as a basic HTTP or email server
  • a second option could be to consider that packet switching is the most important concept and discuss all the implications of packet switching, perhaps with a brief explanation of addressing and the roles of routers or switches
  • there are probably many other options

Maybe ACM SIGCOMM should provide recommendations on these mandatory networking concepts. Suggestions/comments are more than welcome, especially from teachers who have had to give such courses.