这是重点和难点,抽象概念比较多,学习的时候要多思考。
为了使不同体系结构的计算机网络能够互连,国际组织1977年成立专门机构研究该问题,不久他们就研究出一个使所有计算机在世界范围内互连成网的框架,也就是著名的“开放系统互连参考模型”,简称OSI。
20世纪90年代初期,虽然标准已经注册出来了,但是因特网已经抢先在全世界覆盖了相当大的范围,因特网从1983年开始使用TCP/IP协议族,并逐步演变成TCP/IP参考模型
在过去,制订标准的人往往是专家学者。但现在,许多公司都纷纷挤进各种各样的标准化组织,使得技术标准有着浓厚的商业气息。
OSI标准失败的原因可归纳为:
1)OSI的专家们缺乏实战经验,完成OSI标准时没有商用驱动力
2)OSI本身体系结构复杂,实现难度大,效率低
3)OSI研发周期长,因而使得其他那些按照他标准生产的设备无法进入市场
4)OSI层次划分不合理,有些功能在多个体系重复出现
因为IP的意思是网际,所以TCP/IP的网络层叫网际层。
我们自己的电脑带有TCP/IP协议族,路由器也带有TCP/IP协议族,只不过路由器只包含网络接口层和网际层。
TCP/IP的网络接口层并没有强制规定要有什么内容,这样做的目的是可以互连全世界各种不同的网络接口。比如有线的以太网接口,无线局域网的WIFI接口。
因此,本质上TCP/IP协议只有上面的三层。
IP协议可以将不同的网络接口进行互连,并向其上的TCP协议和UDP协议提供网络互连服务
而TCP协议在享受IP协议提供的网络互联服务的基础上,可向应用层的相应协议提供可靠传输的服务。UDP协议在享受IP协议提供的网络互联服务的基础上,可向应用层的相应协议提供不可靠传输的服务。
IP协议作为TCP/IP中的核心协议,一方面负责互连不同的网络接口。另一方面为各种网络应用提供服务
TCP/IP体系中有大量的协议,IP协议和TCP协议是其中两个非常重要的协议,因此,用TCP/IP这两个协议来表示整个协议大家族。在嵌入式开发领域,TCP/IP协议族常称为TCP/IP协议栈。这是因为TCP/IP协议体系的分层结构,与数据结构中的栈,在图形画法上是类似的。
因为TCP/IP协议的网络接口层是没有实现的,OSI的又太多了,所以我们学习的时候,采用一种折中的思想。我们学习5层-原理体系结构。
计算机网络是个非常复杂的系统。早在最初的APPANET设计时就提出了分层的设计概念
分层可以将庞大复杂的问题,转换成若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理
下面我们按照简单到复杂的顺序,来看看实现计算机网络要面临哪些主要的问题,以及如何将这些问题划分到对应的层次,层层处理。
先来看最简单的两台:
注意:
实用的计算机网络,一般都由多台主机构成。
假设我们已经解决了物理层的问题,也就是说主机间可以发送信号来传输比特0或1了。
我们来看看在这样一个总线型的网络上还需要解决什么问题。
A发送数据给C,但是表示数据的信号会通过总线传播到总线的每一个主机。
那么问题就来了,主机C如何知道是发给自己的,自己要接受?而主机B.D.E又如何知道该数据并不是发送给自己的,自己应该拒绝呢?
这就很自然的引出了如何标识网络中个主机的问题。也就是主机编址问题。大家可能听说过网卡上的MAC地址,其实他就是主机在网络中的地址。
主机在发送数据时,应该给数据附加上目的地址。当其他主机收到后,看一下目的地址和自己的地址是否匹配,来决定是否接受数据。这就又引出了一个问题:目的主机如何从所表示的一连串比特流中区分出地址和数据?也就是需要解决分组的封装格式的问题。
另外对于总线型的网络,还会出现下面这种典型的问题:某个时刻总线是空闲的,也就是没有主机使用总线来发送数据,一会,主机B和D同时向总线发送数据。这必然会造成信号碰撞。
因此,如何协调各主机争用主线,也是必须要解决的问题。
需要说明的是,这种总线型的早以淘汰,现在使用的是以太网交换机将多台主机互连形成的交换式以太网。
那么以太网交换机又是如何实现的呢?
我们将这些问题全部划分到数据链路层。
到目前为止大家发现,只要解决了物理层和数据链路层各自所面临的问题,我们就可以实现分组在一个网络上实现传输了。但是我们每天都会使用的因特网是由非常多的网络和路由器互连起来的,仅解决物理层和数据链路层的问题,还是不能正常工作。
我们来看这个例子:
这是一个由3个路由器,4个网络组合起来的小型互联网。我们可以把它看做因特网中很小的一部分,在之前的例子中,仅有一个网咯,我们不需要对网络进行标识,而在本例中,有多个网络。很显然,我们面临着如何标识各网络以及网络中各主机的问题?
换句话说,也就是网络和主机共同编址的问题。相信同学们一定听过IP地址,例如这是网络N1中各设备的网络地址
该类IP地址的前三个10进制数用来标识网络,第四个10进制数用来标识主机。
在本例中,网络N1的网络号为192,168 ,1。该网络上的笔记本,主机,路由器的IP地址的前三个数应该都是192,168,1。第四个十进制数分别为1,2,254。用来标识他们自己。
我们再来看一个问题,源主机和目的主机之间的路径不只一条,分组可走不同的路劲到达目的主机。这样就引出了路由器如何转发分组的问题?以及如何进行路由选择的问题?
我们将这些问题全部划分到网络层
到目前为止,我们解决了物理层,数据链路层,网络层各自的问题。则可以实现分组在网络间传输的问题。但是对于计算机网络应用而言这仍然不够。
另外,如果某个分组在传输过程中出现了误码,或者由于路由器繁忙导致路由器丢失分组,换句话说:若出现传输错误,应该如何处理?
我们将这些问题全部划分到运输层。
解决了上面的问题的话我们就可以实现进程之间基于网络的通信。
在此基础上,只需制定各种应用层协议,并按照协议标准编写相应的应用程序。通过应用进程间的交互来完成特定的网络应用。例如,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议等。我们将这些问题全部划分到应用层。
总结:
假设网络拓扑如下,主机属于网络N1,服务器属于网络N2,N1和N2通过路由器互连。
我们使用主机中的浏览器来访问web服务器,当输入网址后,主机会向web服务器发送请求。web服务器收到请求后,会发回相应的响应
主机的浏览器收到相应后,将其解析为具体的网页内容显示出来。
主机和web服务器之间基于网络的通信,实际上是主机中的浏览器应用进程与web服务器中的web服务器应用进程之间基于网络的通信。
那么体系结构中的各层在体系结构中起到什么样的作用呢?
应用层按照HTTP请求协议的规定,构建一个HTTP请求报文,内容如下
应用层将HTTP请求交付给运输层处理,运输层给HTTP报文添加一个TCP首部,使之成为TCP报文段。下图为TCP报文段的首部格式,该首部的作用主要是为了区分应用进程,以及实现可靠传输。
运输层将TCP报文段交付给网络层处理,网络层给TCP报文段添加一个IP首部,使之成为IP数据报,IP数据报的首部格式如下,该首部的作用是使IP数据报可以在互联网上传输。也就是被路由器转发。
网络层将IP数据报交付给数据链路层处理,数据链路层给IP数据报添加一个首部和一个尾部使之成为帧
假设网络N1是以太网,下面为以太网帧首部的格式。
该首部的作用主要是为了能够让帧能够在一段链路上,或一个网络上传输,能够被相应的目的主机接收。
下面为以太网帧尾部的格式
其作用是为了让目的主机检查,所接收到的帧是否有误码。
数据链路层将帧交付给物理层,物理层将帧看做是比特流。
由于网络N1是以太网,因此物理层还会给比特流前面添加前导码。
前导码的内容如下
其作用是让目的主机做好接收帧的准备
物理层将添加有前导码的比特流,变换成相应的信号发送到传输媒体,
我们来看路由器的处理过程。路由器的物理层将信号变换为比特流,
然后去掉前导码后,将其交付给数据链路层
这实际上交付的是帧,数据链路层将帧的首部和尾部去掉后,将其交付给网络层。这实际上交付的是IP数据报。
网络层解析IP数据报的首部,从中提取出目的网络地址,然后查找自身的路由表,确定转发端口,以便进行转发。
网络层将IP数据报交付给数据链路层,数据链路层给IP数据报添加一个首部和一个尾部使之称为帧
数据链路层将帧交付给物理层,物理层将帧看做是比特流,由于网络N2是以太网,因此物理层还会给该比特流前面添加前导码,
物理层将添加有前导码的比特流,变换成相应的信号发送到传输媒体。
信号通过传输媒体到达web服务器。我们来看web服务器的处理过程。
物理层将信号变换为比特流,去掉前导码,交给数据链路层。这实际上交付的是帧
数据链路层将帧的首部和尾部去掉后,将其交付给网络层,这实际上交付的是IP数据报
网络层将IP数据报去掉IP首部之后,将其交付给运输层,这实际上交付的是TCP报文段
运输层将TCP报文段的首部去掉之后,将其交付给应用层,这实际上交付的是HTTP请求报文。应用层对HTTP请求报文进行解析,然后给主机发回HTTP响应报文,与之前的过程类似,HTTP响应报文需要在web服务器层层封装,然后通过物理层变换成相应的信号,再通过传输媒体传输到路由器。路由器转发该响应报文给主机,主机通过物理层将收到的信号转换为比特流,之后通过逐层解封,最终取出HTTP响应报文
任何可发送或接收信息的硬件和软件进程,下图中的字母
对等实体:通信双方相同层次中的实体
逻辑通信的规则的集合,这种通信并不存在,只是我们假设出来的。目的在于我们可以专注研究一层而不用考虑其他层。
例如当我们在研究运输层时我们可以看成运输层的对等实体在进行逻辑通信 ,而不用考虑其他层。
计算机网络协议有三个要素:
在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
协议是水平的,而服务是垂直的。
在同一系统相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。
例如:数据链路层的服务访问点为帧的“类型”字段
网络层的服务访问点为IP数据报首部中的“协议字段”
运输层的服务访问点为“端口号”
上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。
对等层次之间传送的数据包称为该层的协议数据单元。
物理层的称为 :比特流
数据链路层的称为: 帧
网络层的称为: IP数据报或分组
服务数据单元SDU :同一系统内,层与层之间交换的数据包称为服务数据单元
【计算机网络】第一章——计算机网络体系结构详细介绍计算机网络的概念……
【计算机网络】第一章——计算机网络体系结构详细介绍计算机网络的组成与功能……
知识扩展:无线,WiFi,移动IP。可以帮助我们更加深入的了解计算机网络原理逻辑
计算机网络体系结构的基本概念计算机网络体系结构是指计算机网络各层次结构模型及其协议的集合。它定义了计算机网络中各个节点之间进行通信、数据交换和资源共享的方式。一个完整的网络体系结构包括多个层次,每个层次都有其特定的功能和协议,以确保网络中的数据传输能够高效、准确地进行。OSI七层模型详解开放系统互连(OSI)七层模型是计算机网络体系结构中的经典模型,它包括物理层、数据链路层、网络层、
计算机网络体系结构,一般有三种:OSI 七层模型、TCP/IP 四层模型、五层结构。七层模型:TCP/IP四层模型:五层结构:OSI是一个理论上的网络通信模型,TCP/IP是实际上的网络通信模型,五层结构就是为了介绍网络原理而折中的网络通信模型。OSI 七层模型是国际标准化组织(International Organization for Standardization)制定的一个用于计算机或
介绍了计算机TCP/IP和OSI两中网络体系结构
一、计算机网络概述 概念组成和功能:利用通信设备和线路将地理位置不同的,功能独立的多个计算机系统互连起来,以功能完善的网络软件(网络通信协议 信息交换方式 网络操作系统)实现网络中资源共享和信息传递的系统。 数据处理和资源共享是两大基本功能。 逻辑功能分为资源子网和通信子网: 资源子网:负责数据处理
计算机网络体系结构,OSI七层、五层、TCP/IP四层协议模型
在计算机科学领域中,计算机网络体系结构是一个核心概念,它定义了网络通信的标准和协议,确保了不同系统间的兼容性和互操作性。本文将深入探讨计算机网络体系结构的不同层次,并分析它们在软考中的重要性。物理层:构建网络通信的基础物理层是计算机网络体系结构的最底层,它负责处理与物理媒体相关的所有事项。物理层定义了网络设备的机械、电气、功能和过程特性,以确保数据能够在各种物理媒体上正确传输。在软考中,
计算机网络体系结构是计算机科学与技术领域中的一个核心概念,它定义了计算机网络各层次之间的结构和交互方式。对于软考(计算机软件专业技术资格和水平考试)的考生来说,深入理解计算机网络体系结构不仅有助于提升理论知识水平,还能在实际工作中更好地应用相关技术。计算机网络体系结构从整体上可以划分为几个主要层次,每一层都有其特定的功能和协议。这种分层结构使得网络的设计、实现和维护变得更加模块化,也便于不同厂
在软考(软件水平考试)中,计算机网络体系结构是一个重要的考点,它涉及计算机网络的基本概念、组成结构以及各层的功能和协议。对于备考软考的考生来说,深入理解计算机网络体系结构是提升考试成绩的关键之一。首先,我们需要明确计算机网络体系结构的定义。计算机网络体系结构是指计算机网络各层次结构模型及其协议的集合,它描述了计算机网络如何分层、各层的功能以及层与层之间的接口。这个体系结构是计算机网络设计和实现
在计算机网络领域,为了更好地理解和设计网络系统,专家们提出了一个分层的网络体系结构模型。本文将深入探讨计算机网络体系结构的五层模型,帮助读者在备考软考过程中,对这一重要概念有更清晰的认识。物理层:构建网络通信的基础物理层是计算机网络体系结构的最底层,它定义了数据终端设备与数据通信设备之间的接口标准。物理层主要负责传输原始的比特流,处理与电气、机械和定时接口有关的问题。在这一层,数据以比特
@TOC计算机网络分层结构我们把计算机网络的各层及其协议的集合称为网络的体系结构(Architecture)。换言之,计算机网络的体系结构就是这个计算机网络及其所应完成的功能的精确定义,它是计算机网络中的层次、各层的协议及层间接口的集合。体系结构是抽象的,而实现是指能运行的一些软件和硬件网络体系结构是从功能上描述计算机网络结构计算机网络体系结构简称网络体系结构是分层结构。分层的基本原则1.每层之间
在计算机网络中,体系结构的设计至关重要,它决定了网络系统的性能和稳定性。本文将深入探讨计算机网络体系结构各层的功能,帮助读者更好地理解网络运行的内在机制。物理层:构建网络通信的基础物理层是计算机网络体系结构的最低层,主要负责在物理媒体上传输原始比特流。这一层定义了接口的物理特性,如电气、机械和定时接口,以及建立、维护和拆除物理链路的各项操作。物理层为数据端设备提供传输数据的通路,确保数据
软考-网络工程师 计算机网络体系结构计算机网络体系结构随着信息技术的飞速发展,计算机网络已成为人们日常生活和工作中不可或缺的一部分。为了更好地理解计算机网络,本文将重点介绍计算机网络体系结构,包括其定义、组成、常见协议以及数据传输等方面的内容。一、计算机网络体系结构概述计算机网络体系结构是指计算机网络的结构和组成方式,它规定了网络中的通信协议以及设备之间的连接方式。计算机网络体系结构通
在数字世界的底层,计算机网络如同城市的道路系统,其设计质量直接决定了数据交通的效率、安全与可靠性。作为一名Linux从业者,深入理解网络设计是进行系统架构、故障排查和性能调优的基石。等)是我们透视网络、验证设计和解决难题的“手术刀”。将理论知识与这些实践工具相结合,你便能游刃有余地驾驭复杂的网络世界。命令来管理和查看本机的网络接口,这些接口就是你主机接入网络的“端口”。掌握了基础组件,我们还需要遵循一些核心原则来构建健壮的网络。接收端则反向操作,逐层解掉头部,将数据交给上层,这叫。
计算机网络功能: 数据通信(连通性) 资源共享:硬件,软件,数据 分布式处理:hadoop 提升链路可靠性 负载均衡:在分布式处理的基础上,平衡各主机的工作量 计算机网络的组成: 组成部分:协议,硬件,软件 工作方式: 边缘部分:C/S方式, P2P方式 核心部分:为边缘部分服务 功能组成: 通信子 ...
你是否还在为前端项目的多环境配置和无缝更新而烦恼?本文将详细解析MFE-starter项目的部署架构,包括多环境配置管理、容器化部署流程以及蓝绿部署策略,帮助你实现高效、稳定的前端应用发布。读完本文,你将掌握如何利用MFE-starter的配置文件和工具链,轻松管理开发、测试和生产环境,以及如何通过蓝绿部署实现零停机更新。## 多环境配置体系MFE-starter采用分层配置策略,通过不同...
VS调试技巧与调试快捷键 1、添加断点或取消断点:F9(或者点击代码行最左边的灰色行) 2、调试:F10逐过程(不进入函数内部,直接获取函数运行结果) F11逐语句(会进入函数),如果想跳出函数按shift+F11,如果对某个函数的使用定义不清楚,按F12转到定义。 3、按F5执行,如果调试中多个断点,按F5,执行到下一个断点 4