【网络】OSI模型 与 TCP/IP模型 对比
一、OSI模型
OSI模型包含7个层次,从下到上分别是:
1. 物理层(Physical Layer)
- 功能:处理与电子设备物理接口相关的细节(如电压、引脚布局、同步,等等)。
- 协议:以太网物理标准(如Ethernet 10BASE-T, 100BASE-TX等)、光纤(如SONET/SDH)。
2. 数据链路层(Data Link Layer)
- 功能:建立、维护和终结节点间的链路;错误检测与修正。
- 协议:以太网(Ethernet)、PPP(点到点协议)、STP(生成树协议)、ARP(地址解析协议)。
3. 网络层(Network Layer)
- 功能:负责数据封包的路由选择。
- 协议:IP(Internet Protocol)、ICMP(Internet Control Message Protocol)、IGMP(Internet Group Management Protocol)。
4. 传输层(Transport Layer)
- 功能:提供可靠或不可靠的传输,并进行流量控制。
- 协议:TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)。
5. 会话层(Session Layer)
- 功能:建立、管理和终止会话。
- 协议/服务:NetBIOS、SMB(Server Message Block)、RPC(Remote Procedure Call)。
6. 表示层(Presentation Layer)
- 功能:确保信息已经正确的被接收节点理解,可以参与数据格式转换。
- 协议/格式:JPEG、ASCII、EBCDIC、TIFF、GIF、PICT、XML、MIME、MPEG。
7. 应用层(Application Layer)
- 功能:允许访问OSI环境的手段,使用户能够接入网络。
- 协议/服务:HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)、DNS(Domain Name System)。
二、TCP/IP模型
TCP/IP模型通常被描述为四个层次结构,有时候也被称作五层结构(加上物理层和数据链路层作为单独的层)。下面按照四层结构介绍:
1. 链路层(Link Layer)
- 对应OSI模型的物理层和数据链路层。
- 功能:主管通过物理网络媒介发送和接收数据。
- 协议:Ethernet、PPP、ARP、ATM。
2. 网络层(Internet Layer)
- 对应OSI模型的网络层。
- 功能:选择和管理数据包通过网络的路径(路由)。
- 协议:IP、ICMP、IGMP、IPsec。
3. 传输层(Transport Layer)
- 对应OSI模型的传输层。
- 功能:提供端对端或主机到主机的通信。
- 协议:TCP、UDP。
4. 应用层(Application Layer)
- 对应OSI模型的会话层、表示层和应用层。
- 功能:允许访问网络服务,支持各种应用。
- 协议/服务:HTTP、FTP、SMTP、DNS、Telnet、SSH。
OSI模型更加严谨和细化,TCP/IP模型更加流行。
三、代码示例
# OSI模型示例代码 # 导入所需的库
import socket # 创建套接字(传输层)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定地址和端口(网络层)
sock.bind(('localhost', 8000)) # 监听连接(传输层)
sock.listen(1) while True: # 接受连接(传输层) connection, address = sock.accept() # 接收数据(应用层) data = connection.recv(1024) # 处理数据(应用层) # 这里可以解析HTTP请求、处理FTP文件传输等 # 发送响应(应用层) response = b"Hello from server!" connection.sendall(response) # 关闭连接(传输层) connection.close()
上述示例代码展示了传输层和应用层的一些操作。在实际应用中,还需要处理更低层次(如网络层、数据链路层、物理层)的细节,这通常由操作系统和网络库透明地处理。
相关文章:
【网络】OSI模型 与 TCP/IP模型 对比
一、OSI模型 OSI模型包含7个层次,从下到上分别是: 1. 物理层(Physical Layer) - 功能:处理与电子设备物理接口相关的细节(如电压、引脚布局、同步,等等)。 - 协议:以…...
[Docker]记一次使用jenkins将镜像文件推送到Harbor遇到的问题
系统版本: Ubuntu 18.01 私服: Harbor Docker版本: Docker version 18.09.5 首先需要明确的是,即在harbor里项目设置为公开,但是在push的时候还是需要用户验证的,即需要使用docker登录 docker login harbo…...
龙芯 Loongson 架构 UOS 系统编译 Qt 5.15.2 源码
背景 需要在龙芯(Loongson)CPU,UOS 系统下,进行国产化项目适配,UOS 自带 Qt 5.11,但是版本过老,与目前基于 Qt 5.15.2 项目存在不兼容情况,故需要自行编译 Qt 5.15.2开发环境。 软…...
【IDEA 使用easyAPI、easyYapi、Apifox helper等插件时,导出接口文档缺少代码字段注释的相关内容、校验规则的解决方法】
问题 IDEA 使用easyAPI、easyYapi、Apifox helper等插件时,导出的接口文档上面,缺少我们代码里的注解字段,如我们规定了NOTNULL、字段描述等。 问题链接,几个月之前碰到过,并提问了,到现在解决,…...
asp.net在线考试系统+sqlserver数据库
asp.net在线考试系统sqlserver数据库主要技术: 基于asp.net架构和sql server数据库 功能模块: 首页 登陆 用户角色 管理员(对老师和学生用户的增删改查),老师(题库管理 选择题添加 选择题查询 判断题添加…...
CRM按行业细分的重要性
很多企业和销售会诟病CRM系统不够贴合行业、功能也不够细分和实用。因为各行各业的业务千差万别,所以功能完备、使用满意度高的CRM一定是与不同行业业务场景高度匹配的,是深度行业化的。因此行业化是CRM发展的重要趋势之一,为什么CRM一定要走…...
自动化测试测试框架封装改造
PO模式自动化测试用例 PO设计模式是自动化测试中最佳的设计模式,主要体现在对界面交互细节的封装,在实际测试中只关注业务流程就可以了。 相较于传统的设计,在新增测试用例后PO模式有如下优点: 1、易读性强 2、可扩展性好 3、…...
C#可空类型
在C#中,可空类型(Nullable types)允许值类型(比如int, double, bool等)接受null值。这是特别有用的,因为在很多应用程序中,如数据库交互和数据解析,值类型的字段可能需要表示没有值&…...
R语言:利用biomod2进行生态位建模
在这里主要是分享一个不错的代码,喜欢的可以慢慢研究。我看了一遍,觉得里面有很多有意思的东西,供大家学习和参考。 利用PCA轴总结的70个环境变量,利用biomod2进行生态位建模: #------------------------------------…...
如何学习算法
在不知其所以然的情况下,算法只是一堆离散的机械步骤,缺少背后的思想的支撑, 这些步骤之间就没有一个本质层面上的关联(先知亚里士多德早就指出:学习即联接)。 所以就跟背历史书也没多大区别。然而…...
MFC/QT 一些快要遗忘的细节:
1:企业应用中,MFC平台除了用常见的对话框模式还有一种常用的就是单文档模式, 维护别人的代码,不容易区分,其实找与程序同名的cpp就知道了,比如项目名称为 DoCMFCDemo,那么就看BOOL CDocMFCDemoApp::InitI…...
常见的面试算法题:阶乘、回文、斐波那契数列
1.阶乘算法 Factorial 例如:给出数字5,对其以下的的每个数字相乘,结果等于120 解:递归 Recursive function factorial(n) {// 如果n为0或1,阶乘是1if (n 0 || n 1) {return 1;}// 否则,返回n乘以n-1的…...
微服务 Spring Cloud 7,Nacos配置中心的Pull原理,附源码
目录 一、本地配置二、配置中心1、以Nacos为例:2、Pull模式3、也可以通过Nacos实现注册中心 三、配置中心提供了哪些功能四、如何操作配置中心1、配置注册2、配置反注册3、配置查看4、配置变更订阅 五、主流的微服务注册中心有哪些,如何选择?…...
c#Nettonsoft.net库常用的方法json序列化反序列化
Newtonsoft.Json 是一个流行的 JSON 操作库,用于在 .NET 应用程序中序列化、反序列化和操作 JSON 数据。下面是 Newtonsoft.Json 常用的一些方法: 序列化对象为 JSON 字符串: string json JsonConvert.SerializeObject(obj);var obj new {…...
力扣刷题-二叉树-二叉树的高度与深度
二叉树最大深度 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3 递归法 本题可以使用前序(中左…...
Vue3新增加的css语法糖
一、deep <template><div class""><el-input /> </div> </template> <style scoped> /* 样式穿透 */ :deep input {background: red; } </style> 二、slotted 子组件修改插槽里面的样式 <template><div clas…...
Windows安装Vmware 虚拟机
目录 一、Vmware 虚拟机介绍 二、Vmware 虚拟机的三种网络模式 2.1桥接模式 2.2仅主机模式 2.3NAT 网络地址转换模式 三、Vmware 虚拟机的安装 一、Vmware 虚拟机介绍 VMware Workstation Pro 是一款可以在个人电脑的操作系统上创建一个完全与主机操作系统隔离的 虚拟机&…...
uniapp地图手动控制地图scale
前言 首次使用uniapp开发地图过程中,发现uniapp地图居然没有提供手动控制地图scale的方法,这个也着实没有想到,查了半天资料,也终于找到一个方法能够比较好的控制scale,做个记录。 代码 要定义一个地图mapÿ…...
Kotlin学习之函数
原文链接 Understanding Kotlin Functions 函数对于编程语言来说是极其重要的一个组成部分,函数可以视为是程序的执行,是真正活的代码,为啥呢?因为运行的时候你必须要执行一个函数,一般从主函数入口,开始一…...
若依启动步骤
1.创建数据库 2.启动redis 3.改后端的数据库连接配置 4.配置redis redis的地址:cmd中ipconfig命令查看 6.启动后端:如下 7.启动前端ruoyi-ui中 先运行npm install,再npm run dev。项目就启动成功了。 用户名:admin 密码&#x…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...
论文阅读:Matting by Generation
今天介绍一篇关于 matting 抠图的文章,抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法,已经有很多的工作和这个任务相关。这两年 diffusion 模型很火,大家又开始用 diffusion 模型做各种 CV 任务了&am…...
