TCP/IP协议的应用层与传输层

news2025/4/4 0:31:43

 TCP/IP协议簇是互联网的核心通信框架,定义了数据如何在网络中封装、寻址、传输和路由(确定数据包从源主机到目标主机的传输路径的过程)。

应用层

直接面向用户和应用,负责实现网络服务的具体功能(如网页浏览、文件传输、电子邮件等)。

传输层

负责端到端的数据传输控制。确保数据可靠、有效到达。

网络层

负责实现跨网络的端到端数据路由与转发。

链路层

负责在物理介质上直接传输数据帧,实现相邻设备间的可靠通信。

表 TCP/IP 协议簇的四层模型

1 应用层

  1. 提供给用户与网络接口。例如:浏览器如何请求网页、邮件客户端如何发送邮件。
  2. 数据格式标准化。规定数据的编码方式(如JSON、XML)、传输格式(如HTTP报文、SMTP命令)。

HTTP

超文本传输协议。无状态协议,依赖Cookie或Session传递及保存状态。

FTP

文件传输,有状态协议。

SMTP

电子邮件

SSH

安全远程登录。

表 应用层的部分协议

1.1 安全机制

TLS/SSL:为HTTP(HTTPS)、SMTP(SMTPS)提供端到端加密。

1.1.1 CSRF

Cross-Site Request Forgery 跨站请求伪造。

攻击场景:恶意网站诱导用户在已登录的目标网站(如银行)上执行非预期的操作(如转账)。

核心漏洞:浏览器保存了目标网站的Cookie(包括Session ID),攻击者利用这个Cookie伪造用户身份发起请求。

防御手段:1)服务端生成唯一Token,嵌入表单或请求头(如X-CSRF-Token),服务端验证请求是否携带有效Token。2)设置Cookie的SameSite=Strict或Lax,限制第三方网站发起请求时携带Cookie。3)检查请求头中的来源是否合法(这个字段能被篡改)。

1.1.2 CORS

Cross-Origin Resource Sharing 跨源资源共享。

浏览器默认会阻止前端脚本跨域访问资源(同源策略),通过在服务端设置HTTP请求头,来明确允许特定域、方法或头部的跨域请求。

特性

CSRF

CORS

攻击类型

利用用户已认证状态发起请求。

绕过同源策略限制访问资源。

浏览器行为

自动携带Cookie。

阻止跨域脚本访问响应数据。

关注点

请求的合法性(是否用户真实意图)。

资源访问的合法性(是否允许跨域)

表 CSRF 与 CORS的对比

2 传输层

TCP

可靠,面向连接(三次握手),头部开销较大,可进行流量控制,拥塞控制。

UDP

不可靠,无连接(无须握手,直接发送数据报),轻量(头部仅8字节)。适合音视频流。

表 传输层的TCP与UDP协议

安全措施:1)通过防火墙过滤端口。2)限制特定端口入站/出站流量。

2.1 TCP 三次握手

确保客户端和服务端双向通信通道的可靠建立,解决网络不可靠性问题(如丢包、重复包、乱序包)。

三次握手流程:

1.客户端 -> 服务端,客户端发送SYN=1(位于TCP报文头部的Flags字段)的报文,携带随机生成的客户端初始序列号seq=x。(SYN,Synchronize,同步位,SYN=1用于表示该报文为连接请求)。

第一次握手验证的是客户端的发送能力。

2.服务端 -> 客户端,服务端发送SYN=1,ACK=1的报文,并携带随机生成的服务端初始序列号seq=y及确认号(期望接收的下一个字节序号)ack=x+1(ACK,Acknowledgment,表示报文携带的确认号有效。)

第二次握手验证的是服务端的接收与发送能力。

3.客户端 -> 服务端,客户端发送ACK的报文,并携带序列号seq=x+1及确认号ack=y+1。

第三次握手验证的是客户端的接收能力。

连接正式建立后,后续的报文seq从x+1开始,且ACK=1。

2.1.2 TCP 四次挥手

是连接终止的标准流程,确保双方安全关闭连接并释放资源,解决数据传输的完整性和网络延迟带来的问题。

四次挥手流程:

  1. 主动关闭方 -> 被动关闭方,发送FIN=1的报文并携带当前序列号seq=u。
  2. 被动关闭方 -> 主动关闭方,发送ACK=1的报文并携带确认号seq=u+1。
  3. 被动关闭方 -> 主动关闭方,发送FIN=1,seq=v(可能携带剩余数据)。
  4. 主动关闭方 -> 被动关闭方,发送ACK=1的报文并携带确认号seq=v+1。

主动方先发送FIN来终止发送方向,但仍可接收数据(处理被动方的剩余数据)。

被动方确认FIN后继续发送剩余数据,最终关闭自己的发送方向(发送FIN)。

2.1.2 HTTP 协议的Keep-Alive

HTTP协议的Keep-Alive(持久连接,通过请求头Connection: keep-alive)是一种优化技术,用于在单个TCP连接上处理多个HTTP请求(避免为每个请求重复三次握手)和响应,从而减少建立和断开连接的开销。

无(短连接)

1)用户访问含10个资源的网页。

2)每个资源需独立完成:TCP三次握手 -> HTTP请求 -> 响应 -> TCP四次挥手。

有(长连接)

  1. 用户访问同一网页。
  2. 仅需1次TCP三次握手,所有资源通过同一连接顺序传输。

表 有无Keep-Alive 的场景分析

实际应用场景:

  1. 静态资源加载,网页包含多个CSS、JS、图片文件,复用连接加载所有资源。
  2. 高频调用内部服务,减少连接开销,提升吞吐量。
  3. 实时消息推送,保持连接活跃,避免频繁重建。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2326804.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

51c自动驾驶~合集15

我自己的原文哦~ https://blog.51cto.com/whaosoft/11720657 #DRAMA 首个基于Mamba的端到端运动规划器(新加坡国立) 运动规划是一项具有挑战性的任务,在高度动态和复杂的环境中生成安全可行的轨迹,形成自动驾驶汽车的核心能…

拼多多 anti-token unidbg 分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 逆向分析 版本7.3-7.4 都试过加密没什…

【Git】5 个分区的切换方式及示例

目录 1. **工作区(Working Directory)**2. **缓存区(Stage/Index)**3. **本地仓库(Local Repository)**4. **远程仓库(Remote Repository)**5. **贮藏区(Stash&#xff0…

Java高频面试之并发编程-02

hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶 面试官:进程和线程的区别是什么? 1. 资源分配与独立性 进程: 独立性:每个进程拥有独立的内存…

openwebui和keycloak集成,使用keycloak的用户名和密码登录

1,实现效果 使用keycloak定义的用户名和密码,直接登录openwebui 2,实现原理 keycloak中用户信息中包含用户名和密码,以及email。 使用keycloak中的用户名和密码登录之后,会用email创建一个openwebui的账号。之后每次…

【区块链安全 | 第八篇】多签机制及恶意多签

部分参考:慢雾科技 文章目录 为什么需要多签多签机制Tron钱包下的恶意多签Tron 钱包多签权限分类Tron 多签机制的运作方式 恶意多签的过程黑客通过多签机制控制账户黑客剥夺用户权限,完全控制账户 恶意多签成因 在区块链中,多签(M…

二月公开赛Web-ssrfme

目录 环境搭建 题目分析 分析代码 解题过程 Redis未授权访问 寻找Flag 环境搭建 进入含有docker-compose.yml的文件内,拉取容器镜像 docker-compose up -d 题目分析 访问容器地址172.25.254.200:8091查看题目 分析代码 url通过GET请求访问界面&#xff0c…

告别枯燥工作,走向自动化

嘿,小伙伴们!今天给你们介绍两款超实用的RPA办公自动化软件,用它们,再也不用像机器一样做重复劳动啦,超省时间! 工具名称:影刀RPA(类似产品,八爪鱼 RPA,操作上…

可信数据空间:构筑安全可控数据流通

前言:可信数据空间是一种数据基础设施,发展可信数据空间是全国及各地数据基础设施建设的重要方面。国内数据空间的探索和实践仍然数据探索阶段。本期分享:可信数据空间构筑安全可控数据流通,包括可信数据空间技术介绍、如何助力数…

Zookeeper特性与节点数据类型

数据结构和监听机制 CP 文件系统形式存储 观察者模式监听节点数据变化、 临时节点客户端超时或发生异常节点就会删除 2888同步数据 3888选举端口 1.什么是Zookeeper ZooKeeper 是一个开源的分布式协调框架,是Apache Hadoop 的一个子项目,主要用来…

处理 Linux 信号:进程控制与异常管理的核心

个人主页:chian-ocean 文章专栏-Linux 前言: 在 Linux 操作系统中,信号是用于进程间通信的一种机制,能够向进程发送通知,指示某些事件的发生。信号通常由操作系统内核、硬件中断或其他进程发送。接收和处理信号是 Li…

【蓝桥杯每日一题】4.1

🏝️专栏: 【蓝桥杯备篇】 🌅主页: f狐o狸x "今日秃头刷题,明日荣耀加冕!" 今天我们来练习二分算法 不熟悉二分算法的朋友可以看:【C语言刷怪篇】二分法_编程解决算术问题-CSDN博客 …

分享系列项目的基础项目

本人分享了一系列的框架项目,它们共同需要依赖这个公共基础,结构如下图所示: 其中: audit: JPA的审计信息基础类auth:认证授权相关类config: 包括redis配置,client中token配置,openai文档配置…

为 MinIO AIStor 引入模型上下文协议(MCP)服务器

Anthropic 最近宣布的模型上下文协议 (MCP) 将改变我们与技术交互的方式。它允许自然语言通信替换许多任务的复杂命令行语法。不仅如此,语言模型还可以总结传统工具的丰富输出,并以人类可读的形式呈现关键信息。MinIO 是世界领先的…

数据结构实验1.1: 顺序表的操作及其应用

这里写自定义目录标题 一、实验目的二、注意事项三、实验内容(一)问题描述(二)基本要求 四,操作步骤(一)使用visual studio集成环境编写程序 五,示例代码六,运行效果 一、…

基于yolov11的汽车损伤检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv11的汽车损伤检测系统是一种先进的计算机视觉技术,旨在快速准确地识别汽车的各种损伤类型。该系统利用YOLOv11模型的强大性能,实现了对车辆损伤的精确检测与分类。 该系统能够识别的损伤类型包括裂纹(crack&#xff…

基于Spring Boot的平面设计课程在线学习平台系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

【JavaEE】MyBatis - Plus

目录 一、快速使用二、CRUD简单使用三、常见注解3.1 TableName3.2 TableFiled3.3 TableId 四、条件构造器4.1 QueryWrapper4.2 UpdateWrapper4.3 LambdaQueryWrapper4.4 LambdaUpdateWrapper 五、自定义SQL 一、快速使用 MyBatis Plus官方文档:MyBatis Plus官方文档…

【2】数据结构的单链表章

目录标题 单链表的定义单链表的初始化单链表的建立头插法创建尾插法创建 查找操作按序号查找按内容查找 插入操作删除操作合并操作 单链表总代码与调试 单链表的定义 结点(Node)的定义:数据域(data)和指针域&#xff…

Linux(十一)fork实例练习、文件操作示例及相关面试题目分享

一、fork实例练习 1、思考下面这段代码的打印结果是什么&#xff1f; #include<stdio.h> #include<unistd.h> #include<assert.h> #include<stdlib.h>int main(){int i0;for(;i<2;i){fork();printf("A\n");} exit(0); }所以一共打印6…