网络的体系结构与协议分层

计算机网络需要解决的问题

数据如何编码成电信号或者光信号呢?
如何唯一的标识网络上的某台主机?
浏览器访问网站页面时使用什么规则?
如何保证多个站点同一个站点通信时如何避免信号的冲突?
如何区分不同的网络应用?等等

在计算机网络中要做到有条不紊得交换数据,就必须遵守一些事先约定好的规则,这些规则明确规定了所交换的数据的格式以及有关的同步问题。
这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议

曾经在以前的博文提到过:网络协议的三要素:语法、语义、同步

名称概念
语法数据与控制信息的结构或格式
语义需要发出何种控制信息,完成何种动作以及做出何种响应
同步事件实现顺序的详细说明

如果我们想让连接在网络上的另一台计算机做什么事情(比如下载这台计算机上面的文件),就需要网络协议。但是我们在个人电脑上进行文件的存盘操作的时候,就不需要任何网络协议


网络分层的思想

比如我们坐飞机,要经过:
票务的检查→行李的托运→登机→起飞→飞行
飞行→着陆→下机→取行李→票务检查
我们发现,仅仅是一个做飞机的过程,它也分了很多细节的步骤,在计算机网络中,我们把类似这样的方法叫分层
在这里插入图片描述
在分层的时候,要注意以下几点:

  1. 复杂问题按照模块分层思想可以便于学习和研究;
  2. 每个层次提供一种服务;
  3. 本层次依赖于下一层次提供的服务;
  4. 层与层之间必须提供接口。

这样的分层特点,是不是和我们坐飞机是非常类似的呢?
模块化的思想贯穿着整个计算机网络的知识内容,十分重要。

对分层思想的进一步讨论:

讨论举例
每一层次相对独立比如一般我们安装QQ的时候,不需要更换硬件。(QQ和硬件属于两个层次)
每一层的实现都是透明的比如开发网络应用程序是需要了解交换机是如何工作的
下层为上层提供服务没有网卡等硬件,QQ不能联网正常运作

网络体系结构与协议分层标准(重点)

网络体系结构的概念:计算机网络体系结构是指计算机网络划分的各个层次及相应协议的集合,换句话说,计算机网络的体系结构就是这个计算机网络及其构建所应完成的功能的精确定义

体系结构是抽象的,而实现是具体的,是真正在运行的计算机软件和硬件。

网络体系结构的核心分层模型
分层模型有两种:参考模型和协议模型。

概念内容
参考模型为各类网络协议和服务之间保持一致性提供通用的参考。即先有模型,再出现协议,例如:OSI体系结构
协议模型提供与特定的协议簇结构精确匹配的模型,即先有协议,根据协议制定模型,例如:TCP/IP体系结构

尽管 TCP/IP 模型和 OSI 模型是讨论网络功能时使用的主要模型,但网络协议、网络服务或网络设备的设计人员也可以自行创建模型来代表自己的产品。不过,设计人员最终还是需要将自己的产品或服务与 OSI 模型和 TCP/IP 模型之中任一或全部相关联才能与行业通信。

对于教学模型,只有五层,如图,用于教学与理解,并不广泛使用:
在这里插入图片描述
用故事解释这五层的含义

这里有一个小故事:Alice想给Bob写信的故事

在这里插入图片描述

具体的过程是这样的:
Alice和Bob两位情侣分居两地,隔海相望,甚是想念。
Alice想给Bob写信,于是信写好了托付给管家
但是家里有两个管家,一个叫TCP、一个叫UDP
管家TCP非常勤快,他在拿到Alice信之后会去和Bob家的一个也叫TCP的管家去确认,但是打电话确认需要很长的时间。管家UDP很懒,他会将信直接给邮递员去送信。
Alice把信给了其中一个管家(不管给了哪个管家)。管家把信给了邮递员。
邮递员送到了邮局。
邮局根据信上面的邮政编码,知道了Bob的地址是在西海岛。
东海岛没有直接到西海岛的邮轮,必须经过夏威夷岛。
于是这个信通过邮轮经过夏威夷岛的邮局再邮轮到了西海岛的邮局
西海岛邮局把信给了西海岛的邮递员,邮递员把信给了管家。
Bob家里的管家也有叫TCP和UDP的,功能和Alice的一样
最后管家把信给了Bob,Bob收到了信。

这是一个小故事,但是可以引出五层网络体系结构,因这里面的每一个环节都代表了一层结构。
读者不妨猜一下再看下面的答案

层次故事里的代表
应用层Alice写信去连写Bob和Bob能够收到信并读取
传输层管家TCP和管家UDP
网络层邮局
数据链路层邮递员、邮轮
物理层陆地、大海

好,现在来逐一解释为什么该层代表着故事里的这个属性

应用层
应用层的任务是通过应用进程之间的交互来完成特定网络应用。
也可以说提供进程之间的通信服务或规则,实现网络之中的具体应用。具体的协议比如DNS、HTTP、FTP、SMTP等等。

此外,把应用层交互的数据单元成为报文
在生活中的实例就是我们使用QQ这个进程的使用是有一定的规则这样另一端的QQ才能够获得信息,这个规则就是应用层所执行的协议。

在故事里Alice写信给Bob,Alice必须写成信的样子(比如书信格式、信的包装等)才能让管家认为这是一封信(下层为上层服务),如果随便写在了一张纸上,谁也不知道它是一封信。这个“信”的规定的样式,就是应用层的协议。

传输层(传输层)
传输层的任务就是负责两台主机进程之间的通信提供通用的数据传输服务。
也可以说它提供端到端(主机到主机)的传输服务。
这里解释一下“通用的”:是指多个应用可以使用同一个运输服务。
运输层有分用和复用两种功能:复用是应用层→运输层、分用则相反。

运输层主要使用一下两种协议:

协议内容
传输控制协议 TCP面向连接的、可靠的数据服务,其数据单元是报文段。(俗称三次握手协议,有其他大佬写了这方面的细节)
用户数据报协议UDP提供无连接的、尽最大努力的数据传输服务,但是不保证数据的可靠性,其数据传输单元是用户数据报

故事里的管家就对应着传输层
两个管家TCP和UDP
勤快的TCP会和对方的TCP管家确认信息,保证了可靠性
UDP管家直接发送信息,尽可能得去偷懒。

网络层
网络层负责为分组交换网上的不同主机提供通信服务,即提供不同网络之间的选路服务。在发送数据时,网络层把运输层产生的报文段或者用户数据报封装成分组或包进行传送。无论在哪一层传送的数据单元,都笼统地用“分组”来表示。
网络层的另一个任务是选择合适的路由,使源主机运输层传下来的分组,能够通过网络中的路由器找到目的主机。
还有要注意的是,网络层中的“网络”和我们最初理解的“网络”的意思不太一样,要区分。

网络层就像邮局,邮局有很多条邮寄线路。
我们信上面都有目标的地址,邮局根据地址选择合适的路线或者中转站。

数据链路层
提供一段链路相邻结点的传输服务
数据链路层将网络层交下来的IP数据报组装成帧,然后在相邻结点上传输帧,每一帧包括了数据和必要的控制信息(比如同步信息、地址信息、差错控制等)数据链路层不仅会检查错误还会改正错误,所以协议比较复杂。
在这里插入图片描述

邮递员和邮轮是属于数据链路层的,
因为他们都是在相邻结点上传输信息

物理层
提供网络通信的物理规范
比如网线、光纤、电线等等。

信息是在陆地和大海上传输的
所以陆地和大海等都是物理层

每一层的数据名都不一样

  • 应用层:称之为消息(message)
  • 网络层:称为分组或包(packet),提供不同网络之间的选路服务
  • 数据链路层:称为帧(frame),提供一端链路相邻结点的传输服务
  • 物理层:称为比特流(bit),提供网络通信的物理规范

数据发送和接收的具体实现

在这里插入图片描述
一句话:发送方自顶向下与接收方成回路。
添加首部是为了添加本层的控制信息,方便接收的时候一步一步除去。
把添加首部叫封装,把除去首部叫解封装
数据链路层添加尾部一般是为了纠错。

OSI体系结构(拓展)

协议栈的本质是对基本功能加以分离和组织。功能的分离使协议栈中的每层都可以独立于其它层工作。例如,如果要访问网站,可以使用笔记本电脑通过家中的调制解调器访问,也可以使用无线连接的笔记本电脑来访问,还可以使用具备 Web 功能的移动电话来访问。无论下面的层如何工作,应用层都可以无缝运行。
同理,下面的层也能够无缝运作。例如,当电子邮件、Web 浏览、即时消息和音乐下载等各种不同应用程序同时运行时,Internet 连接仍能正常工作。

  • 应用层:定义应用软件和网络通信服务的接口,提供标准化应用定义
  • 表示层:对用户数据格式进行标准化,以便在不同类型的系统之间使用,如对数据的编码解码,加密解密,压缩解压缩等;
  • 会话层:管理用户会话和对话,维护系统间的逻辑链路
  • 传输层:管理通过网络的端到端的数据传输控制
  • 网络层:根据网络地址进行选路
  • 数据链路层:管理一端链路两端结点之间数据的传输控制
  • 物理层:定义信号传输的编码,光学、电子和机械特性,定义网络设备接口物理规范

补充:

  • 协议是对等的:收发双方某层协议必须相同
  • 服务是垂直的:下层为上层提供服务
  • 层次实现是透明的:某层实现的细节对其他层次透明
  • 层与层之间必须提供接口:某层必须知道相邻层次的接口。

参考教材和资料:《计算机网络》谢希仁著。还有我优秀教师的教学课件

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zeker62

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值