【网络】OSI模型 与 TCP/IP模型 对比

news2024/11/18 21:29:52

一、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()

上述示例代码展示了传输层和应用层的一些操作。在实际应用中,还需要处理更低层次(如网络层、数据链路层、物理层)的细节,这通常由操作系统和网络库透明地处理。

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

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

相关文章

从关键新闻和最新技术看AI行业发展(2023.11.6-11.19第十期) |【WeThinkIn老实人报】

Rocky Ding 公众号:WeThinkIn 写在前面 【WeThinkIn老实人报】旨在整理&挖掘AI行业的关键新闻和最新技术,同时Rocky会对这些关键信息进行解读,力求让读者们能从容跟随AI科技潮流。也欢迎大家提出宝贵的优化建议,一起交流学习&…

系列一、堆里面的分区:Eden、From、To、老年代各自的特点

一、堆里面的分区:Eden、From、To、老年代各自的特点 堆是对象共享的区域,也是垃圾回收器主要工作的地方。主要分为新生区、养老区和元空间,而这三块地方中GC主要工作在新生区和养老区,其中新生区占1/3、养老区占2/3,新…

airlearning-ue4安装的踩坑记录

最近要安装airlearning-ue4,用于实现无人机仿真环境,该项目地址为:GitHub - harvard-edge/airlearning-ue4: Environment Generator for Air Learning Project. This version is build on top of UE4 game engine 由于这个项目已经完成好几年…

Ubuntu20.04 安装微信 【deepin-wine方式极简安装】推荐,两行命令就解决了。

参考git仓库地址: GitHub - zq1997/deepin-wine: 【deepin源移植】Debian/Ubuntu上最快的QQ/微信安装方式【deepin源移植】Debian/Ubuntu上最快的QQ/微信安装方式. Contribute to zq1997/deepin-wine development by creating an account on GitHub.https://github.com/zq199…

项目全生命周期阶段检查单

项目全生命周期阶段检查单 1、立项阶段 2、计划阶段 3、需求阶段 4、设计阶段 5、编码集成阶段 6、测试阶段 7、交付阶段 8、结项阶段

PyTorch微调权威指南3:使用数据增强

如果你曾经参与过 PyTorch 模型的微调,可能会遇到 PyTorch 的内置变换函数,这使得数据增强变得轻而易举。 即使你之前没有使用过这些功能,也不必担心。 在本文中,我们将深入研究 PyTorch 变换换函数的世界。 我们将探索你可以使用…

【计算机毕业设计】Springboot 社区助老志愿服务系统-96682, 免费送源码,【开题选题+程序定制+论文书写+答辩ppt书写-原创定制程序】

Springboot 社区助老志愿服务系统 摘要 大数据时代下,数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求,利用互联网服务于其他行业,促进生产,已经是成为一种势不可挡的趋势。在图书馆管理的要求下,开发…

【Linux】C文件系统详解(三)——如何理解缓冲区以及自主封装一个文件接口

文章目录 如何理解缓冲区现象概念:文件缓冲区为什么要有缓冲区缓冲区在哪里 自己封装一个简单的文件接口自主封装目标 代码关于缓冲区强制刷新内核 关于字符串格式化函数printf和scanf函数 如何理解缓冲区 以前写过一个进度条, 有一个输出缓冲区->这个缓冲区在哪里,为什么要…

五、Linux目录结构

1.基本介绍 1.Linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录"r/",然后在此目录下再创建其他的目录。 2.深刻理解linux树状文件目录是非常重要的 3.记住一句经典的话:在Linux世界里,一切皆文件…

9、传统计算机视觉 —— 边缘检测

本节介绍一种利用传统计算机视觉方法来实现图片边缘检测的方法。 什么是边缘检测? 边缘检测是通过一些算法来识别图像中物体之间,或者物体与背景之间的边界,也就是边缘。 边缘通常是图像中灰度变化显著的地方,标志着不同区域的分界线。 在一张图像中,边缘可以是物体的…

机器学习---初识贝叶斯分类器

1. 引入问题 有两个可选的假设:病人有癌症、病人无癌症,可用数据来自化验结果:正和负- 有先验知识:在所有人口中,患病率是0.008,对确实有病的患者的化验准确率为98%,对确实无 病的患者的化验…

远程炼丹教程

【精选】深度学习远程炼丹:一文离线完成ubuntudockerpycharm环境配置_不能联网的电脑如何用docker配置深度学习环境_Yunlord的博客-CSDN博客文章浏览阅读2.6k次,点赞8次,收藏10次。本文详细讲解如何在离线服务器中安装dockerpycharm的远程深度…

Janus: 基于eBPF的5G实时AI控制器

O-RAN定义的RIC模型并不能很好支持对实时性有很高要求的用例,本文定义了一套基于eBPF的内联执行架构,从而可以将RIC的支持扩展到实时场景。原文: Taking 5G RAN Analytics and Control to a New Level[1] 摘要 Open RAN为5G无线接入网(RAN)引入了模块化和…

亚马逊Lightsail:云服务新篇章,轻松开启您的数字未来

文章目录 前言一、Lightsail是什么?Lightsail的优势使用场景 二、AWS lightsail创建VPS总结 前言 对于开发者而言,当你想构建系统架构时,你的面前就出现了两种选择,选择一是花时间去亲手挑选每个亚马逊云科技组件(云服…

PS学习笔记——移动工具

文章目录 介绍文档内移动文档间移动 介绍 移动工具:用于移动图层中的对象,并且同一图层中的所有对象都将一起移动 选中移动工具后,选项栏中会出现“显示变换控件”,勾选后即可看见图层中的对象周围出现边框,可以进行缩…

【Go学习之 go mod】gomod小白入门,在github上发布自己的项目(项目初始化、项目发布、项目版本升级等)

参考 Go语言基础之包 | 李文周的博客Go mod的使用、发布、升级 | weiGo Module如何发布v2及以上版本1.2.7. go mod命令 — 新溪-gordon V1.7.9 文档golang go 包管理工具 go mod的详细介绍-腾讯云开发者社区-腾讯云Go Mod 常见错误的原因 | walker的博客 项目案例 oceanweav…

山西电力市场日前价格预测【2023-11-20】

日前价格预测 预测说明: 如上图所示,预测明日(2023-11-20)山西电力市场全天平均日前电价为255.39元/MWh。其中,最高日前电价为436.50元/MWh,预计出现在18:00。最低日前电价为21.61元/MWh,预计出…

如何查看 class 文件的编译器版本

文章目录 原理分析解决方案其它解决方案javap 命令行工具 在平时的 Java 开发中,有时候我们需要知道某个 class 文件是由哪个版本的 Java 编译器编译生成的 原理分析 class 文件,即字节码文件,它有特定的二进制格式,这种格式是由…

『力扣刷题本』:环形链表(判断链表是否有环)

一、题目 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&am…