跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
TCP IP协议族
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
{{DISPLAYTITLE:TCP/IP协议族}} '''TCP/IP协议族'''(Transmission Control Protocol/Internet Protocol Suite)是互联网通信的基础协议集合,定义了数据如何在网络中传输和路由。它不仅包含TCP和IP协议,还涵盖了一系列相关协议(如UDP、ICMP等),构成了现代互联网的通信框架。 == 概述 == TCP/IP协议族由美国国防部高级研究计划局(DARPA)在20世纪70年代开发,最初用于ARPANET。其核心设计理念是''分层架构'',通过将复杂功能分解到不同层级实现模块化。协议族分为四层(或五层,根据模型不同): <mermaid> graph TD A[应用层] -->|HTTP/FTP/SMTP| B[传输层] B -->|TCP/UDP| C[网络层] C -->|IP/ICMP| D[网络接口层] </mermaid> == 核心协议与功能 == === 1. 网络层(Internet Layer) === 核心协议:'''IPv4/IPv6'''、'''ICMP'''、'''ARP''' * '''IP协议''':无连接的包交换协议,通过IP地址实现主机寻址。数据包结构示例: <syntaxhighlight lang="python"> # Python模拟IP包头结构 from dataclasses import dataclass @dataclass class IPHeader: version: int = 4 # IPv4 ihl: int = 5 # 头部长度 tos: int = 0 # 服务类型 total_length: int = 0 # 总长度 identification: int = 0 # 标识符 flags: int = 0 # 分片标志 ttl: int = 64 # 生存时间 protocol: int = 6 # TCP=6, UDP=17 checksum: int = 0 # 校验和 src_addr: str = "0.0.0.0" dst_addr: str = "0.0.0.0" </syntaxhighlight> === 2. 传输层(Transport Layer) === 核心协议:'''TCP'''、'''UDP''' {| class="wikitable" |+ TCP vs UDP对比 ! 特性 !! TCP !! UDP |- | 连接方式 || 面向连接 || 无连接 |- | 可靠性 || 可靠传输(确认/重传) || 尽力交付 |- | 流量控制 || 滑动窗口机制 || 无 |- | 典型应用 || HTTP/HTTPS、SSH || DNS、视频流 |} === 3. 应用层(Application Layer) === 常见协议: * '''HTTP/HTTPS''':网页传输 * '''FTP''':文件传输 * '''DNS''':域名解析 * '''SMTP/POP3''':电子邮件 == 关键机制详解 == === TCP三次握手 === 建立可靠连接的过程: <mermaid> sequenceDiagram participant Client participant Server Client->>Server: SYN (seq=x) Server->>Client: SYN-ACK (seq=y, ack=x+1) Client->>Server: ACK (seq=x+1, ack=y+1) </mermaid> 数学建模:设初始序列号为<math>X</math>和<math>Y</math>,则确认号为<math>ack = seq_{received} + 1</math> === IP路由过程 === 路由表查询示例(Linux): <syntaxhighlight lang="bash"> $ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 </syntaxhighlight> == 实际应用案例 == '''案例1:网页访问过程''' 1. DNS查询(UDP 53端口) 2. TCP三次握手建立HTTPS连接 3. HTTP请求/响应传输 4. TCP四次挥手断开连接 '''案例2:视频会议系统''' * 使用UDP传输实时视频流(容忍丢包但要求低延迟) * 同时使用TCP传输控制信令(如参会者列表变更) == 常见问题 == {{Q&A |问题1=为什么TCP需要三次握手而不是两次? |答案1=主要防止历史重复连接初始化造成的资源浪费。如果只有两次握手,网络延迟导致的重传SYN可能被服务器误认为新连接请求。 |问题2=IPv6相比IPv4的主要改进? |答案2=1) 地址空间从32位扩展到128位 2) 简化头部结构 3) 原生支持IPsec 4) 改进多播和任播支持 }} == 进阶知识 == * '''MTU与分片''':以太网默认MTU=1500字节,超过时需要分片传输 * '''NAT穿透''':解决私有IP与公网IP映射问题 * '''QoS机制''':通过TOS字段实现流量优先级控制 [[Category:计算机网络]] [[Category:TCP/IP协议族]] [[Category:计算机科学]] [[Category:面试技巧]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
该页面使用的模板:
模板:Q&A
(
编辑
)