Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

练习题与扩展阅读

练习题

基础题

  1. OSI七层模型和TCP/IP四层模型分别有哪些层?每层的核心作用是什么?
  2. TCP和UDP协议各有什么特点?分别适合什么场景?
  3. TCP建立连接为什么需要三次握手?断开连接为什么需要四次挥手?
  4. HTTP请求中GET和POST方法有什么区别?分别适合什么场景?
  5. 常见的网络攻击方式有哪些?分别怎么防范?
  6. TCP的三次握手中,为什么最后一次握手需要客户端发送ACK报文?

实操题

  1. 用Wireshark抓包工具,抓取一个HTTP请求的完整过程,查看以太网帧、IP包、TCP段、HTTP请求的结构,理解各层的头部字段。
  2. 编写一个简单的TCP服务器和客户端,实现简单的聊天功能,体会Socket编程的流程。
  3. dig或者nslookup命令解析一个域名,查看DNS解析过程和返回的记录。
  4. telnet或者nc命令测试目标服务器的端口是否开放,建立TCP连接发送数据。
  5. 模拟一个简单的XSS攻击场景,理解XSS的原理和防范方法。

思考题

  1. 输入一个URL到浏览器显示出页面,整个过程都发生了什么?请从网络层面详细描述。
  2. TCP是可靠传输协议,为什么我们在应用层还需要做超时重传和幂等设计?
  3. 为什么HTTPS能够防止中间人攻击?如果用户信任了伪造的根证书会有什么问题?
  4. 很多应用层协议都基于TCP,有没有可能基于UDP实现可靠传输?如果可以,怎么实现?
  5. HTTP是无状态的,那电商网站的购物车是怎么实现保存用户状态的?原理是什么?

扩展阅读

书籍推荐

  1. 《TCP/IP详解 卷1:协议》

    • 网络领域的经典圣经,详细讲解了TCP/IP协议族的所有细节,每个网络从业者都应该读。
  2. 《HTTP权威指南》

    • HTTP协议的权威指南,深入讲解HTTP协议的方方面面,包括请求响应结构、缓存、认证、代理等内容。
  3. 《Web安全深度剖析》

    • 全面讲解Web安全的各种攻击方式和防护方法,适合开发者了解Web安全知识。
  4. 《UNIX网络编程》

    • 网络编程的经典著作,详细讲解了Socket编程的原理和实现,适合系统学习网络编程。

在线资源

  1. MDN Web 文档 - HTTP

    • MDN的HTTP文档,全面详细,是学习HTTP的最佳资料之一。
  2. TCP/IP 指南

    • 免费的TCP/IP指南,内容通俗易懂,覆盖了TCP/IP协议的所有核心内容。
  3. Web安全学习笔记

    • 开源的Web安全学习资料,涵盖了各种常见Web攻击和防护方法。
  4. Cloudflare 学习中心

    • Cloudflare的学习中心,有很多关于网络、安全、CDN的通俗易懂的科普文章。
  5. HTTP/3 详解

    • Cloudflare的技术博客,详细讲解HTTP/3和QUIC协议的原理和优势。

工具推荐

  1. Wireshark:最流行的网络抓包分析工具,可以抓取和分析各种网络数据包,排查网络问题的神器。
  2. tcpdump:Linux下的命令行抓包工具,适合在服务器上抓包分析。
  3. curl / Postman:HTTP请求测试工具,用来测试接口和调试HTTP请求。
  4. dig / nslookup / host:DNS查询工具,排查DNS问题。
  5. telnet / nc(netcat):网络调试工具,可以测试端口连通性、发送TCP/UDP数据。
  6. nmap:端口扫描和网络探测工具,用来扫描服务器开放的端口和服务。
  7. Charles / Fiddler:HTTP代理工具,可以拦截、查看、修改HTTP/HTTPS请求,调试接口非常方便。
  8. OpenSSL:SSL/TLS工具,可以生成证书、测试HTTPS连接、加密解密等。

参考答案

练习题的参考答案可以在附录/练习题参考答案.md中找到。建议先独立思考完成,再查看答案。