CS144: Introduction to Computer Networking

Description

计算机网络:OSI模型,三次握手,TCP状态转换图等,参考书籍:计算机网络与UNIX网络编程第一卷

Prerequisites
  • Principles of Computer Systems
Readings
  • 《计算机网络:自顶向下方法》
  • 《网络是怎样连接的》通俗读物,花一天时间看看
  • 《TCP/IP详解卷1:协议》
Knowledge points
  • HTTP、TCP、IP、ICMP、UDP、DNS、ARP

  • IP地址、MAC地址、OSI七层模型(或者 TCP/IP 五层模型)

  • HTTPS安全相关的:数字签名、数字证书、TLS

  • 常见网络攻击:局域网ARP泛洪、DDoS、TCP SYN Flood、XSS等

  • 一个数据包是如何发送出去的?带着这个问题依次去学应用层、传输层、网络层、链路层,思考这些层之间是如何串联起来的。

  • 三次握手、四次挥手

  • 状态转换

  • TCP 状态中 TIME_WAIT

  • 拥塞控制

  • 快速重传、慢启动等

  • 这么多东西肯定需要背,但不要死记,最好带着问题去思考为什么要这样做。

  • TCP 如何实现可靠传输的(画外音:如何基于 UDP 实现可靠传输

  • TCP 连接建立为什么不是两次握手(画外音:三次握手的充分必要性说

  • TIME_WAIT 的存在解决了什么问题,等待时间为什么是 2 MSL

  • 整个 TCP 的核心就是围绕着 可靠传输 + 高效传输(流量控制和窗口管理)

  • 为什么有了 MAC 地址还要 IP 地址,IP 地址和 MAC 地址的区别是什么?

  • 如何理解广播域和冲突域?

  • 路由器和交换机有什么区别?

  • TCP 连接的本质是什么,真的是“链接”吗?(曾经被问过:Java socket 创建的 TCP 连接,对于主机挂了和 JVM 挂了有什么区别?