TCP/IP

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 地址
  • 作用:负责物理地址的寻址和局域网内数据帧的传输
  • 包括物理传输介质、网卡驱动、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 阶段可确保旧连接中的延迟报文不会影响新的连接建立
相关推荐
前与端3 分钟前
前端XSS常见特征与防范措施
安全
拉法豆粉1 小时前
渗透测试与漏洞扫描有什么区别?
网络·安全·web安全
介一安全2 小时前
网络端口号全景解析:从基础服务到特殊应用的完整指南
服务器·网络·web安全·安全性测试·端口
曹莓可爱多2 小时前
常见CMS
网络·安全·web安全
李小咖2 小时前
第2章 cmd命令基础:常用基础命令(2)
windows·网络安全·cmd命令·李小咖·windows基础
段嘉许OvO2 小时前
常⻅CMS漏洞
安全
重装小兔19c2573 小时前
vulhub-Thales靶机练习
安全
厦门辰迈智慧科技有限公司3 小时前
山洪灾害监测预警系统主要涵盖
物联网·安全·自动化·监测
云手机掌柜7 小时前
从0到500账号管理:亚矩阵云手机多开组队与虚拟定位实战指南
数据结构·线性代数·网络安全·容器·智能手机·矩阵·云计算
汽车功能安全啊8 小时前
利用对称算法及非对称算法实现安全启动
java·开发语言·安全