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 挂了有什么区别?