无线专题 osi模型、TCP/IP五层模型、网络编程(一)

2023-11-12

**

一、OSI介绍

**
1、OSI的来源
OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。
ISO为了更好的使网络应用更为普及,推出了OSI参考模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有相同的规范,就能互联了。

2、OSI七层模型的划分
OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中,第一层到第三层属于OSI参考模型的低三层,负责创建网络通信连接的链路;第五层到第七层为OSI参考模型的高三层,具体负责端到端的数据通信;第四层负责高低层的连接。

每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持,而网络通信则可以自上而下(在发送端)或者自下而上(在接收端)双向进行。当然并不是每一通信都需要经过OSI的全部七层,有的甚至只需要双方对应的某一层即可。物理接口之间的转接,以及中继器与中继器之间的连接就只需在物理层中进行即可;而路由器与路由器之间的连接则只需经过网络层以下的三层即可。

总的来说,双方的通信是在对等层次上进行的,必须在对称层次上进行通信

3、各层介绍
在这里插入图片描述
各层的大致功能如图所示,我们来具体解释一下他们的作用:

物理层:物理层是OSI分层结构体系中最重要、最基础的一层,它建立在传输媒介基础上,起建立、维护和取消物理连接作用,实现设备之间的物理接口。物理层只接收和发送一串比特(bit)流,不考虑信息的意义和信息结构。

中间传的是电信号,即010101…这些二进制位。

链路层:在物理层提供比特流服务的基础上,将比特信息封装成数据帧Frame,起到在物理层上建立、撤销、标识逻辑链接和链路复用以及差错校验等功能。通过使用接收系统的硬件地址或物理地址来寻址。建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,同时为其上面的网络层提供有效的服务。

这一层的数据帧中就已经包含mac地址(源地址和目标地址都是6字节)。数据链路层的工作方式-----广播。局域网内所有人都会收到广播,然后通过匹配mac地址来确认收发方,不是自己的就丢掉。当不同的局域网内的设备通信时就需要网络层来区分了

网络层:网络层也称通信子网层,是高层协议之间的界面层,用于控制通信子网的操作,是通信子网与资源子网的接口。在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点,确保数据及时传送。网络层将解封装数据链路层收到的帧,提取数据包,包中封装有网络层包头,其中含有逻辑地址信息源站点和目的站点地址的网络地址。

网络层定义了一个IP协议。当一个设备给另外一个局域网内的设备发数据时,它的数据包会交给网关转发,Mac地址及IP地址唯一标识了你在互联网中的位置。

传输层:传输层建立在网络层和会话层之间,实质上它是网络体系结构中高低层之间衔接的一个接口层。用一个寻址机制来标识一个特定的应用程序(端口号)。传输层不仅是一个单独的结构层,它还是整个分层体系协议的核心,没有传输层整个分层协议就没有意义。

核心传输协议:TCP传输和UDP传输。

传输层的由来:网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序。

会话层:这一层也可以称为会晤层或对话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。

表示层:表示层向上对应用层提供服务,向下接收来自会话层的服务。表示层是为在应用过程之间传送的信息提供表示方法的服务,它关心的只是发出信息的语法与语义。表示层要完成某些特定的功能,主要有不同数据编码格式的转换,提供数据压缩、解压缩服务,对数据进行加密、解密。例如图像格式的显示,就是由位于表示层的协议来支持。

应用层:网络应用层是通信用户之间的窗口,为用户提供网络管理、文件传输、事务处理等服务。其中包含了若干个独立的、用户通用的服务协议模块。网络应用层是OSI的最高层,为网络用户之间的通信提供专用的程序。应用层的内容主要取决于用户的各自需要,这一层设计的主要问题是分布数据库、分布计算技术、网络操作系统和分布操作系统、远程文件传输、电子邮件、终端电话及远程作业登录与控制等。至2011年应用层在国际上没有完整的标准,是一个范围很广的研究领域。在OSI的7个层次中,应用层是最复杂的,所包含的应用层协议也最多,有些还在研究和开发之中。

在这里插入图片描述

4、通信特点:对等通信
对等通信,为了使数据分组从源传送到目的地,源端OSI模型的每一层都必须与目的端的对等层进行通信,这种通信方式称为对等层通信。在每一层通信过程中,使用本层自己协议进行通信。
在这里插入图片描述
**

二、TCP/IP五层模型

**
TCP/IP五层协议和OSI的七层协议对应关系如下。
在这里插入图片描述
在 TCP/IP 协议框架体系的五层网络模型中,每一层负责处理的数据包协议或类型均存在差异:

  • 物理层主要负责在物理载体上的数据包传输,如 WiFi,以太网,光纤,电话线等
  • 数据链路层主要负责链路层协议解析(主要为以太网帧,其他类型此处暂不考虑)
  • 网络层主要负责 IP 协议(包括 IPv4 和 IPv6)解析
  • 传输层负责传输层协议解析(主要为 TCP,UDP 等)
  • 传输层以上我们均归类为应用层,主要包括各类应用层协议,如我们常用的 HTTP,FTP,SMTP,DNS,DHCP 等。传输层主要为两台主机的应用程序之间提供端到端通信。主要有两个不同用途的传输协议, TCP-传输控制协议, UDP-用户数据报协议。

在 TCP/IP 协议框架体系内,上层协议报文被作为下层协议的数据载荷(Data Payload),存储在下层协议的数据段区域中进行传输。

在每一层都工作着不同的设备,比如我们常用的交换机就工作在数据链路层的,一般的路由器是工作在网络层的。
在这里插入图片描述
在每一层实现的协议也各不同,即每一层的服务也不同.下图列出了每层主要的协议。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无线专题 osi模型、TCP/IP五层模型、网络编程(一) 的相关文章

  • 我们如何在使用循环时调用 ansible playbook 中的变量

    我有两个文件 其中这些文件包含server names and server IP s 我想更改 替换一些特定的server names and IP addressees根据要求在两个文件中 这与这篇文章 因为它被要求开设一个新职位 ht
  • 如何在 Vim 中突出显示 Bash 脚本?

    我的 Vim 编辑器自动突出显示 PHP 文件 vim file php HTML 文件 vim file html 等等 但是当我输入 vim file在里面写一个Bash脚本 它不会突出显示它 我如何告诉 Vim 将其突出显示为 Bas
  • 任何退出 bash 脚本但不退出终端的方法

    当我使用exitshell 脚本中的命令 该脚本将终止终端 提示符 有什么方法可以终止脚本然后停留在终端中吗 我的剧本run sh预计通过直接获取或从另一个脚本获取来执行 编辑 更具体地说 有两个脚本run2 sh as run sh ec
  • 在本地主机上使用相同的 IP 和端口创建套接字

    我在 Linux 上看到奇怪的行为 我看到远程端和本地端都显示相同的 IP 和端口组合 以下是 netstat 输出 netstat anp 网络统计grep 6102 tcp 0 0 139 185 44 123 61020 0 0 0
  • 使用 ioctl 在 C++ 中以编程方式添加路由

    我编写了简单的 C 函数 添加了新路线 void addRoute int fd socket PF INET SOCK DGRAM IPPROTO IP struct rtentry route memset route 0 sizeof
  • 链接错误:命令行中缺少 DSO

    我对 Linux 使用 Ubuntu 14 04 LTS 64 位 相当陌生 来自 Windows 并且正在尝试移植我现有的 CUDA 项目 当通过链接时 usr local cuda bin nvcc arch compute 30 co
  • 如何并行执行4个shell脚本,我不能使用GNU并行?

    我有4个shell脚本dog sh bird sh cow sh和fox sh 每个文件使用 xargs 并行执行 4 个 wget 来派生一个单独的进程 现在我希望这些脚本本身能够并行执行 由于某些我不知道的可移植性原因 我无法使用 GN
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • Ubuntu Python shebang 线不工作

    无法让 shebang 线在 Ubuntu 中为 python 脚本工作 我每次只收到命令未找到错误 test py usr bin env python print Ran which python usr bin python 在 sh
  • 如何在不使用 IDE 的情况下在 Linux 上运行 Java 项目

    我是 Java 新手 基本上 我开发了一个java项目 其中包含Eclipse中的多个Java包 该项目在我安装了 redhat Linux 的桌面上运行正常 然而 我需要在一个更强大的没有安装X11的Linux服务器 redhat ent
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • Tomcat Intellij Idea:远程部署

    RackSpace 云服务器 Ubuntu 12 04 Intellij Idea 11 1 2 Windows 8 Tomcat 7 0 26 JDK 6 在 Intellij Idea 上 当我尝试在远程 Tomcat 7 服务器上运行
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • Linux 中 m 标志和 o 标志将存储在哪里

    我想知道最近收到的路由器通告的 m 标志和 o 标志的值 从内核源代码中我知道存储了 m 标志和 o 标志 Remember the managed otherconf flags from most recently received R
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String
  • ALSA:snd_pcm_writei 调用时缓冲区不足

    当运行我最近从灰烬中带回来的旧程序时 我遇到了缓冲区不足的情况 该程序将原始声音文件完全加载到内存中 2100 字节长 525 帧 并准备 ALSA 进行输出 44 1khz 2 通道 有符号 16 位 if err snd pcm set
  • 如何为 Linux 桌面条目文件指定带有相对路径的图标?

    对于我的一个 Linux 应用程序 我有应用程序二进制文件 一个 launcher sh 脚本 针对 LD LIBRARY PATH 和一个 desktop 文件 所有这些都位于同一文件夹中 我想使用图标的相对路径而不是绝对路径 我试过了
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 通过 Visual Studio 2017 使用远程调试时 Linux 控制台输出在哪里?

    我的Visual Studio 2017 VS2017 成功连接Linux系统 代码如下 include

随机推荐

  • 油猴安装错误问题(下载中断问题)及脚本安装

    第一步 在电脑c盘找到这个文件 C Windows System32 drivers etc 然后用记事本打开hots 打开之后如此图 2 在host文件最后面 添加 131 253 33 219 edge microsoft com 13
  • 利用python绘制二三维曲面和矢量流线图

    为了实现不同数据的可视化 最近研究了python环境下的可视化方案 为后续的流体运动仿真模拟做好储备 由于python处理数据的便利性 导致目前很多后端处理或者可视化成图操作都在python中实现 比如前端是vue 加上简单的交互操作 后端
  • nextjs的getStaticProps要点

  • 24时区来源,CST,CET,UTC,DST,Unix时间戳概述、关系、转换

    全球24个时区的划分 相较于两地时间表 显示世界各时区时间和地名的世界时区表 Universal WorldTime 就显得精密与复杂多 通常世界时区表的表盘上会标示着全球24个时区的城市名称 全球24个时区是如何产生的 过去世界各地原本各
  • 【学习笔记】【DBN】十九——深度信念网络DBN

    本篇简要介绍深度信念网络DBN 是一个不太常见的神经网络 首先对深度信念网络 DBN 进行简要介绍 然后对其组成原件RBM的结构 原理和训练过程进行介绍 接着对DBN的训练过程进行介绍 目录 一 DBN概述 二 首先玻尔兹曼机 RBM 1
  • 图形推理1000题及答案解析_公考干货

    图形推理中 立体折叠类图形最大的难点就是考察人的立体空间推理 主要考察方式有折纸盒 三视图 剖面图 解题方法有特殊面法 相邻面法 相对面法 无论题目有多难都不会逃出这三个方法 但是很多考生的立体推理能力比较差 教给大家一个小技巧 在考试过程
  • LeetCode 20. 有效的括号

    题目链接 https leetcode cn problems valid parentheses C 代码如下 class Solution public bool isValid string s stack
  • The Standard C Library

    C的标志库函数是学习和使用C语言的基础 是编写经典C程序的基础 是学习其他计算机知识的基础 C标志库中一共包含了15个头文件
  • matlab求lypunov,【原创】Lyapunov、Sylvester和Riccati方程的Matlab求解

    Lyapunov Sylvester和Riccati方程是控系统常用到的几个方程 应用和计算比较广泛 在这里我们只要讨论下Lypunov方程的连续方程 离散方程的数值和解析解法 其中数值解法MATLAB提供的直接的lyap 和dlyap 函
  • ClassNotFoundException:NullPointerException:ArrayIndexOutOfBounException:FileNotFoundException:等异常

    目录 1 ClassNotFoundException 解决方法 2 NullPointerException 解决方法 3 ArrayIndexOutOfBoundsException 解决方法 4 FileNotFoundExcepti
  • EasySwoole ElasticSearch打造高性能小视频服务系统

    好久没有更新教程 现在更新一套缓存视频给大家 Elasticsearch的索引思路 将磁盘里的东西尽量搬进内存 减少磁盘随机读取次数 同时也利用磁盘顺序读特性 结合各种奇技淫巧的压缩算法 用及其苛刻的态度使用内存 所以 对于使用Elasti
  • 操作系统-管道通信

    编写程序 演示多进程并发执行和进程软中断 管道通信 父进程使用系统调用pipe 建立一个管道 然后使用系统调用fork 创建两个子进程 子进程1和子进程2 子进程1每隔1秒通过管道向子进程2发送数据 I send you x times x
  • C++ STL 集合set

    本文主要简述集合的原理和用法 便于快速学习和查阅 集合的原理 set是一个内部自动有序且不含重复元素的容器 set集合容器实现了红黑树 Red Black Tree 的平衡二叉检索树的数据结构 在插入元素时 它会自动调整二叉树的排列 把该元
  • Spring AOP:面向切面编程的简介和实践

    目录 一 什么是AOP 二 AOP的核心概念 三 Spring AOP的实现方式 第一种 注解配置AOP 第二种 xml配置AOP 一 什么是AOP AOP Aspect Oriented Programming 即面向切面编程 是一种编程
  • 在.NET中使用正则表达式(入门篇)

    转载请注明 敏捷学院 技术资源库 原文链接 http dev mjxy cn a In NET using regular expressions aspx 代码下载 RegexExample zip介绍正则表达式提供了功能强大 灵活而又高
  • ITest:京东数科接口自动化测试实践

    导读 你是否为每天 点点点 的工作而感到索然无味 你是否苦于没有合适的工具而对复杂的测试任务望而却步 频繁变动的接口 重复的功能测试 你 疲惫么 京东数科平台开发团队基于日常接口测试经验 开发了接口测试平台 ITest 通过此平台让研发流程
  • [OpenAirInterface实战-20] :OAI 软件无线电USRP E310硬件详解

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 121094384 第1章 概述 USR
  • ChatGPT 或其它 AI,能用在文书创作上吗?

    新的申请季已经正式开始 一些热门项目的ED截止日期也不再遥远 因此很多准留学生们都已经开始了关于文书的创作 而随着科技的不断发展 以ChatGPT为首的一众AI工具也作为一种辅助手段愈发融入了我们的生活 那么不免就会有一些同学在准备申请时
  • excel基本操作1

    excel隔行设置样式 条件格式 gt 条件规则 gt 输入公式 参考https jingyan baidu com article 36d6ed1f2379c35acf4883e0 html excel隔列取值 使用Index结合row和
  • 无线专题 osi模型、TCP/IP五层模型、网络编程(一)

    一 OSI介绍 1 OSI的来源 OSI Open System Interconnect 即开放式系统互联 一般都叫OSI参考模型 是ISO 国际标准化组织 组织在1985年研究的网络互连模型 ISO为了更好的使网络应用更为普及 推出了O