背景

虽然说以前学习计算机网络的时候,学过了,但为了更好地学习一些物联网协议(MQTTCoAPLWM2MOPC),需要重新复习一下。

OSI七层模型

七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。

它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。

OSI七层模型 功能 对应的网络协议
应用层 应用层是网络体系中最高的一层,也是唯一面向用户的一层,也可视为为用户提供常用的应用程序,每个网络应用都对应着不同的协议 HTTP、TFTP, FTP, NFS, WAIS、SMTP
表示层 主要负责数据格式的转换,确保一个系统的应用层发送的消息可以被另一个系统的应用层读取,编码转换,数据解析,管理数据的解密和加密,同时也对应用层的协议进行翻译 Telnet, Rlogin, SNMP, Gopher
会话层 负责网络中两节点的建立,在数据传输中维护计算机网络中两台计算机之间的通信连接,并决定何时终止通信 SMTP, DNS
传输层 是整个网络关键的部分,是实现两个用户进程间端到端的可靠通信,处理数据包的错误等传输问题。是向下通信服务最高层,向上用户功能最底层。即向网络层提供服务,向会话层提供独立于网络层的传送服务和可靠的透明数据传输。 TCP, UDP
网络层 进行逻辑地址寻址,实现不同网络之间的路径选择,IP就在网络层 IP, ICMP, ARP, RARP, AKP, UUCP
数据链路层 物理地址(MAC地址),网络设备的唯一身份标识。建立逻辑连接、进行硬件地址寻址,相邻的两个设备间的互相通信 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP,STP。HDLC,SDLC,帧中继
物理层 七层模型中的最底层,主要是物理介质传输媒介(网线或者是无线),在不同设备中传输比特,将0/1信号与电信号或者光信号互相转化 IEEE 802.1A, IEEE 802.2到IEEE 802

数据发送时从上至下封装,收到数据包后从下至上解包。每一层对于上一层来讲是透明的,上层只需要使用下层提供的接口,并不关心下层是如何实现的。

我们所说的 socket 编程,是站在传输层的基础上,所以可以使用 TCP/UDP 协议,但是不能干「访问网页」这样的事情,因为访问网页所需要的 http 协议位于应用层。

两台计算机进行通信时,必须遵守以下原则:

- 必须是同一层次进行通信,比如,A 计算机的应用层和 B 计算机的传输层就不能通信,因为它们不在一个层次,数据的拆包会遇到问题。

- 每一层的功能都必须相同,也就是拥有完全相同的网络模型。如果网络模型都不同,那不就乱套了,谁都不认识谁。

- 数据只能逐层传输,不能跃层。

- 每一层可以使用下层提供的服务,并向上层提供服务。

如:

TCP/IP

TCP/IP 参考了OSI模型,将 最上的3层(应用层、表示层、会话层) 视为为 应用层, 由 将 最下的2层(数据链路层、物理层)视为 网络接口层

所以 TCP/IP 只有4层。

我们用一张图来看,TCP/IP在OSI模型中各个部分对应的是什么部分。

源自 http://www.colasoft.com.cn/download/protocols_map.php

附录: TCP/IP在OSI模型中各部分的解释(OSI七层模型 相关协议 缩写)

应用层

  • HTTP 超文本传输协议

  • FTP 文件传输协议

  • SMTP 简单邮件传输协议

  • TELNET TCP/IP终端仿真协议

  • POP3 邮局协议第三版

  • Finger 用户信息协议

  • NNTP 网络新闻传输协议

  • IMAP4 因特网信息访问协议第四版

  • LPR UNIX 远程打印协议

  • Rwho UNIX 远程 Who协议

  • Rexec UNIX远程执行协议

  • Login UNIX 远程登陆协议

  • RSH UNIX 远程Shell协议

  • NTF HP 网络文件传输协议

  • RDA HP 远程数据库访问协议

  • VT 虚拟终端仿真协议

  • RFA HP 远程文件访问协议

  • RPC Remote Process Comm.

  • S-HTTP 安全超文本传输协议

  • GDP 网关发现协议

  • X-Window

  • CMOT 基于TCP/IP的CMIP协议

  • SOCKS 安全套接字协议

  • FANP 流属性通知协议

  • SLP 服务定位协议

  • MSN 微软网络服务

  • Radius 远程用户拨号认证服务协议

  • DNS 域名系统

  • NFS网络文件系统协议

  • NIS SUN 网络信息系统协议

  • R-STAT SUN远程状态协议

  • NSM SUN 网络状态监测协议

  • PMAP SUN 端口映射协议

  • Mount

  • LPR UNIX 远程打印协议

  • SNMP 简单网络管理协议

  • 常用UDP协议的应用层服务

    • BOOTP 引导协议
    • DHCP动 态主机配套协议
    • NTP 网络时间协议
    • TFTP 简单文件传输协议

表示层

  • DECnet NSP

  • LPP 轻量级表示协议

  • NBSSN NetBIOS会话服务协议

  • XDP外部数据表示协议

  • IPX

会话层

  • SSL 安全套接字层协议

  • TLS 传输层安全协议

  • DAP 目录访问协议

  • LDAP 轻量级目录访问协议

  • RPC 远程过程调用协议

  • VINES NETRPC

    • VFRP
    • NeTBIOS
    • IPX

传输层

  • XOT 基于tcp之上的X协议

  • Van Jacobson 压缩TCP协议

  • ISO-DE ISO 开发环境-------->NetBISO

  • TALI 传输适配层接口协议

  • DSI、NetBIOS、IP NeTBIOS、ISO-TP SSP、SMB、MSRPC

UDP用户数据报协议

  • RUDP 可靠的用户数据报协议

  • Mobile IP 移动IP协议

网络层

  • IP/IPv6 互联网协议/互联网协议第六版

  • ICMPv6互联网控制信息协议第六版

  • ICMP互联网控制信息协议

  • IGMP 互联网组管理协议

  • SLIP 串行线路IP协议

安全协议

  • AH 认证头协议

  • ESP 安装封装有效载荷协议

路由协议

  • EGP 外部网关协议

  • OSPF 开放最短路径优先协议

  • IGRP 内部网关路由协议

  • NHRP 下一跳解析协议

  • IE-IRGP 增强内部网关路由选择协议

  • RIPng for IPv6 IPv6路由信息协议

  • GGP 网关到网关协议

  • VRRP 虚拟路由器冗余协议

  • PGM 实际通用组播协议

  • RSVP 资源预留协议

  • PIM-DM 密集模式独立组播协议

  • DVMRP 距离矢量组播路由协议

  • RIP2 路由信息协议第二版

  • PIM-SM 稀疏模式独立组播协议

  • MOSPF 组播开放最短路径优先协议

数据链路层

  • MPLS 多协议标签交换协议

  • XTP 压缩传输协议

  • DCAP 数据转换客户访问协议

  • SLE 串行连接封装协议

  • IPinIP IP套IP封装协议

隧道协议

  • PPTP 点对点隧道协议

  • L2F 第二层转发协议

  • L2TP 第二层隧道协议

  • ATMP 接入隧道管理协议

Cisco 协议

  • CDP 思科发现协议

  • CGMP 思科组管理协议

地址解析协议

  • ARP 地址解析协议

  • RAR 逆向地址解析协议

物理层

  • IEEE 802.2

  • Ethernet v.2

  • Internetwork

网络OSI七层模型及各层作用 tcp-ip的更多相关文章

  1. 网络OSI七层模型以及数据传输过程

    网络OSI七层模型 模型图 国际标准化组织(ISO)制定了osi七层模型,iso规定了各种各样的协议,并且分了7层 每一层的详细信息 具体7层 数据格式 功能与连接方式 典型设备 应用层 Applic ...

  2. OSI七层模型及各层作用

    物理层:建立.维护.断开物理连接 数据链路层:该层的作用包括了物理地址寻址,数据的成帧,流量控制,数据的检错,重发等.该层控制网络层与物理层之间的通信,解决的是所传输数据的准确性的问题.为了保证传输, ...

  3. OSI7层模型(TCP4层)

    OSI7层模型(TCP4层) 第一层:物理层 在局部局域网络上传送帧,它负责管理电脑通信设备和网络媒体之间的互通.包括了针脚.电压.线缆规范.集线器.中继器.网卡.主机适配器等. 第二层:数据链路层 ...

  4. 网络--OSI七层模型详解

    OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...

  5. 网络OSI七层模型及各层作用 与 TCP/IP

    背景 虽然说以前学习计算机网络的时候,学过了,但为了更好地学习一些物联网协议(MQTT.CoAP.LWM2M.OPC),需要重新复习一下. OSI七层模型 七层模型,亦称OSI(Open System ...

  6. 网络OSI七层架构与TCP四层架构的应用与区别

    1.OSI七层网络模型介绍 OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型 ,是一个逻辑上的定义,一个规范,它把网络从逻辑上分为了 ...

  7. 网络----OSI七层

    OSI 订制的是一个用于计算机或通信系统间互联的标准体质(一般称为OSI参考模型或七层模型) OSI 模型把网络通信的工作分为7层分别是: 常用内容:物理层 数据链层 网络层 注解 OSI 7层 1. ...

  8. 网络 osi七层协议

    一 互联网的本质 咱们先不说互联网是如何通信的(发送数据,文件等),先用一个经典的例子,给大家说明什么是互联网通信. 现在追溯到八九十年代,当时电话刚刚兴起,还没有手机的概念,只是有线电话,那么此时你 ...

  9. 读书笔记——网络编程与开发技术(3)基于TCP/IP协议的网络编程相关知识

    TCP/IP协议:数据链路层,网络层,传输层,应用层. IP地址分为5类:A类.B类.C类.D类.E类. (A类.B类.C类是基本类,D类多用于多播传送,E类为保留类.) "*"表 ...

  10. 网络知识学习1---(基础知识:ISO/OSI七层模型和TCP/IP四层模型)

    以下的内容和之后的几篇博客只是比较初级的介绍,想要深入学习的话建议自己钻研<TCP/IP详解 卷1:协议> 1.ISO/OSI七层模型    下四层是为数据传输服务的,物理层是真正的传输数 ...

随机推荐

  1. 混合开发中,app内嵌h5页面时,安卓ios遇到的一些兼容问题及解决方法

    1.input[type=checkbox]在ios端样式显示异常,黑色背景或边框,安卓正常 解决: input[type=checkbox]:checked{ background-color: t ...

  2. ansible系列(24)--ansible的loop循环语句

    目录 1. loop循环语句 1.1 使用循环批量安装软件 1.2 使用循环批量启动服务 1.3 使用循环批量创建用户 1.4 使用循环批量拷贝文件 1. loop循环语句 在写 playbook 的 ...

  3. 如何提高WordPress的加载速度

    针对wordpress加载速度慢的原因: 1. 由于Wordpress系统默认使用谷歌字体,在国内谷歌域名被屏蔽,所以导致操作反应慢.对于很多商业主题默认使用了谷歌字体.谷歌ajax库.谷歌地图等谷歌 ...

  4. n个人围成一圈,顺序排号从1到n。从第一个人开始报数(从一到三如此循环)。凡是报到三的出局,最后剩下的一个人原始编号为?

    #include<stdio.h> int main(){ int num,n,i=0,flag=0; //num记录剩余人数,n记录总人数,i为原始编号,flag为编号123时的编号 p ...

  5. Oracle数据库WHERE子查询按时间段查询用法(to_date函数)

    oracle中的to_date参数含义 1.日期格式参数 含义说明 D 一周中的星期几  DAY 天的名字,使用空格填充到9个字符  DD 月中的第几天  DDD 年中的第几天  DY 天的简写名   ...

  6. Unity HDRP BentNormal的理解

    1.通过网上冲浪了解到,BentNormal可以解决间接环境高光漏光及间接漫反射光照漏光的问题. 这里的漏光是指间接光照部分没有考虑到模型自身的遮挡关系导致的漏光. 2.可以通过SD之类的软件烘焙Be ...

  7. AIRIOT物联网低代码平台如何配置三菱PLC驱动?

    三菱PLC驱动配置使用三菱Melsec协议(MC协议)从三菱PLC读取数据,仅支持以太网方式.三菱PLC都可以通过此协议访问,但是需要对PLC进行设置. AIRIOT物联网低代码平台如何配置三菱PLC ...

  8. FolkMq v1.4.6 发布(可以内嵌的消息中间件)

    功能简表 角色 功能 生产者(客户端) 发布消息.定时消息(或叫延时).顺序消息.可过期消息.事务消息.支持 Qos0.Qos1 消费者(客户端) 订阅.取消订阅.消费-ACK(自动.手动) 服务端 ...

  9. C# Log4net 组件无法写日志 IsDebuged、IsInfoEnabled、IsErrorEnabled 全部为false

    [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)] 如果 ...

  10. 简单粗暴通过 Binlog 日志来恢复 MySQL 数据

    引言 Binlog 日志的主要作用: 1.增量备份. 2.主从复制. 操作步骤 1.登录 MySQL -> 执行 show variables like '%log_bin%'; 查询 binl ...