计算机网络需要解决的问题
数据如何编码成电信号或者光信号呢?
如何唯一的标识网络上的某台主机?
浏览器访问网站页面时使用什么规则?
如何保证多个站点同一个站点通信时如何避免信号的冲突?
如何区分不同的网络应用?等等
在计算机网络中要做到有条不紊得交换数据,就必须遵守一些事先约定好的规则,这些规则明确规定了所交换的数据的格式以及有关的同步问题。
这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议
。
曾经在以前的博文提到过:网络协议的三要素:语法、语义、同步
。
名称 | 概念 |
---|---|
语法 | 数据与控制信息的结构或格式 |
语义 | 需要发出何种控制信息,完成何种动作以及做出何种响应 |
同步 | 事件实现顺序的详细说明 |
如果我们想让连接在网络上的另一台计算机做什么事情(比如下载这台计算机上面的文件),就需要网络协议。但是我们在个人电脑上进行文件的存盘操作的时候,就不需要任何网络协议。
网络分层的思想
比如我们坐飞机,要经过:
票务的检查→行李的托运→登机→起飞→飞行
飞行→着陆→下机→取行李→票务检查
我们发现,仅仅是一个做飞机的过程,它也分了很多细节的步骤,在计算机网络中,我们把类似这样的方法叫分层
在分层的时候,要注意以下几点:
- 复杂问题按照模块分层思想可以便于学习和研究;
- 每个层次提供一种服务;
- 本层次依赖于下一层次提供的服务;
- 层与层之间必须提供接口。
这样的分层特点,是不是和我们坐飞机是非常类似的呢?
模块化的思想贯穿着整个计算机网络的知识内容,十分重要。
对分层思想的进一步讨论:
讨论 | 举例 |
---|---|
每一层次相对独立 | 比如一般我们安装QQ的时候,不需要更换硬件。(Q |