【计算机网络学习笔记04】网络体系架构与网络协议_网络体系以及网络协议的定义和内容。-程序员宅基地

技术标签: 学习  网络  网络协议  计算机网络  

【计算机网络学习笔记04】网络体系架构与网络协议

一、网络协议的概念和要素

网络协议是计算机网络相互通信的对等层实体之间,用来交换信息时必须遵守的规则或约定的集合。这些为网络数据交换而制定的通信规则、约定与标准被统称为网络协议,简称协议。

网络协议主要由三个基本要素组成,分别是语法、语义和时序。

  1. 语法:用于定义数据和控制信息的结构或格式。
  2. 语义:用于解释数据或控制信息的具体含义。
  3. 时序(同步):用于对事件实现顺序的详细说明。

二、计算机网络体系结构

计算机网络各层、层中协议以及层间接口的集合(即网络层次结构模型和协议的集合),被称为网络体系结构。计算机网络的工作是建立在计算机网络体系结构,即协议、层次、接口和体系结构几个重要的概念基础上。

  1. 协议:用于双方通信时所约定好的一种通信方式。当双方发生通信时,双方必须执行约定好的通信规则。
  2. 层次:当一个系统过于复杂庞大时,需要将复杂的系统拆分成多个小的、功能相对独立的模块或子系统。这一些模块或子系统就是一级级的层次。
  3. 接口:一个复杂且庞大的系统采用了分层结构后,层与层之间也需要一种介质来进行交流。层与层之间可通过接口来提供服务和交换信息。在计算机网络中,同一结点的相邻层次之间通过明确规定的接口来交换信息,一般为下层通过接口向上层提供服务。只要接口条件不变,下层提供的功能则不变。

层次化结构计算机网络体系的特点:

1)各层之间相互独立

各层之间相互独立,高层不必关心低层的实现细节,只需知道低层所提供的服务,以及本层向上层所提供的服务即可,能真正做到各司其职。

2)易于实现和维护

相比一个庞大复杂的系统,若干个相对独立的子系统有利于实现和维护,某个层次实现细节的变化不会对其他层次产生影响。

3)易于实现标准化

在各层分别定义标准接口,使具备相同对等层的不同网络设备能实现互操作,各层之间则相对独立,一种高层协议可放在多种低层协议上运行;能有效刺激网络技术革新,因为每次更新都可以在小范围内进行,不需对整个网络动大手术。

三、OSI和TCP/IP参考模型以及五层协议

OSI参考模型

OSI(Open System Interconnect),即开放式系统互连。 一般称为OSI参考模型,是ISO组织在1985年研究的网络互连模型。该体系结构标准定义了网络互连的七层框架,自下而上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,如图所示1-1,各层的主要功能分析如下:
在这里插入图片描述
图1-1 OSI参考模型

1) 物理层

物理层位于OSI参考模型中的最底层。该层利用传输介质为通信的主机之间建立、管理和释放物理连接,实现比特流的传输。物理层的数据传输单元是比特(bit),该层的典型代表设备有中继器和集线器,其服务对象是数据链路层。主要协议为Rj45、802.3等。
物理层和具体传输内容无关,只关心物理设备传输来的电子信号“1”与“0”,并为数据链路层实体提供建立、传输、释放所必须的的物理连接,从而提供透明的比特流传输。

2) 数据链路层

数据链路层位于第二层,上层是网络层,下层是物理层。该层主要在物理层所提供的比特流传输基础上,通过建立数据链路连接,采用差错控制和流量控制方法,以保证本会有出错概率的物理线路,在传递给网络层时变成没有差错的数据链路。同时也为网络层提供将网络层传下来的数据报组装成帧的任务。数据链路层的传输单元是帧。该层的典型设备是二层交换机,其服务对象是网络层,主要协议有SDLC、HDLC、PPP、STP等。

在数据链路层,发送方将输入的数据拆分成数据帧,然后按照顺序将这些数据帧发送。如果服务是可靠的,则接收方必须确认收到每一帧并回复确认帧,从而实现差错控制。此外为避免发送方发送的数据过大过频繁,数据链路层往往还会采用流量控制,以减缓数据堵塞。

3) 网络层

网络层位于第三层,上层是传输层,下层是数据链路层。该层主要任务是通过路由选择算法把分组从源端传送到目的端,为分组交换网络上的不同主机提供通信服务,以及实现流量控制,拥塞控制和网络互联功能。网络层的数据传输单位是分组,该层的典型代表设备有路由器和三层交换机,其服务对象是传输层,主要协议有IP、ICMP、IGMP、ARP、RARP、OSPF等。

在网络层,分组从发送方到接收方所选择的路由可能为静态,也可能为动态的自动更新,可根据负载情况选择合适的路由,从而避开网络中的故障组件。同时,一个数据报到达目的地的过程中,可能会经过寻址方案和使用协议不同的网络,网络层要保证异构网络相互连接成为互联网络。

4) 传输层

传输层位于第四层,上层是会话层,下层是网络层,该层主要任务是负责主机中两个进程的通信,即可靠的端到端的连接和数据传输服务。传输层的数据传输单元是报文,主要协议有TCP、UDP。
传输层接受来自上一层的数据,在数据较为庞大时把数据分割成较小的单元后再发送至网络层,并确保这些数据信息能正确无误地抵达。

5) 会话层

会话层位于第五层,上层是表示层,下层是传输层,该层主要任务是向表示层实体或用户进程提供建立连接并使数据能够有序地进行传输,并对连接进行管理、维护与终止等操作。主要协议有ADSP、ASP等。

6) 表示层

表示层位于第六层,上层是应用层,下层是会话层,该层主要任务是处理两个通信系统中交换信息的表示方式(语义、语法),同时具有对数据进行加密、解密、压缩与恢复的功能。主要协议有JPEG、ASCII。

7) 应用层

应用层位于ISO参考模型的最高层,该层主要任务是向用户提供各种能够产生网络流量的应用服务。主要协议有FTP、SMTP、HTTP,这些应用协议得到广泛使用,可向用户提供文件传输、电子邮件以及浏览网络新闻等常用服务。

TCP/IP参考模型

前面我们介绍了OSI参考模型,该种参考模型旨在为网络体系结构与协调发展提供一种国际标准,只要遵循该模型的结构,都可以接入计算机网络实现互联。TCP/IP参考模型是在OSI七层模型基础之上精简发展过来的。由于OSI七层模型比较繁琐,所以当前几乎不用。TCP/IP是一组用于实现网络互连的通信协议。Internet网络体系结构以TCP/IP为核心。基于TCP/IP的参考模型将协议分成四个层次,它们分别是:网络接口层、网际层、传输层、和应用层。

1) 网络接口层

网络接口层大致对应OSI的物理层与数据链路层。该层负责发送和接收IP分组。该层没有具体的协议和内容,仅仅起到接入的作用。主机可以根据主机所处的网络选择使用广域网、局域网或城域网的各种协议通过和网络实现互联。因此,该层不是真正意义上的一个层,而是主机与传输线路之间的一个接口。

2) 网际层

网际层大致对应OSI的网络层。其主要任务是允许主机将分组传输到网络中,让每个分组独立地到达目的地,即完成路由选择。该层还提供建立独立的局域网之间的互联网络。在互联网络该层能允许网间的报文根据它目的地址通过路由器传递至另一个网络。

3) 传输层

传输层大致对应OSI的传输层。其主要任务是为应用程序提供端到端的通信功能。负责将用户数据按规定长度组成数据报发送,在接收端对数据报按顺序进行分解重组以恢复用户数据。为了可靠地传输数据,该层TCP协议能对数据报进行顺序控制、差错检测等功能。

4) 应用层

应用层大致对应OSI的应用层、表示层和会话层。该层将这三层合为一层,并对其功能实现部分进行了一定精简。该层同时对用户程序端提供会话搭建与管理、数据加密解密、与提供网络服务。

TCP/IP五层协议

早期的TCP/IP模型是四层结构,后来借鉴OSI的七层参考模型并与实际使用情况相结合后,形成了一个新的五层结构。基于TCP/IP的参考模型将协议分成五个层次,它们自下而上分别是:物理层、数据链路层、网络层、传输层和应用层。

TCP/IP参考模型的网络层本身并不是实际的一层,仅定义了网络层与数据链路层的接口。事实上,物理层和数据链路层的独立划分也是非常必要与合理的。在TCP/IP五层协议中,因为考虑到物理层必须考虑光纤、无线通信等传输特征,而数据链路层的任务则是确定帧的开始与结束的层,所以设计师恢复了物理层和数据链路层这两层的独立划分。

如今的网络多以TCP/IP协议作为基础,人们更多地将TCP/IP分层模型应用在实际工作中去分析与解决问题,故而TCP/IP五层模型应用得更加广泛。

在这里插入图片描述

四、网络标准化

全球有许多网络生产商和供应商,若要在世界范围内组建这些相互交流的网络系统,则必须要有一个标准化,以实现不同厂商的软、硬件之间的相互连通。

在这里插入图片描述

IEEE 802

IEEE 802是最为常见的网络标准化之一,又称为LMSC(LAN /MAN Standards Committee,局域网/城域网标准委员会),致力于研究局域网和城域网的物理层和MAC层中定义的服务和协议,对应OSI网络参考模型的最低两层(即物理层和数据链路层)。

IEEE 802系列标准是IEEE 802 LAN/MAN 标准委员会制定的局域网、城域网技术标准。其中最广泛使用的有以太网、令牌环、无线局域网等。这一系列标准中的每一个子标准都由委员会中的一个专门工作组负责。

在这里插入图片描述


作者: 裕新
排版: 胖虎
初审: 正山小种
复审: 二月二

更多视频课程请访问 “CSDN 正月十六工作室讲师学院首页
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hjx020/article/details/123660733

智能推荐

JSTL 标签大全详解_jstl标签-程序员宅基地

文章浏览阅读10w+次,点赞124次,收藏539次。(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/53311722 冷血之心的博客)关注微信公众号(文强的技术小屋),学习更多技术知识,一起遨游知识海洋~目录一、JSTL标签介绍1、什么是JSTL?2、JSTL标签库:3、使用taglib指令导入标签库:4、core标签库常用标签:..._jstl标签

Java调用shell脚本及参数传递_java给shell传数组变量-程序员宅基地

文章浏览阅读2.3k次。Java调用shell脚本及参数传递需求脚本示例执行代码封装工具类最后需求项目需求:由于Python没有提供Http请求的接口,而是以脚本的方式调用,Java需要调用pyhon脚本得到结果返回写入文件,然后Java再读取写入的文件,拿到结果页面展示。坑:这种方式适合单线程模式,不是个多个请求并发,写入的文件是固定的,并发情况下,第一的请求如果读取的是第二次请求的结果,就会有问题。脚本示例Java代码不是直接调用python脚本,而是先调用shell脚本,shell脚本再调用python脚本,Ja_java给shell传数组变量

【R语言(一)】R 和 RStudio的安装与初步使用-程序员宅基地

文章浏览阅读7.9k次,点赞10次,收藏69次。R是一种流行的统计软件和编程语言,用于数据分析和可视化。它是一个开源的软件,拥有庞大的社区支持和丰富的扩展包,可运行在各种操作系统上,如Windows、Mac和Linux。R被广泛应用于数据科学、统计学、机器学习和其他相关领域的研究和实践中。以下是R的一些主要特点:数据分析和可视化:R可以轻松地导入、整理和分析数据,然后将结果以各种方式可视化,如绘制图表、创建热图等。R还提供了许多常见的统计分析方法,如线性回归、ANOVA、聚类分析等。编程语言:R是一种完整的编程语言,具有各种编程结构和数据类型。_rstudio

VB6-该部件的许可证信息没有找到的解决方法_vb licenses-程序员宅基地

文章浏览阅读9.2k次。VB6添加控件时提示 该部件的许可证信息没有找到,将以下文件保存为注册表文件并导入Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Licenses] @="Licensing: Copying the keys may be a violation of established copyrights._vb licenses

android agentweb进度,AgentWeb-Android-H5混合开发-程序员宅基地

文章浏览阅读301次。简介agentweb 是对webview进行的又一层封装较为轻量级所以基本的开发流程大致和webview原理相似将html5文件方入asset文件夹下,访问路径为final private String CoachFile = "file:///android_asset/teacher/info-teacher.html";运行demo此demo使用了bintray/Jcenter 这个东西Jc..._agentweb token

【Phone ECC】紧急号码的管理及客制化方法_sim卡 ecclist-程序员宅基地

文章浏览阅读614次。[Android Version]Android 5.0/5.1 (L)Android 6.0 (M)Android 7.0(N)Android 8.0(O)[DESCRIPTION]L及之后的版本紧急号码Customer的部分改成了在XML文件中来配置,文件的路径: alps\vendor\mediatek\proprietary\external\EccL..._sim卡 ecclist

随便推点

C++ vector容器的常用用法_c++ vector修改数据可以直接赋值吗-程序员宅基地

文章浏览阅读7.6k次,点赞23次,收藏93次。vector可以说是一个动态数组,它可以存储任何类型的数据,包括类!使用vector需包含头文件#include< vector >.定义一、不带参数// 定义了一个int类型的容器vector<int> v1;// 定义了一个double类型的容器vector<double> v2;注意事项:容器可以使用数组方式获取它的值 和 给它赋..._c++ vector修改数据可以直接赋值吗

万字长文,深度解析SpringMVC 源码,让你醍醐灌顶!!-程序员宅基地

文章浏览阅读4.1k次,点赞11次,收藏92次。文末可以领取所有系列高清 pdf。大家好,我是路人,这是 SpringMVC 系列第 16 篇。本文将通过阅读源码的方式带大家了解 springmvc 处理请求的完整流程,干货满满。目录1..._springmvc源码分析

kdump核心崩溃信息存储到SSH服务器-程序员宅基地

文章浏览阅读752次。1、配置测试机和SSH服务器之间的免密钥登录:测试机生成密钥#ssh-keygen -t rsa将/root/.ssh/id_rsa.pub中的内容拷贝到SSH服务器的/root/.ssh/authorized_keys文件中,并修改文件权限为600;2.、编辑测试机的/etc/kdump.conf,注释其他内容,并在文件末尾添加:ssh [email protected] sshkey /root/.ssh/id_rsa path /sshkdump core_collect_核心崩溃信息存储到ssh服务器

java财务对账系统设计_对账系统设计-程序员宅基地

文章浏览阅读1.4k次。更多支付内容请移步个人站:YKBLog.top对账整体设计从整体来看,按照时序维度的先后,系统对账主要分为三阶段的工作。分别是数据准备、数据核对和差错处理。数据准备细分一下,又分为文件获取、文件解析、数据清洗。在对账专业概念中,数据核对和差错处理又叫轧账和平账。具体设计脑图如下:check-arch.png对账各个模块设计数据准备数据准备,顾名思义,我们需要把对账所需的全部数据,接入到我们的对账系..._java 对账实战思路

Python新姿势:用魔法方法玩转对象-程序员宅基地

文章浏览阅读887次,点赞23次,收藏17次。Python中魔法方法(magic method)其实就是那些被双下划线包围的方法,比如__init____str__等等。这些魔法方法为类添加了**“魔力”,让我们可以在面向对象编程中用更加简洁的代码来操作对象。本篇根据面向对象编程的一些场景来介绍常用的魔法方法**。Python的魔法方法很多,本文只是列举了其中很少的一部分,github上有一个示例python。

小程序云开发 上传图片到云存储_微信小程序上传图片到云存储-程序员宅基地

文章浏览阅读9.4k次,点赞20次,收藏102次。在学习了小程序云开发后,遇到了开发中常见的图片上传,今天简单的记录总结下在云开发中如何实现图片上传到云存储中。_微信小程序上传图片到云存储

推荐文章

热门文章

相关标签