Skip to content

计算机网络知识库 ​

一套覆盖网络基础、IP、TCP/UDP、HTTP、TLS 与抓包实验、可验证、可追溯、可持续维护的中文计算机网络知识库。它不只罗列协议字段、端口号和命令,而是解释分层设计、报文在端到端路径上的变化、状态机、工程取舍、失败模式和验证方法。

核验基线日期(verified_at):2026-09-07。版本敏感内容以各篇 frontmatter 的 verified_at 为准。

一、知识库定位 ​

本知识库回答一个核心问题:数据如何从一个应用出发,跨越主机协议栈、局域网、路由网络和互联网,准确、可靠、安全地到达对端应用?沿途每一层做了什么、可能怎样失败、如何验证?

它坚持三条主线:

  1. 分层可追溯:每个知识点标注所属层次与相邻层关系,区分「标准规范 / 操作系统实现 / 设备实现 / 云厂商实现 / 单次实验观测」,不把单一环境结果当成普适规律。
  2. 实验可复现:核心知识点尽量给出最小可复现实验——拓扑、地址规划、命令、预期输出、抓包特征、失败注入与清理命令。无法在本环境执行的实验明确标记未验证及原因,绝不伪造成功结果。
  3. 结论有证据:性能结论必须带拓扑、参数、分位数;安全结论必须区分理论风险、可利用条件、检测证据与缓解措施;排障结论必须有客户端 / 服务端 / 中间路径的交叉证据。

本知识库不做什么:不提供针对真实目标的攻击或破坏性操作;不提供真实凭据、私钥、生产 IP、客户域名或未脱敏 PCAP;不把「能 ping 通」等同于业务正常;不推荐已弃用的 SSL/TLS 版本与弱算法。

高频面试题 ​

二、目标读者与阅读入口 ​

读者关注点推荐入口
计算机网络初学者建立分层与端到端心智01 → 02 → 03
后端 / 应用开发工程师套接字、DNS、TCP/UDP、HTTP、TLS、RPC 与 WebSocket04 → 12 → 13 → 15 → 16 → 17 → 18
测试工程师连接、超时、重试、丢包、乱序、限速、故障注入13 → 14 → 20
网络 / 运维工程师二层三层、IP、路由、DHCP 与 NAT05 → 06 → 07 → 10 → 19
SRE / 站点可靠性工程师时延、丢包、连接、DNS、TLS 与应用链路03 → 09 → 13 → 15 → 17 → 20

三、完整目录 ​

知识库采用一个总入口 + 20 个连续主题目录 + 一份术语表的结构。范围以小林 coding《图解网络》当前目录为覆盖基线,并保留理解这些主题所需的协议背景、验证实验和工程边界;不再扩展原计划中的云网络、Kubernetes、VPN 等独立章节。

编号主题一句话说明
01网络基础、发展史与互联网结构目标、历史、ISP 层级、标准组织、RFC 生命周期
02OSI 与 TCP/IP 分层模型分层、封装、解封装、跨层交互、四类平面
03性能指标、编码与报文剖析带宽/时延/吞吐/抖动/丢包/BDP、大小端、校验和
04网卡、操作系统网络栈与套接字驱动/队列/中断/DMA/卸载、socket、阻塞与超时
05以太网、交换与 VLAN帧、MAC、交换学习、广播域、802.1Q、STP
06ARP、NDP 与二层弹性ARP、IPv6 邻居发现、DAD、链路聚合、二层环路
07IPv4 编址与子网划分报文、CIDR、子网、最长前缀匹配、特殊地址
08IPv6 与双栈地址/前缀、扩展头、ICMPv6、SLAAC、DHCPv6、迁移
09ICMP、MTU 与路径发现ICMPv4/v6、PMTUD、黑洞、ping/traceroute
10路由基础路由表、静态/默认路由、策略路由、ECMP、DV/LS
11OSPF、IS-IS 与 BGP定位、核心机制、AS、iBGP/eBGP、路由安全
12UDP 与应用层可靠性报文、无连接语义、应用层可靠性、适用边界
13TCP 连接与状态机三次握手/四次挥手、队列、TIME_WAIT、SYN Cookie
14TCP 可靠传输、流控与拥塞控制重传/SACK/滑动窗口/慢启动/拥塞避免/算法
15DNS 名称解析与安全名称空间、递归/迭代、缓存 TTL、记录、DoT/DoH/DNSSEC
16HTTP 语义、缓存与版本演进1.0/1.1/2/3、方法/状态码/头部/缓存、多路复用
17TLS、PKI 与 HTTPS1.2/1.3 握手、证书链、SNI/ALPN、mTLS、0-RTT
18应用交付:RPC、WebSocket、代理、负载均衡与 CDNHTTP/RPC 边界、WebSocket、正反向代理、四/七层 LB、CDN
19DHCP、NAT 与连接跟踪DHCPv4/v6、SNAT/DNAT/PAT/Hairpin、conntrack、CGNAT
20实验、抓包与学习方法统一实验、tcpdump、故障注入、学习路径与绘图方法
术语表Glossary中英文对照与一句话定义

四、章节学习目标与依赖关系 ​

依赖关系要点:

  • 必修主干:01 → 02 → 03 是全书地基,任何读者都应先读。
  • 主机与二层:04 → 05 → 06 建立「一根网线之内」的通信心智。
  • 网络层:07(IPv4)是 08(IPv6)、09(ICMP/MTU)、10(路由)的共同前置。
  • 传输层:13(TCP 连接)是 14(拥塞控制)、15(DNS 走 UDP/TCP)与 16(HTTP over TCP)的前置。
  • 应用主干:15(DNS)→ 16(HTTP)→ 17(TLS)构成「打开一个 URL」的完整链路。
  • 验证闭环:20 汇总抓包、故障注入、清理恢复和学习方法,为前面所有章节提供统一验证环境。

五、分阶段学习路线 ​

  • 速成(1 天):01 → 02 → 03 → 09(ping/抓包)→ 13(TCP 握手)→ 15/16/17(打开一个 URL 全过程)。
  • 系统学习(4–6 周):按编号顺序通读,每章完成其「最小可复现实验」。
  • 按场景检索:见每篇文末「检索关键词」与本页「内容覆盖矩阵」,直接跳转。

不同角色的定制路线见第二节的阅读入口表。

六、版本与平台基线 ​

原则:以当前仍广泛部署且受支持的协议版本、Linux 长期支持版本(Long-Term Support,LTS)和常用工具稳定版为基线,并在每篇标注 verified_at。以下为知识库统一基线,个别章节如有差异会单独说明。

类别基线说明
核心协议IPv4(RFC 791)、IPv6(RFC 8200)、TCP(RFC 9293)、UDP(RFC 768)、HTTP/1.1(RFC 9110/9112)、HTTP/2(RFC 9113)、HTTP/3(RFC 9114)、TLS 1.2(RFC 5246)、TLS 1.3(RFC 8446)、DNS(RFC 1034/1035 及后续)涉及报文格式与状态机时以对应 Standards Track RFC 为准
操作系统(实验主体)Linux LTS 内核(示例以较新的 LTS 为基线),使用 iproute2 与 nftables命令与 sysctl 以对应版本 man page / 内核文档为准
差异平台macOS(本机验证环境为 macOS 26.6.2)、Windowsnetns、ss、ip、tc 等 Linux 专属工具在 macOS/Windows 不可用,差异单独说明
常用工具iproute2、ping、traceroute/tracepath、mtr、dig、curl、openssl、ss、nc、tcpdump、Wireshark、nftables、tc netem、iperf3记录版本与采样参数;本机可用工具见第八节

本机验证环境说明:本知识库部分实验在 macOS 26.6.2 上执行(curl 8.7.1、LibreSSL 3.3.6、DiG 9.10.6),用于验证 dig/curl/openssl 类客户端命令与真实公网可路由域名(IANA 保留的文档域名 example.com)的交互。需要 Linux 网络命名空间、ip、ss、tc、nftables 的实验在 macOS 无法执行,均标记为「未在本环境执行」,并给出可在 Linux 复现的完整命令。

七、统一术语、地址、命令与写作规范 ​

1、术语规范 ​

  • 首次出现重要术语时附「中文(English,缩写)」,例如最大传输单元(Maximum Transmission Unit,MTU)、往返时间(Round-Trip Time,RTT)、传输层安全协议(Transport Layer Security,TLS)。
  • 协议名、字段名、命令、接口和 API 保留原文;解释、注释与正文使用中文。
  • 全库统一术语见术语表。

2、地址与域名规范(强制) ​

实验一律使用文档专用、不可路由到真实业务的保留资源,避免误伤真实网络:

用途使用范围来源
IPv4 文档地址192.0.2.0/24、198.51.100.0/24、203.0.113.0/24RFC 5737
IPv6 文档地址2001:db8::/32RFC 3849
私有地址(实验拓扑)10.0.0.0/8、172.16.0.0/12、192.168.0.0/16RFC 1918
文档域名*.example、example.com / example.net / example.orgRFC 2606 / IANA 保留
私有 AS 号64512–65534(16 位)RFC 6996

联网验证例外:需要真实公网响应时,只使用 IANA 官方保留、可安全访问的 example.com(及其 A/AAAA),不接触任何真实业务域名或客户资产。

3、地址规划模板(统一实验拓扑) ​

角色接口IPv4IPv6
clientveth-c192.0.2.2/242001:db8:2::2/64
router(client 侧)veth-rc192.0.2.1/242001:db8:2::1/64
router(server 侧)veth-rs198.51.100.1/242001:db8:100::1/64
serverveth-s198.51.100.2/242001:db8:100::2/64

4、命令与图表规范 ​

  • 命令一律使用带语言标识的代码块(如 bash)。
  • 协议字段使用表格,至少含:字段名称、位宽/长度、取值、语义、生成方、接收方处理、抓包显示方式、常见异常。
  • 涉及封装、建连、解析、路由、NAT、TLS、负载均衡、容器网络与故障处理时,优先使用 Mermaid 拓扑图 / 流程图 / 时序图 / 状态图,并配文字说明。
  • 涉及选型(协议、路由方案、代理、负载均衡、抓包工具)时使用对比表,至少含:适用场景、工作层次、实现方式、优点、限制、性能影响、安全风险、运维复杂度、替代方案。

5、每篇文档结构 ​

每篇主题文档尽量包含:标题、内容摘要、难度、适用标准版本与核验日期、适用平台与工具、前置知识、概念与设计动机、所属层次与相邻协议、使用/不适用场景、报文格式或状态机或数据路径、正常时序、异常与失败路径、最小可复现实验(拓扑+地址+命令+预期输出+抓包特征)、错误示例、测试与验证、性能影响、安全风险与加固、版本/平台/厂商差异、常见问题、清理与恢复、关联章节、检索关键词、权威来源。

八、实验、抓包与故障注入流程 ​

1、统一隔离实验拓扑 ​

全库实验基于同一套隔离拓扑(Linux 网络命名空间 / 容器),不依赖生产网络:

完整创建、配置、验证与清理命令见 20 实验与故障注入,其中包含一个可运行的统一实验项目:客户端/路由器/服务端拓扑、IPv4+IPv6 地址与转发、TCP 服务、UDP 服务、一次 DNS 查询、一次 HTTP/TLS 请求、一份受控 PCAP、一次延迟/丢包故障注入与完整清理。

2、抓包安全与脱敏(强制) ​

  • 抓包前必须说明授权、隐私、敏感数据范围、存储位置、脱敏与销毁要求。
  • 抓包必须限定接口、范围、时长或包数,避免无限捕获:
bash
sudo tcpdump -i any -nn -s 0 -c 200 -w experiment.pcap 'host 192.0.2.20'
  • PCAP、日志与流记录在写入知识库前,必须删除或掩码 IP、域名、Cookie、Token、证书主体与业务负载。
  • 抓包结论必须记录:抓包点、过滤条件、时间范围、丢包统计、时钟来源与关键帧编号。

3、故障注入与恢复(强制) ​

  • 故障注入优先使用隔离环境中的 tc netem,并在实验后清理:
bash
sudo tc qdisc add dev eth0 root netem delay 100ms loss 1%
sudo tc qdisc del dev eth0 root
  • 路由、防火墙、DNS 与 NAT 变更必须说明风险、回滚与防失联(带外访问)方案;远程连接中不得未经保护直接清空防火墙、默认路由或管理接口配置。
  • 执行需要 root、CAP_NET_ADMIN、CAP_NET_RAW 或云账号权限的操作前,必须先说明权限与风险。

九、测试与验证说明 ​

每个模块完成前须验证:

  1. 协议字段与状态机是否与对应 RFC/IEEE 标准一致。
  2. 命令是否适用于标注的操作系统、工具与版本。
  3. 实验拓扑能否创建与清理;正常路径是否按预期工作。
  4. 失败注入是否产生可解释、可重复的现象。
  5. 抓包、日志、指标与命令输出是否共同支持结论。
  6. 是否说明权限、副作用、风险与恢复方式。
  7. 是否混淆「标准要求」与「具体实现」,是否把相关性误当因果。
  8. 内部链接、术语、地址规划与目录编号是否一致,是否适合 RAG 切分。

实验验证至少覆盖:命令退出状态与关键输出、接口地址/链路/邻居表、路由查找结果与实际路径、监听端口与套接字状态、抓包中的协议层次/五元组/标志位/序列号/时间、应用层响应、防火墙/NAT 计数器与连接跟踪、故障注入前后指标对比、实验后的资源清理。

十、内容维护规则 ​

  • 版本敏感内容必须记录适用版本、已知差异、弃用状态与迁移注意事项,并更新 verified_at。
  • 不得编造不存在的 RFC、协议字段、端口、命令参数、内核参数、设备能力或云服务功能;无法确认的内容标记「待验证」,并给出权威查询路径或最小实验。
  • 不得把 OSI 描述成互联网必须严格遵守的调用栈;不得把「能 ping 通」等同于业务正常;不得把 ICMP 描述为可安全全部禁用;不得把 UDP 描述为「绝对不可靠 / 永远比 TCP 快」;不得把 TCP 描述为消息协议;不得混淆 TCP Keepalive、HTTP Keep-Alive 与应用层心跳。
  • 不得仅凭单侧抓包断言中间路径唯一根因;不得把 traceroute 单向路径当作完整双向业务路径与精确链路时延。
  • 不得在无基线与证据时直接调大缓冲区/队列/重试/超时;不得把重试当作所有网络错误的默认解法;不得只用平均值分析时延与丢包。

十一、权威资料引用规范 ​

资料来源优先级(高 → 低):

  1. IETF RFC / Internet-Draft 的正式状态页与勘误。
  2. IEEE 802 标准及官方材料。
  3. IANA 协议参数、端口与地址注册表。
  4. W3C、WHATWG、CA/Browser Forum 等规范组织。
  5. Linux Kernel、iproute2、nftables、Wireshark 等官方文档与源码。
  6. 操作系统、网络设备、浏览器、云厂商官方文档。
  7. CERT、CVE、NVD 与厂商安全公告。
  8. 维护良好的开源项目官方文档。
  9. 经过交叉验证的高质量工程资料。

涉及协议格式/状态机必须查对应 Standards Track RFC 或 IEEE 标准;涉及端口号/协议号/媒体类型/DNS 参数必须查 IANA 注册表;涉及 Linux 命令/内核/sysctl 必须查对应版本 man page 或内核文档;涉及安全漏洞必须核验 CVE、受影响版本、攻击前提与官方修复公告。不得仅依据搜索摘要、转载文章或问答网站写入协议/版本敏感结论。

十二、覆盖范围 ​

知识库已按完整章节边界收敛为 01~20,全部章节均已交付,不再保留未实现的扩展章节或占位链接。正文不会为缩短篇幅而删除必要的实验、抓包证据、失败路径、安全说明、回滚步骤或验证结果。

已交付内容覆盖矩阵 ​

成功标准主题(节选自 Prompt 第四节)归属章节
网络目标/历史/互联网结构/标准组织/RFC 生命周期01
OSI/TCP-IP、分层封装解封装、跨层交互02
端到端/逐跳、控制/数据/转发/管理平面02
拓扑/带宽/吞吐/时延/RTT/抖动/丢包/BDP03
比特字节/大小端/进制/校验和/单位换算03
网卡/驱动/队列/中断/DMA/卸载/网络栈04
以太网帧/MAC/EtherType/MTU/FCS、交换/VLAN/STP、无线基础05、06
ARP/NDP/DAD/邻居缓存06
IPv4 报文/CIDR/子网/最长前缀/特殊地址、分片/PMTUD07、09
ICMPv4/v6、ping/traceroute09
IPv6/前缀/扩展头/SLAAC/DHCPv6/双栈08
路由表/策略路由/ECMP/静态默认路由/DV/LS、RIP/OSPF/IS-IS/BGP、AS/路由安全10、11
单播/广播/组播/任播10
UDP 报文/无连接/应用层可靠性12
TCP 报文/四元组/三次握手四次挥手/状态机/队列/TIME_WAIT13
TCP 重传/乱序/滑动窗口/流控/拥塞控制/算法/Nagle/SACK/TFO、SYN Flood/端口耗尽14
套接字/阻塞非阻塞/超时/背压/连接池04、14
QUIC/HTTP316
DNS 名称空间/递归迭代/缓存 TTL/记录/DoT DoH DNSSEC EDNS/安全15
HTTP 版本/方法/状态码/头部/缓存/多路复用/队头阻塞/Cookie/CORS16
TLS 1.2/1.3/握手/密码套件/记录层/会话恢复、PKI/证书链/SAN/SNI/OCSP、HTTPS/ALPN/HSTS/mTLS/0-RTT17
HTTP 与 RPC、轮询/SSE/WebSocket、代理与应用交付边界18
DHCPv4/v6、NAT/NAPT/SNAT/DNAT/Hairpin/conntrack、NAT 穿透/STUN/TURN/ICE/CGNAT19
tcpdump、受控 PCAP、故障注入、完整清理、学习与网络图绘制20

参考站逐项覆盖审计 ​

成功标准指定的参考站为小林 coding《图解网络》。下表按 2026-09-07 可见目录逐项映射,目的是防止只覆盖大类、遗漏边界问题。参考站用于主题完整性校验和表达启发;协议结论仍以 RFC、IEEE、IANA、Linux 内核与工具官方文档为准,不复制原文。

参考站条目本知识库承载章节覆盖重点
图解网络介绍本页目标读者、阅读顺序、质量边界、反馈与维护
2.1 TCP/IP 网络模型有哪几层?02OSI/TCP-IP、封装解封装、分层边界
2.2 键入网址到网页显示,期间发生了什么?04~10、13、15~18DNS、协议栈、MAC/交换、路由、TCP/QUIC、TLS 与 HTTP 的端到端链路
2.3 Linux 系统是如何收发网络包的?04、20socket、协议栈、驱动/NIC、队列、软中断、卸载与观测
3.1 HTTP 常见面试题16语义、方法、状态码、缓存、版本与问题推理
3.2 HTTP/1.1 如何优化?03、16、18持久连接、并发、缓存、压缩、代理、容量与测量
3.3 HTTPS RSA 握手解析17TLS 1.2 静态 RSA 历史流程、限制与弃用边界
3.4 HTTPS ECDHE 握手解析17ECDHE、前向保密、TLS 1.2/1.3 握手
3.5 HTTPS 如何优化?03、17、18TLS 1.3、会话恢复、证书链、连接复用、边缘终止
3.6 HTTP/2 牛逼在哪?16frame/stream、HPACK、多路复用、流控与 TCP 队头阻塞
3.7 HTTP/3 强势来袭12、16、17QUIC、TLS 1.3、QPACK、连接迁移、UDP 回退
3.8 既然有 HTTP,为什么还要有 RPC?18语义、IDL、序列化、服务发现、连接、截止时间与重试
3.9 既然有 HTTP,为什么还要有 WebSocket?18轮询/长轮询、握手、frame、心跳、代理与适用场景
4.1 TCP 三次握手与四次挥手面试题13报文、状态机、握手/关闭、队列与问题推导
4.2 TCP 重传、滑动窗口、流量控制、拥塞控制14ACK/SACK/RTO、rwnd/cwnd、经典与现代算法
4.3 TCP 实战抓包分析13、14、20过滤、握手/重传/关闭证据、序列号相对化
4.4 TCP 半连接队列和全连接队列13SYN/accept 队列、backlog、指标与溢出定位
4.5 如何优化 TCP?03、14基于 RTT/BDP/丢包/拥塞算法的证据化优化
4.6 如何理解 TCP 是面向字节流协议?13消息边界、粘包误区、长度前缀与 delimiter
4.7 初始化序列号为什么不同?13旧报文隔离、预测风险与实现生成策略
4.8 SYN 报文什么情况下会被丢弃?13、20队列、防火墙、反向路径过滤、资源与策略证据
4.9 已建立连接收到 SYN 会发生什么?13、20RFC 状态机、Challenge ACK、抓包与实现差异
4.10 收到乱序 FIN 会如何处理?13、14、20FIN 的序列空间、乱序缓存、累计确认
4.11 TIME_WAIT 收到 SYN 会发生什么?13、20四元组、序列号校验、时间戳与实现差异
4.12 一端断电和进程崩溃有什么区别?13、20FIN/RST/静默失联、重传、Keepalive 与应用恢复
4.13 拔掉网线后 TCP 连接还存在吗?13、20内核状态、重传超时、链路恢复与应用感知
4.14 tcp_tw_reuse 为什么默认关闭?13TIME_WAIT 安全边界、NAT/时间戳风险、版本差异
4.15 TLS 和 TCP 能同时握手吗?17、18TLS over TCP、TCP Fast Open、TLS 1.3/0-RTT 与 QUIC
4.16 TCP Keepalive 和 HTTP Keep-Alive 一样吗?04、13、16内核探活、连接复用、应用心跳三者边界
4.17 TCP 协议有什么缺陷?13、14、16建连时延、队头阻塞、迁移困难与 QUIC 取舍
4.18 如何基于 UDP 实现可靠传输?12、14、16序列/确认/重传/拥塞控制,以及 QUIC 的成熟实现
4.19 TCP 和 UDP 可以使用同一个端口吗?04、12、13socket 由协议族/地址/端口等共同标识
4.20 服务端没有 listen 会怎样?13、20RST/超时边界、策略设备影响与抓包验证
4.21 没有 accept 能建立 TCP 连接吗?13内核握手与应用 accept 解耦、队列耗尽
4.22 使用 TCP 数据一定不会丢吗?13、14TCP 连接内可靠性与应用崩溃/确认/持久化边界
4.23 四次挥手可以变成三次吗?13、20ACK 与 FIN 合并、时序条件、抓包判断
4.24 序列号和确认号如何变化?13、14、20SYN/FIN 占序列空间、载荷长度与累计 ACK
5.1 IP 基础知识全家桶07~11IPv4/IPv6、编址、分片、ICMP、路由
5.2 ping 的工作原理09、20ICMP Echo、邻居/路由、RTT 与权限差异
5.3 断网还能 ping 127.0.0.1 吗?04、07、09loopback 本机路径、接口状态与实验验证
6.1 计算机网络怎么学?本页、20依赖顺序、实验驱动、证据化学习
6.2 画图经验分享02、20分层图、时序图、状态图、数据路径图的选型与规范

覆盖判定规则:表中“映射到章节”不等于仅出现关键词。对应章节必须解释机制、边界和验证方法。若参考站后续新增条目,以该站目录和本表的 verified_at 为基线增量维护。

已知限制与未验证项 ​

  • 环境限制:本机为 macOS 26.6.2,无 ip/ss/tc/nftables/Linux netns。所有 Linux 命名空间类实验(含 20 统一实验项目)标记为「未在本环境执行」,命令已按 Linux LTS + iproute2 编写,待在 Linux 环境复现。
  • 已在本环境验证:dig(DNS A/AAAA/NS 查询)、openssl s_client(TLS 1.3 握手与证书链)、curl(HTTP/1.1 与 HTTP/2、时延分阶段)针对 IANA 保留域名 example.com 的交互,输出用于 03/15/16/17 章节的抓包与时延分析示例。
  • RFC 字段核验:报文字段与状态机以对应 RFC 为准编写;如与个别实现观测不一致,正文会同时记录规范要求与实现差异,暂无法逐条联网核验的标记「待验证」。

关联章节 ​

检索关键词 ​

计算机网络知识库 OSI TCP/IP 端到端路径 分层封装 网络实验拓扑 抓包脱敏 故障注入 RAG 网络知识源

权威来源 ​

  • IETF RFC 编辑器与 Datatracker(RFC 状态、勘误)
  • IANA 协议参数、端口与地址注册表
  • IEEE 802 标准
  • Linux Kernel / iproute2 / nftables / Wireshark 官方文档
  • CA/Browser Forum、W3C、WHATWG 规范
  • CVE / NVD / CERT 安全公告

本页为知识库设计说明与总入口,verified_at: 2026-09-07。各主题文档以自身 frontmatter 的 verified_at 为准。

ICP 备案号待补充 · Gitee 主页