TCP/IP

发布于:2025-07-30 ⋅ 阅读:(19) ⋅ 点赞:(0)

TCP/IP 模型总览

TCP/IP 模型是现实中广泛使用的网络模型,共四层,对应 OSI 七层模型如下:

TCP/IP 层级

对应 OSI 层级

功能

应用层

应用层、表示层、会话层

提供网络服务(如 HTTP、DNS)

传输层

传输层

提供主机间端到端传输(如 TCP)

网络层

网络层

路由转发、逻辑寻址(如 IP)

网络接口层

数据链路层 + 物理层

实际数据的物理传输

TCP/IP 四层详解

🔹 1. 应用层(Application Layer)

  • 作用:直接面向用户,提供网络应用服务。
  • 常见协议

协议

功能说明

HTTP(S)

超文本传输协议(网页访问)

FTP

文件传输协议

SMTP

邮件发送

POP3/IMAP

邮件接收

DNS

域名解析

Telnet/SSH

远程登录

  • 示例:HTTP
    • 请求方法:GET、POST、PUT、DELETE...
    • 状态码:200 OK、301 重定向、404 未找到、500 服务器错误
    • 无状态协议,可以用 Cookie/Session 保持状态

🔹 2. 传输层(Transport Layer)

  • 作用:实现端到端通信,提供数据传输的可靠性或效率保证。
TCP(Transmission Control Protocol)
  • 面向连接,可靠传输(有顺序、有确认、无重复)
  • 三次握手建立连接,四次挥手断开连接
  • 流量控制:接收窗口机制
  • 拥塞控制:慢启动、拥塞避免、快重传、快恢复

三次握手(建立连接)

  1. 客户端发送 SYN(同步)报文
  2. 服务端返回 SYN-ACK
  3. 客户端回复 ACK,连接建立

四次挥手(断开连接)

  1. 客户端发送 FIN,表示要关闭连接
  2. 服务端回复 ACK,确认收到
  3. 服务端也发送 FIN
  4. 客户端再发 ACK,连接彻底关闭
UDP(User Datagram Protocol)
  • 无连接,不可靠,但开销小、速度快
  • 适用于:DNS、视频直播、语音通话、游戏等实时性强场景
  • 没有拥塞控制、流量控制机制

🔹 3. 网络层(Internet Layer)

  • 作用:实现不同主机/网络之间的数据转发和逻辑寻址。
IP(Internet Protocol)
  • 提供逻辑地址(IP地址),实现主机间路由转发
  • IPv4:32位地址,如 192.168.1.1
  • IPv6:128位,解决地址不足问题
  • 是不可靠、无连接的协议,依赖上层 TCP 保证可靠性
ICMP(Internet Control Message Protocol)
  • 网络诊断/错误信息反馈协议
  • 如:ping 命令底层就是 ICMP Echo 请求
ARP(Address Resolution Protocol)
  • IP <--> MAC 地址解析
  • 局域网中使用广播询问“谁是这个 IP”,目标主机回应 MAC 地址

🔹 4. 网络接口层(Link Layer)

  • 作用:负责物理地址的寻址和局域网内数据帧的传输
  • 包括物理传输介质、网卡驱动、MAC 层协议等
  • 常见协议:
    • Ethernet(以太网)
    • Wi-Fi(无线局域网)
  • 数据封装为帧(Frame),使用 MAC 地址作为硬件标识

TCP/IP 安全相关

  • 嗅探攻击:截获明文数据包(尤其是 HTTP)
  • ARP欺骗:局域网内伪造 MAC 地址进行中间人攻击
  • IP欺骗:伪造 IP 地址进行攻击(如 SYN Flood)
  • 防护方法
    • 使用 HTTPS(TLS 加密)
    • 使用防火墙过滤端口
    • 进行子网隔离、防ARP攻击等

三次握手

三次握手目的:

建立可靠连接,确保双方通信能力正常,序列号同步

三次握手的过程:

  1. 第一次握手:客户端向服务端发送一个带有 SYN 标志位的数据包,请求建立连接,同时随机产生一个初始序列号 seq = x
  2. 第二次握手:服务端收到该请求后,确认客户端的 SYN(即 ACK = x + 1),并向客户端发送自己的 SYN 报文段,携带初始序列号 seq = y
  3. 第三次握手:客户端收到服务端的 SYN + ACK 报文后,再次发送 ACK 报文,确认连接建立(ACK = y + 1)。

连接建立后,客户端与服务端即可开始数据传输。

三次握手的原因:

  • 防止历史连接请求导致服务端资源浪费(如延迟或伪造的 SYN 导致的半连接)
  • 确保客户端和服务端收发能力正常
  • 确保双方的初始序列号互相确认,为后续可靠传输打基础

四次挥手

四次挥手目的:

可靠关闭连接,确保双方都已完成数据传输

四次挥手的过程:

  1. 第一次挥手:客户端发送 FIN 报文,请求关闭连接。
  2. 第二次挥手:服务端确认收到该报文,发送 ACK 报文,但此时可能还有数据未发送完毕。
  3. 第三次挥手:服务端数据发送完毕后,也发送一个 FIN 报文,请求断开连接。
  4. 第四次挥手:客户端确认收到服务端的 FIN 报文,发送 ACK 报文,连接彻底关闭。

客户端在发送最终 ACK 后,通常会进入 TIME_WAIT 状态,等待 2 倍的最大报文生存时间(MSL),防止失效报文影响后续连接。

四次挥手的原因:

  • TCP 是全双工协议,双方都需要显式关闭自己的发送通道
  • 服务端可能仍需发送数据,因此 ACK 和 FIN 分开发送更灵活可靠
  • TIME_WAIT 阶段可确保旧连接中的延迟报文不会影响新的连接建立

网站公告

今日签到

点亮在社区的每一天
去签到