互联网协议族TCP/IP

TCP/IP协议工作原理详解

概况

1. 网络接口层(链路层)

负责在本地网络中传输数据帧(如以太网、Wi-Fi)。

协议/技术

作用

Ethernet

有线局域网标准

Wi-Fi (IEEE 802.11)

无线局域网

ARP(地址解析协议)

IP地址 → MAC地址

PPP(点对点协议)

拨号上网、VPN

MAC

媒体访问控制地址(硬件地址)


2. 网络层(互联网层)

负责跨网络寻址和路由,核心是让数据从A主机到B主机。

协议

作用

IP(IPv4 / IPv6)

核心协议:寻址、路由、分包

ICMP

错误报告与诊断(如 ping)

IGMP

多播组管理(如视频会议)

IPsec

加密和认证(VPN常用)


3. 传输层

负责端到端的通信(进程到进程),提供可靠性或实时性。

协议

作用

TCP

可靠、面向连接(网页、邮件)

UDP

无连接、快速(视频、DNS)

SCTP

多流、多路径传输(电信级)

DCCP

不可靠但可拥塞控制(实验性)


4. 应用层

用户直接使用的协议,基于传输层实现具体功能。

协议

作用

默认端口

HTTP / HTTPS

网页浏览

80 / 443

FTP / SFTP

文件传输

21 / 22

SMTP / POP3 / IMAP

邮件发送/接收

25 / 110 / 143

DNS

域名解析

53

DHCP

自动分配IP地址

67/68

SNMP

网络设备管理

161

Telnet / SSH

远程登录

23 / 22

NTP

时间同步

123

MQTT

物联网轻量消息

1883

WebSocket

全双工网页通信

80/443


通俗解释

这四层不是各自独立的“孤岛”,而是一条自上而下的“流水线”—— 每一层都为上一层“包上一层信封”,再把数据交给下一层;接收端则一层层“拆信封”,最终把原始信息交给目标程序。


请求DNS

  1. 应用层
    浏览器调用操作系统解析器,生成 DNS 查询报文(UDP 版 A 记录请求:
    zhihu.com → ?)。
  2. 传输层
    解析器把它交给 UDP,写上源端口 53xxx、目的端口 53,形成一个 UDP 数据报。
  3. 网络层
    操作系统把 UDP 数据报包进 IP 数据报,目的 IP 填本地配置的 DNS 服务器(例如 223.5.5.5)。
  4. 链路层
    再包一层以太网帧,MAC 目的地址填网关路由器的 MAC(通过 ARP 事先拿到)。
    帧变成比特流发出去。
  5. 回包
    路由器转发→DNS 服务器收到→查库→同样四层封装回送:
    zhihu.com → 103.41.167.234
    浏览器拿到 IP 后,才进入前面例子里的“TCP 三次握手”阶段。

2.1 应用层:把“人话”变成报文

  • 浏览器是“HTTP 客户端”,它先把你的 URL 封装成一条 HTTP 请求报文。
  • 如果地址栏是 https,这一报文会被 TLS(属于应用层安全协议) 加密,变成密文。
  • 加密后的字节流往下交,说:“传输层兄弟,请帮我送到知乎服务器的 443 端口。”

2.2 传输层:给字节流“编号、贴标签”

  • 操作系统看到“443 端口”就知道要用 TCP。
  • TCP 把 HTTP 字节流切成一个个 Segment(段),给每段写上序号、端口号、校验和。
  • 这些段再被包成一份份 TCP 报文,然后调用网络层:“请把这份报文送到 103.41.167.234(知乎的 IP)。”

2.3 网络层:给报文“贴邮票、写邮编”

  • 网络层收到 TCP 报文后,再包上一层 IP 头,形成 IP 数据报。
    • 源 IP:你家里的 192.168.1.100
    • 目的 IP:103.41.167.234
    • 协议字段:6,表示“里面装的是 TCP”
  • 如果数据报太大,还会分片;如果跨网段,就根据路由表决定下一跳网关。
  • 之后把数据报交给链路层:“请帮我把这个包发到网关 192.168.1.1。”

2.4 链路层:把比特流“真正发出去”

  • 链路层收到 IP 数据报后,再包上一层 以太网帧头/帧尾(写上进、出网卡的 MAC 地址)。
  • 网卡把帧变成 0/1 电信号(或 Wi-Fi 无线电波),真正冲到网线上。
  • 下一跳路由器收到后,拆链路层头,看到里面是 IP 数据报,继续转发……
  • 经过 N 跳,终于到达知乎服务器。

回包怎么走?

服务器按完全相反的方向一层层封装:
HTTP 响应 → TCP 段 → IP 数据报 → 以太网帧 → 逆向流动回到你的浏览器。
每层只处理自己那一层“信封”里的字段,上层和下层的细节对它完全透明。


总结

“上层调用下层,下层为上层服务;发送端加头,接收端去头;每层只认识自己的信封,却能把整个世界连起来。”

https://github.com/0voice

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值