计算机网络 ---- OSI参考模型TCP/IP模型

news2024/11/26 0:42:54

目录

一、OSI参考模型 

1.1 学习路线 

1.2 OSI参考模型和TCP/IP模型  

1.3 具体设备与具体层次对应关系 

1.3.1 物理层

1.3.2 数据链路层

1.3.3 网络层

1.3.4 传输层

1.3.5 会话层、表示层、应用层

1.4 各层次数据传输单位 

 二、TCP/IP模型

2.1 学习路线

2.2 TCP/IP模型 

2.3 OSI模型的应用层、表示层、会话层应如何改进?

2.3.1 TCP/IP的应用层 

2.4 OSI模型的物理层、数据链路层如何改进?

2.4.1 TCP/IP模型的网络接口层

2.5 改进小结 

2.6 TCP/IP模型的传输层和网络层 

2.6.1 OSI模型传输层和网络层设计思想

2.6.2 TCP/IP模型传输层和网络层的设计思想 

2.6.2.1 TCP/IP网络层

2.6.2.2 TCP/IP传输层

2.7 总结


一、OSI参考模型 

1.1 学习路线 

1.2 OSI参考模型和TCP/IP模型  

      OSI参考模型与TCP/IP模型如下图所示:

1.3 具体设备与具体层次对应关系 

      接下来我们需要了解常见的网络设备分别对应了哪些网络层次,如下图所示:


      主机实现了七层所有的功能,集线器实现物理层所要实现的功能,交换机要实现物理层和数据链路层所要实现的功能,路由器实现了物理层、数据链路层、网络层的功能。
      各个节点之间通过物理传输媒体(网线、光纤等)相连接,我们将物理传输媒体视为第0层。
接下来我们需要研究OSI参考模型中每一层的具体作用。

1.3.1 物理层

物理层任务:实现相邻节点之间比特(0或1)的传输

  • 需定义电路接口参数(如:形状、尺寸、引脚数等)
  • 需定义传输信号的含义、电气特征(如:5V表示1,1V表示0;每比特电信号持续时间0.1ms)

      我们知道,两个节点之间需要通过物理传输媒体(网线、光纤等)进行连接,节点与节点连接好之后,它们之间要传输数据,首先要解决的第一个问题就是如何实现两个节点的bit传输?

      那么为了实现bit传输,物理层需要定义电路接口的参数,比如说:
网线的接口长什么样子、什么形状、里面有几个针脚,这些接口的参数需要由物理层进行定义。

      还需要定义传输信号的含义、电气特征,比如使用同轴电缆实现bit的传输,那物理层的协议中可以规定,即:如果收到5v的高电平信号,那么就表示的是二进制1,如果收到的是1v低电平信号,那么就表示二进制0。而在这个过程中,我们有时会要求每比特电信号持续的时间,比如说,5v电信号持续0.1ms则说明传送的bit为1,1v电信号持续0.1ms则说明传送的bit为0,如下图所示。

      接下来思考这样一个问题,传输的电信号有可能受到外界噪声的干扰,最终导致电信号变形,比如说一个高电平信号因为受到环境噪音的干扰可能变成低电平信号,这样的话,本来两个节点之间要传输二进制1,但最终接收方会收到错误的二进制0。
      因此以bit为单位的传输是有可能出错的,并且接收方无法发现这种错误,那怎么办呢?此时我们需要引入数据链路层来解决这个问题。

1.3.2 数据链路层

链路层任务:确保相邻节点之间的链路逻辑上无差错。
包含以下功能:

  • 差错控制:检错+纠错;或检错+丢弃+重传
  • 流量控制:协调两个节点的速率

      链路层的实体之间以帧为单位进行数据传输,一个帧通常会包含多个bit,比如节点A要给节点B传送8bit的数据,那么数据链路层会在原始的8bit之外额外的再增加部分bit(比如说2bit)作为校验信息,数据链路层会将10bit统一地交给物理层进行传输,那么节点B这块儿就会收到10bit数据,然后将10bit数据交给数据链路层,节点B的数据链路层实体会根据这8+2bit的信息进行数据的检错,如果发现数据有什么问题,那么数据链路层可以对这一帧的数据进行纠错,当然也可以采用另一种更为简便的方法,就是直接将这一帧数据丢弃,然后让节点A重新传送这一帧数据。
      那么如果没有检测到数据错误,数据链路层会将多余的2bit拆掉,然后将8bit数据交给网络层进行处理。

      除了差错控制之外,OSI参考模型还要求数据链路层具有流量控制的功能,这个功能能够协调两个结点之间发送帧的速率。比如,结点A一秒发送10个帧,而结点B一秒最多只能处理5个帧,那么节点B的数据链路层就会通过流量控制的协议去要求节点A发送的慢一些,不要超过节点B处理的最大帧数。

      现在,有了第0、1、2层,结点之间就可以无差错的传送数据了,然而在计算机网络当中,结点和结点之间可能并不会直接相连, 大多数情况下,我们需要经过多个路由器的转发,才能从源节点把数据传送到目的节点,为了实现数据的存储转发,我们就需要再增加一层,这层就是我们的网络层。请看1.3.3 小节。

1.3.3 网络层

 网络层任务:把“分组”从源结点转发到目的结点。
包含以下功能:

  • 路由选择:构造并维护路由表,决定分组到达目的节点的最佳路径
  • 分组转发:将“分组”从合适的端口转发出去
  • 拥塞控制:发现网络拥塞,并采取措施缓解拥塞
  • 网际互联:实现异构网络互联(解释:我们知道,路由器可以将各个计算机网络相互连接起来,但每个网络的内部构造都是相异的,不一样的,并且每个网络所采用的局域网技术各不相同,有的采用以太网技术,有的又采用令牌环网技术,那无论这些网络的内部构造是怎么样的,经过路由器网络层的处理,就可以屏蔽网络内部的差异,从而实现异构网络的互连)
  • 其他功能:差错控制、流量控制(以分组为单位进行差错控制和流量控制)、连接建立与释放(确保分组有序、不重复到达)、可靠传输管理(接收方需返回分组确认消息)

1.3.4 传输层

      网络层实现了从主机到主机的这种数据分组的转发,但是每台主机上面会运行很多进程,数据从一个主机传给另一个主机之后,我们还要区分数据来自哪个进程,又想要发给哪个进程,因此,我们还需要在网络层之上添加一层,这就是我们的传输层。

      传输层的任务就是负责向两台主机中进程之间的通信提供通用的数据传输服务【实现端到端通信,即实现进程到进程的通信,端指的是端口】。应用进程利用该服务传送应用层报文。所谓“通用的”,是指并不针对某个特定网络应用,而是多种应用可以使用同一个传输层服务。由于一台主机可同时运行多个进程,因此传输层有复用和分用的功能。复用就是多个应用层进程可同时使用下面传输层的服务,分用和复用相反,是传输层把收到的信息分别交付上面应用层中的相应进程。

传输层包含以下功能: 

  • 复用和分用:发送端几个高层实体复用一条低层的连接,在接收端再进行分用。
  • 其他功能:差错控制、流量控制(以报文段为单位)、连接建立与释放(确保报文段有序、不重复到达)、可靠传输管理(接收方需返回报文段确认消息)


      传输层之间是以报文段为单位传输数据,一个报文段可能会被拆分为多个分组, 源节点的网络层会将这些分组发送给目的节点,最后再由目的节点的网络层把这些分组拼凑成完整的报文段,交付给目的节点的传输层。

1.3.5 会话层、表示层、应用层

会话层任务:管理进程间会话
主要功能:会话管理(采用检查点机制,当通信失效时从检查点继续恢复通信)
举例:比如说主机A要通过微信给主机B发送一个1GB的视频,那会话层会管理数据传输的过程,假设当发送到500MB时,网络中断,那么会话层会记录检查点,当两个进程恢复连接的时候,文件会从这个检查点开始继续往后传。

表示层任务:解决不同主机上信息表示不一致的问题
主要功能:数据格式转换(如编码转换、压缩/解压、加密/解密)
举例:两台主机的编码格式不一样,主机A的编码格式是GBK,而主机B的编码格式为UTF-8,那这就会导致同一个汉字在主机A和主机B上的二进制不一致,也就是信息表示的方式不一样。这就需要表示层来解决这个问题,因此,表示层最主要的功能就是数据格式转换。

应用层任务:实现特定的网络应用
功能繁多,根据应用需求设计

1.4 各层次数据传输单位 

      最顶层,应用层是以报文为单位进行数据传输, 比如,两个应用程序传输一个文件,一个文件就是一个报文。
      表示层会话层不会对报文进行拆分。
      直到报文数据交给传输层之后,传输层会将报文数据拆分成多个报文段,以报文段为单位在传输层之间进行数据传输。
      传输层会将报文段交给网络层进一步处理,网络层会将报文段继续拆分成多个分组,又名数据报,然后以分组为单位在网络层进行传输。
      而数据链路层会将各个分组交给数据链路层,数据链路层会将各个分组继续拆分成多个数据帧,然后在数据链路层之间,以帧为单位在进行数据传输。
      最后,数据链路层会将帧交给物理层,物理层之间是以bit为单位传输这些数据。

 

 二、TCP/IP模型

2.1 学习路线

2.2 TCP/IP模型 

 

2.3 OSI模型的应用层、表示层、会话层应如何改进?

      我们知道,在计算机网络的分层结构当中,上面的层会使用到下面的层提供的服务,或者说会使用下一层已经实现的功能。那么在OSI参考模型中,应用层会使用表示层已经实现的功能,表示层也会使用会话层的功能。

      我们思考这样一个问题,会话层所实现的功能(会话管理)和表示层所实现的功能(数据格式转换)对于每一个应用程序来说都是必要的吗?
      显然不是。比如说主机A中的微信给主机B中的微信传送文件,假设主机A和主机B的数据编码格式一致,那数据格式转换的功能就没有必要存在了。
      另一方面,如果传文件的过程中,网络出现了问题导致传文件中止,当网络重新恢复的时候,我们必须从断点处继续传吗?不一定,对吧。我们可以重新传整个文件呀!那这样的话会话管理这个功能是不是也就没必要存在了。
      那这样的话,表示层和会话层这两层也没有必要一定存在,所以这就是TCP/IP模型和OSI模型在设计上的第一个不同。详细请参考2.3.1小节。

2.3.1 TCP/IP的应用层 

      由于表示层和会话层所提供的这些功能,并不是所有的应用程序都需要的,所以表示层和会话层这两层不需要存在。
      如果说某些应用程序确实需要数据格式转换、会话管理的功能,那么我们可以让应用层的某些特定的协议去实现这些特殊的功能。
      这就是TCP/IP模型在这块儿的设计理念,相比之下,OSI模型下,一个应用程序,不管你是否需要使用数据格式转换亦或者使用会话管理功能,它一定会经过表示层和会话层的处理,对于这两个层次的选择是不灵活的。

2.4 OSI模型的物理层、数据链路层如何改进?

      接下来我们回顾OSI参考模型的第一层(物理层)和第二层(数据链路层)。
      在物理层中需要去定义电路接口的参数,比如说:网线的接口长什么样子、光纤的尺寸等;数据链路层需要实现差错控制、流量控制的功能。也就是说,在OSI模型中,物理层、数据链路层要干什么、分别支持什么功能,具有哪些特性都有很清晰明确的定义。那这就意味着,一个网络硬件厂商在研发物理层和数据链路层的设备的时候,必须要遵循OSI模型的规定,从某种角度来讲,OSI模型的第一层第二层规定太死反而会导致这些网络硬件厂商在设备研发的时候更不灵活。

      TCP/IP模型认为:网络硬件种类繁多,不应该在物理层和数据链路层上有过多的限制。 TCP/IP模型认为在网络层之下的数据链路层以及物理层这些部分,到底如何实现两个相邻的结点之间bit流传输,不应该有太多的限制。

2.4.1 TCP/IP模型的网络接口层

      TCP/IP模型在网络层之下,只有一层网络接口层, 网络接口层只负责实现相邻结点间的数据传输,但具体怎么传输不作规定。
      从垂直视角看,网络接口层为网络层传输分组,网络层会将分组传递给网络接口层,网络接口层可以用灵活多样的方式传输这个分组,那具体是怎么样传输的,在这里不作特别的规定。这使得TCP/IP网络体系结构具有更强的灵活性、适应性。

2.5 改进小结 


 

2.6 TCP/IP模型的传输层和网络层 

      接下来我们研究TCP/IP模型的传输层和网络层,在此之前,我们先回顾OSI模型的传输层和网络层。

2.6.1 OSI模型传输层和网络层设计思想

      如下图所示,这两层所实现的功能基本一致,只不过,网络层针对的是数据报,而传输层针对的是报文段。


      我们知道,应用层针对的是报文,报文经过表示层和会话层交给传输层,传输层将报文拆分为报文段,然后交给网络层,网络层又将报文段拆分为数据报(分组),网络层将数据报交给数据链路层之后,数据链路层又将数据报拆分为帧。也就是说,越靠下的这些层次,他传输的单位是越局部的,越高上的层次,传输的单位越全局。
      显然有,数据的局部正确不能推出数据的全局正确,也就是说数据链路层他只能确保每个数据帧的传送是没有问题的,但是他没办法确保每个数据报(分组)的传输也是没有问题的。
      因此,OSI模型认为,在网络层这里又需要对数据分组进行差错控制、流量控制,以此去保证数据报(分组)数据传输没有问题。
      同样的道理,网络层保证了数据报(分组)局部数据传输的正确性,但无法保证报文段这个全局性数据传输是不出任何问题的,因此,OSI模型在传输层这块儿又会再次增加差错控制、流量控制等功能以确保报文段的传输是没有问题的。

以上便是OSI模型网络层和传输层的设计思想。

2.6.2 TCP/IP模型传输层和网络层的设计思想 

      那我们不妨换一个思路,数据的全局正确能够推出数据的局部正确,显然这个逻辑是可行的。也就是说传输层下面的这几个层次他可以不管数据传输到底有没有出现错误、可不可靠,反正到最后会让接收方的传输层以报文段为单位去确保数据的传输是没有出错的、是有序的、是可靠的。

2.6.2.1 TCP/IP网络层

      基于上面的思路,TCP/IP中的网络层去除掉了差错控制、流量控制、连接管理、可靠传输管理,就会使得网络层的数据传输变得不在可靠。比如说,现在传输层把一个报文段交给网络层让网络层去传输,网络层会将报文段拆分成几个分组并交给网络接口层,网络接口层的数据传输是不可靠的,也即是说,中间结点路由器的网络层接收到的分组有可能不对,但这都没有关系,反正我中间结点接收到一个分组之后尽最大努力转交给下一个结点就可以了,所以目的结点的网络层接收到的分组可能是有错误的,那这些分组会被合并成报文段,交给传输层。因此目的结点的传输层收到的报文段就有可能是有问题的。

2.6.2.2 TCP/IP传输层

      在2.6.2.1小节中我们知道,目的结点传输层接收到的报文段可能是有问题的,那么接下来。目的结点的传输层就会对报文段进行差错控制、流量控制、连接建立与释放、可靠传输管理等操作。

      TCP/IP模型他并不是完全不管数据传输的正确性和可靠性,只不过这些任务都会由传输层来完成。
      相比之下,OSI模型的网络层也需要实现差错控制、流量控制等一系列功能。那这样就会导致网络(计算机网络)的核心部分(路由器)功能复杂,负载高,从而会导致造价会很高。

而TCP/IP模型网络层只负责转发等简单的功能,则网络层相对比较简单。

      TCP/IP模型传输层功能:复用和分用、差错控制、流量控制、连接建立与释放、可靠传输管理。也就是说,数据传输的正确、可靠由传输层负责,压力给到网络边缘部分(主机)。这样就会使得网络的核心部分(路由器)传输分组的性能能够大幅度提升,因为它不用去管差错控制、流量控制等一些乱七八糟的东西。
 

2.7 总结

 

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

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

相关文章

源代码防泄密软件的五大特点

在数据防泄密领域,深信达的SDC沙盒软件以其独特的技术和创新应用,为源代码安全提供了强有力的保护。特别是在源代码防泄密方面,SDC沙盒表现出色,其实现方式主要包括以下几个方面: 1. **内核级虚拟沙盒技术**&#xff1…

QT学习参考书籍

6.2 Qt参考书籍资料 6.2.1 《Qt C编程从入门到实战》 主编:彭源 6.2.2 《Qt 5编程入门 第2版》编著:程梁 霍亚飞 6.2.3 《嵌入式Qt开发项目教程》编著:王浩 著 王浩 6.2.4 《Qt Quick核心编程》编著:安晓辉 6.2.5《零基础学Qt 4编程》 作者:吴迪著 6.2.6 《C并发编程实战(第2版…

【Python机器学习】循环神经网络(RNN)——超参数

几乎所有模型都可以根据数据和样本进行调整,它们都有各自的优势和相应的利弊权衡方式。寻找最优超参数集通常是一个棘手的问题,但是人类的直觉和经验可以为我们提供解决问题的方法。比如之前的例子: #设置任意输入序列的最大长度 maxlen100 …

论文笔记:基于LLM和多轮学习的漫画零样本角色识别与说话人预测

整理了ACM MM2024 Zero-Shot Character Identification and Speaker Prediction in Comics via Iterative Multimodal Fusion)论文的阅读笔记 背景模型框架实现细节 模型数据集实验可视化消融实验 背景 最近读到一篇新文章,主要是做漫画中的零样本角色识…

Linux中限制服务如mysql的最大cpu使用率

1、cpu占用测试&#xff1a; DELIMITER // DROP PROCEDURE IF EXISTS intensive_calculations; CREATE PROCEDURE intensive_calculations() BEGINDECLARE v INT DEFAULT 0;DECLARE i INT DEFAULT 0;WHILE i < 1000000 DOSET v SQRT(i * i (RAND() * 10000));SET i i 1…

【动态规划】(一)动态规划理论及基础题目

动态规划理论及基础题目 理论基础斐波那契数爬楼梯使用最小花费爬楼梯不同的路径不同的路径2整数拆分不同的二叉搜索树 理论基础 动态规划&#xff0c;英文&#xff1a;Dynamic Programming&#xff0c;简称DP&#xff0c;如果某一问题有很多重叠子问题&#xff0c;使用动态规划…

告别存储烦恼,MyDiskTest全方位检测解决方案

科技改变生活&#xff0c;但质量决定科技的生命力——这句话在数字化时代尤为贴切。近年来&#xff0c;随着科技的飞速发展&#xff0c;U盘、SD卡、CF卡等移动存储设备已成为我们日常工作和生活中不可或缺的工具。它们便携、高效&#xff0c;能够快速存储和传输大量数据。然而&…

【详解】数据库E-R图——医院计算机管理系统

题目 某医院病房计算机管理中需要如下信息&#xff1a; 科室&#xff1a;科室名&#xff0c;科室地址&#xff0c;科室电话&#xff0c;医生姓名 病房&#xff1a;病房号&#xff0c;床位号&#xff0c;所属科室名 医生&#xff1a;工作证号&#xff0c;姓名&#xff0c;性别&a…

GPT撰写开题报告教程——课题确定及文献调研

撰写开题报告是一项复杂而重要的任务&#xff0c;需要涵盖从主题选择到文献综述、研究方法等多个环节。借助AI&#xff0c;如ChatGPT&#xff0c;可以显著提高这一过程的效率以及内容的质量。本文将详细探讨如何一步步利用ChatGPT撰写开题报告。 一、开题报告内容 一个清晰的…

基于R语言的统计分析基础:使用ggplot2包进行绘图

安装ggplot2包并查看官方文档 ggplot2是一个基于图形语法的R包&#xff0c;它允许用户通过声明式方式指定数据、美学映射和图形元素来灵活创建复杂且美观的可视化图表。 ggplot2包官方教学文档&#xff1a;ggplot2官方文档 在R语言中安装ggplot2有两种方法&#xff1a; 安装整…

【SQL】百题计划:SQL判断条件OR的使用。

【SQL】百题计划-20240912 Select name, population, area from World where area>3000000 or population > 25000000;

替换传统数据处理平台,TDengine 与华风数据达成合作

在全球能源转型的大背景下&#xff0c;新能源产业正迎来前所未有的发展机遇。随着国家对可再生能源的政策支持和市场需求的不断增长&#xff0c;风电、光伏和储能等新能源项目如雨后春笋般蓬勃发展。然而&#xff0c;随之而来的数据处理与管理挑战也日益凸显。面对海量的设备运…

YOLO-v8:对yolov8网络的改进教程(以GAM注意力模块为例)

本文将介绍如何在YOLOv8网络中进行模块化修改。 通过将改进的核心模块添加到项目中&#xff0c;即可直接运行各种 YOLOv8-xxx.yaml 网络配置文件&#xff0c;支持乐高式创新扩展。无论是进行网络结构的调整还是增加新的功能模块&#xff0c;用户只需一键运行&#xff0c;轻松实…

净赚百亿背后,海尔智家的机遇与隐忧

广撒网、出海忙&#xff0c;海尔智家如何熬过存量周期&#xff1f; 转载&#xff1a;科技新知 原创 作者丨田箫 编辑丨赛柯 冰箱、空调、洗衣机不好卖了&#xff0c;已成为不争的事实。 在购房热情降温、收入预期低迷的双重打击下&#xff0c;白电品牌正艰难求生。然而&#x…

通过ASCII码打印HelloWorld(花式打印HelloWorld)

/*** 通过ASCII码打印HelloWorld*/ public class Main {public static void main(String[] args) {String target "HelloWorld";String fi "";for (int i 0; i < target.length(); i) {for (int x 0; x < 127; x) {char c (char) x;String d f…

怎么利用短信接口发送文字短信

在当今这个快节奏的数字时代&#xff0c;即时通讯已成为人们日常生活和工作中不可或缺的一部分。而短信接口&#xff08;SMS Interface&#xff09;&#xff0c;作为传统与现代通讯技术结合的典范&#xff0c;凭借其高效、稳定、广泛覆盖的特性&#xff0c;在众多领域发挥着不可…

K8s中HPA自动扩缩容及hml

1.HPA&#xff1a;基于cpu的利用率来动态实现pod数量的自动伸缩&#xff0c;创建的方法一种是yaml文件&#xff0c;一种是命令行&#xff08;运用比较少&#xff09;&#xff1b;在yaml文件中必须要有资源控制&#xff08;cpu&#xff09;的字段才能生效的。 必要条件&#xf…

linux内核驱动:ptp内核phc框架

目录 一、介绍二、PHC驱动文件三、主要数据结构四、初始化和调用流程五、总结 一、介绍 本文基于linux内核5.10.xxx总结ptp1588精确时间协议实现过程中&#xff0c;内核部分的8A34002实现的phc(PTP hardware clock)驱动支持&#xff1b; ptp的系统框架 .红圈部分为本笔记总结的…

RK3568 初识

RK3565是福州本土集成电路设计企业的产品&#xff0c;售价在200RMB左右&#xff0c;润和DAYU200完成基于RK3568的鸿蒙适配&#xff0c;官方售价高达2000RMB 瑞芯微电子有限公司&#xff08;Rockchips Electronics CO., Ltd&#xff09;: 规模&#xff1a;2000人市值&#xff…

CSS实现前端布局更巧妙的方案!在 flex 布局中通过使用 margin 实现水平垂直居中以及其他常见的前端布局

在前端开发中&#xff0c;实现水平垂直居中一直是个热门话题。随着 CSS Flexbox 布局的普及&#xff0c;开发者们开始更多地使用 justify-content 和 align-items 这两个属性来解决这个问题。 然而&#xff0c;还有一种更加简洁、灵活的方式——使用 margin: auto; 来实现居中以…