返回 随笔记录
五、网络编程
博主
大约 8 分钟
五、网络编程
范围:TCP/IP、HTTP、WebSocket、Netty、RPC框架 知识点数量:203项 返回总目录
5.1 网络基础
5.1.1 TCP/IP协议
- 529. OSI七层模型 - 掌握各层功能和协议,理解封装解封装
- 530. TCP三次握手 - 掌握连接建立过程,理解SYN flood防护
- 531. TCP四次挥手 - 掌握连接关闭,理解TIME_WAIT作用(2MSL)
- 532. TCP可靠传输 - 掌握序列号、确认应答、超时重传
- 533. TCP流量控制 - 掌握滑动窗口机制,理解窗口大小协商
- 534. TCP拥塞控制 - 掌握慢启动、拥塞避免、快重传、快恢复
- 535. UDP协议 - 掌握无连接特性,理解DNS、视频流应用
- 536. TCP vs UDP - 理解区别和选型,掌握适用场景
- 537. TCP粘包问题 - 掌握原因分析,理解解决方案(定长、分隔符、长度字段)
- 538. TCP Keep-Alive - 掌握心跳检测,理解与应用层心跳区别
- 539. TCP状态转换 - 掌握11种状态,理解状态图
- 540. 半关闭状态 - 掌握shutdownInput/Output,理解单向关闭
- 541. TCP快速打开 - 理解TFO机制,掌握Cookie交换
5.1.2 HTTP协议
- 542. HTTP/1.1 - 掌握请求方法、状态码、头部,理解长连接
- 543. HTTP/2 - 掌握多路复用、头部压缩(HPACK)、服务端推送
- 544. HTTP/3 (QUIC) - 掌握基于UDP的新一代HTTP,理解0-RTT
- 545. HTTPS原理 - 掌握SSL/TLS握手和证书验证,理解对称+非对称加密
- 546. Cookie与Session - 掌握状态管理,理解Cookie属性和Session持久化
- 547. CORS跨域 - 掌握跨域请求机制,理解预检请求(OPTIONS)
- 548. HTTP缓存 - 掌握强缓存(Cache-Control)和协商缓存(ETag/Last-Modified)
- 549. RESTful设计 - 掌握资源命名和HTTP动词,理解HATEOAS
- 550. HTTP状态码 - 掌握1xx-5xx分类,理解常用状态码场景
- 551. HTTP头部 - 掌握通用/请求/响应/实体头部,理解自定义头部
- 552. 内容协商 - 掌握Accept头部,理解媒体类型和编码协商
- 553. HTTP压缩 - 掌握gzip/deflate/brotli,理解压缩比和性能
5.1.3 Socket编程
- 554. Socket基础 - 掌握TCP客户端/服务端,理解IP+端口
- 555. ServerSocket - 掌握服务端监听,理解backlog参数
- 556. DatagramSocket - 掌握UDP通信,理解数据包丢失处理
- 557. 多线程Socket - 掌握每请求一线程模型,理解线程池优化
- 558. Socket超时设置 - 掌握connectTimeout和readTimeout
- 559. Socket选项 - 掌握TCP_NODELAY、SO_REUSEADDR、SO_KEEPALIVE
- 560. NIO Selector - 掌握多路复用,理解SelectionKey
- 561. ByteBuffer - 掌握直接/堆缓冲区,理解flip/clear/compact
- 562. Channel - 掌握FileChannel、SocketChannel、ServerSocketChannel
- 563. AIO异步IO - 掌握AsynchronousChannelGroup,理解CompletionHandler
- 564. IO模型对比 - 理解BIO/NIO/AIO区别,掌握选择策略
- 565. Epoll机制 - 掌握Linux事件驱动,理解LT/ET模式
5.2 WebSocket
5.2.1 WebSocket基础
- 566. WebSocket握手 - 掌握HTTP升级到WebSocket,理解Upgrade头部
- 567. 数据帧格式 - 掌握Opcode、Mask、Payload Length
- 568. 心跳机制 - 掌握Ping/Pong帧,理解保活策略
- 569. 断线重连 - 掌握指数退避重连策略
- 570. 消息类型 - 掌握文本和二进制消息,理解分片消息
- 571. Spring WebSocket - 掌握框架集成,理解WebSocketHandler
- 572. 子协议 - 掌握Sec-WebSocket-Protocol,理解STOMP
- 573. 连接关闭 - 掌握Close帧和状态码,理解优雅关闭
- 574. 消息大小限制 - 掌握最大帧配置,理解大消息分片
5.2.2 WebSocket应用
- 575. 聊天室实现 - 掌握群发消息,理解会话管理
- 576. 实时通知 - 掌握消息推送,理解订阅模式
- 577. 在线协作文档 - 掌握操作转换(OT)算法
- 578. 负载均衡 - 掌握WebSocket会话保持,理解Sticky Session
- 579. 安全考虑 - 掌握WSS加密,理解Origin验证和Token认证
- 580. 性能调优 - 掌握连接数限制,理解单机10万连接优化
- 581. STOMP协议 - 掌握消息代理,理解Destination
- 582. WebSocket集群 - 掌握Redis Pub/Sub广播,理解跨节点消息
5.3 Netty框架
5.3.1 Netty核心
- 583. EventLoopGroup - 掌握线程模型,理解Reactor模式
- 584. Channel - 掌握通道抽象,理解NioSocketChannel
- 585. ChannelPipeline - 掌握处理链,理解入站出站顺序
- 586. ChannelHandler - 掌握入站(ChannelInboundHandler)出站(ChannelOutboundHandler)
- 587. ByteBuf - 掌握内存管理,理解引用计数
- 588. Bootstrap - 掌握服务端(ServerBootstrap)客户端启动
- 589. ChannelFuture - 掌握异步操作,理解addListener回调
- 590. ChannelHandlerContext - 掌握上下文,理解fire事件传递
- 591. Unpooled vs Pooled - 掌握内存分配,理解池化优势
- 592. ReferenceCounted - 掌握引用计数,理解release释放
5.3.2 Netty进阶
- 593. 粘包拆包 - 掌握DelimiterBasedFrameDecoder、LengthFieldBasedFrameDecoder
- 594. 编解码器 - 掌握Protobuf、JSON、MessagePack编解码
- 595. 零拷贝 - 掌握DirectBuffer、CompositeByteBuf、FileRegion
- 596. 内存池 - 掌握PooledByteBufAllocator,理解Arena和Chunk
- 597. 心跳检测 - 掌握IdleStateHandler,理解读/写/读写空闲
- 598. 性能调优 - 掌握Boss/Worker线程配置,理解线程数计算
- 599. 源码分析 - 理解Reactor模式实现,掌握启动流程
- 600. 自定义协议 - 掌握协议设计(魔数+版本+长度+内容)
- 601. Handler执行顺序 - 理解Pipeline双向链表,掌握添加/移除
- 602. 优雅停机 - 掌握EventLoopGroup shutdownGracefully
5.3.3 Netty应用
- 603. RPC框架底层 - 掌握Dubbo网络层实现
- 604. 网关开发 - 掌握Spring Cloud Gateway底层Netty
- 605. 即时通讯 - 掌握IM系统架构,理解消息可靠投递
- 606. 游戏服务器 - 掌握高并发处理,理解帧同步
- 607. 协议实现 - 掌握HTTP、MQTT、Redis协议实现
- 608. 性能测试 - 掌握wrk/JMH压测,理解吞吐量指标
- 609. 连接管理 - 掌握ChannelGroup,理解全局连接管理
5.4 RPC框架
5.4.1 RPC基础
- 610. RPC原理 - 掌握远程调用流程,理解代理+序列化+网络
- 611. 服务注册与发现 - 掌握注册中心,理解心跳健康检查
- 612. 序列化协议 - 掌握Protobuf、Hessian、Kryo、Avro
- 613. 通信协议 - 掌握自定义协议设计,理解协议头设计
- 614. 负载均衡 - 掌握轮询、随机、一致性Hash、加权
- 615. 容错机制 - 掌握重试、熔断、降级、限流
- 616. 服务版本 - 掌握多版本共存,理解灰度发布
- 617. 超时控制 - 掌握全局/方法级超时,理解超时传播
- 618. 异步调用 - 掌握Future/CompletableFuture,理解回调
5.4.2 gRPC
- 619. Proto文件 - 掌握IDL定义,理解message和service
- 620. gRPC服务 - 掌握四种调用模式(Unary/Server/Client/Bidi Stream)
- 621. Stream调用 - 掌握流式通信,理解背压机制
- 622. 拦截器 - 掌握ClientInterceptor和ServerInterceptor
- 623. 元数据传递 - 掌握Metadata,理解上下文传递
- 624. gRPC集成Spring - 掌握grpc-spring-boot-starter
- 625. gRPC Gateway - 掌握HTTP/gRPC转换
- 626. 错误处理 - 掌握Status Code,理解错误详情
5.4.3 Dubbo
- 627. Dubbo架构 - 掌握Provider、Consumer、Registry、Monitor
- 628. 服务暴露 - 掌握ServiceBean,理解本地/远程暴露
- 629. 服务引用 - 掌握ReferenceBean,理解代理创建
- 630. 集群容错 - 掌握Failover、Failfast、Failsafe、Failback
- 631. 扩展点 - 掌握SPI机制,理解自适应扩展
- 632. Dubbo 3.0 - 掌握Triple协议和应用级服务发现
- 633. 泛化调用 - 掌握GenericService,理解无依赖调用
- 634. 服务分组 - 掌握Group/Version隔离
- 635. 隐式传参 - 掌握RpcContext,理解隐式参数传递
- 636. 线程模型 - 掌握Dispatcher策略,理解全派发/消息派发
进度统计
- 领域:网络编程
- 知识点总数:203项
- 已完成:0项
- 待完成:203项
实战项目建议
- 项目1:简易RPC框架 - 实现服务注册发现、动态代理、序列化、负载均衡、容错
- 项目2:WebSocket聊天室 - 实现群聊、私聊、在线状态、消息持久化、断线重连
- 项目3:HTTP服务器 - 使用Netty实现HTTP服务器,支持静态资源、路由、JSON响应
常见面试问题
- TCP三次握手和四次挥手过程?为什么是三次不是两次?
- HTTP/1.1 vs HTTP/2 vs HTTP/3的区别?
- Netty的线程模型?Reactor模式有几种?
- RPC调用中序列化协议如何选择?Protobuf为什么快?
- Dubbo的集群容错策略有哪些?默认是什么?
推荐学习资源
- 书籍:《TCP/IP详解》《Netty实战》《HTTP权威指南》
- 视频:极客时间《Netty源码剖析》《RPC实战与核心原理》
- 官方:Netty官方文档、gRPC官方文档、Dubbo官方文档
知识点测试
读完文章了?来测试一下你对知识点的掌握程度吧!
评论区
使用 GitHub 账号登录后即可发表评论,支持 Markdown 格式。
如果评论系统无法加载,请确保:
- 您的网络可以访问 GitHub
- giscus GitHub App 已安装到仓库
- 仓库已启用 Discussions 功能