【Linux网络编程】网络基础一

从今天开始我们将要从系统横跨到网络的学习了,因此有些书我们就可以读起来了。

操作系统

原理:
《操作系统精髓与设计原理》、《现代操作系统》

Linux原理方面的书
《Linux内核设计与实现》–陈莉君、《深入理解Linux内核》(选读–不作为重点)

Linux编程方面的书:
《Linux高性能服务器编程》、《Unix环境高级编程》

体系结构:
《深入理解计算机系统》

对于系统学过前面的知识建议读书顺序:先编程,后原理

1.计算机网络背景

1.1 网络发展

下面的网络的发展有一个逻辑链条,计算机本质是为了给人提供计算任务,而人之间是要相互协作的,注定计算机之间也必须相互协作。计算机一定是通过相通数据来相互协作的。所以网络的发展有它的必然性。

独立模式:计算机之间相互独立

在这里插入图片描述

网络互联: 多台计算机连接在一起, 完成数据共享

在这里插入图片描述

比如说清华大学实验室和贝尔实验室是两个不同的局域网,它们各自内部可以互相通信,并且它们之间还想互相通信。

而且学习网络一定不能忘记一个角色:运营商, 建基站,拉网线等等都是他们做的。

局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起

路由器左边是一个局域网,右边也是一个局域网,用路由器连接已经属于跨网络了。

在这里插入图片描述

广域网WAN: 将远隔千里的计算机都连在一起

在这里插入图片描述

所谓 “局域网” 和 “广域网” 只是一个相对的概念。 比如,我们有 “天朝特色” 的广域网,也可以看做一个比较大的局域网。

假设有一台主机里面有很多设备CPU、显卡等等,我们知道这些都是用一条总线连接起来的。所以,一台计算机内部本质也是一个小型网络结构。并且计算机内部也有协议,驱动程序访问硬件就是通过协议来访问的。所以每一个硬件都是自己的协议。

现在假设把主机里的硬件拿出去,主机在浙江,硬盘在贵州,两个通过网线连接起来,以前我们写数据写到本地,现在无非就是通过网络写到远端。这里就相当于一台大型计算机。

在这里插入图片描述

总之:计算机体系结构中网络,网络中有体系结构

1.2 认识 “协议”

可能我们所知道的 “协议” 是一种约定。那为什么要有协议呢?这个约定是什么呢?

假设两个人近距离沟通时,沟通不会有太大的障碍,毕竟离的近说话都能听到,有什么事情可以当面解决。

但是当两个人一个在桥头一个在桥尾距离500m,有可能这句话整体没听到,部分没听到。因为距离较远连对方的脸都看不到因此确定不了对方有没有收到。

因为通信距离变长了,可能会引入新的通信问题。所以我们要尽可能地减少通信成本:因此需要定制协议!

尽可能地减少通信成本:定制协议

所有网络的问题:本质都是传输距离变长了!

上面说了这么多只回答了为什么要有协议,下面我们谈谈什么是协议。

假如张三考上大学了但是家里比较一般,因此打电话的时候能省就省。当时打电话不通不要钱,通了没接不要钱,因此他走的时候和他父亲这样说,我在外面会给家里打电话,我们做个约定电话来了不要着急接,电话响一声就挂代表我到学校了,电话响两声就挂代表你该给我生活费了,电话响三声及以上代表我有事要和你说需要你接电话。当张三上学走了它和家人的距离就拉远了。然后在外地上学就通过这样打电话的方式和家里人互相交流。

这个故事我们抓住重点,电话响一声、两声、三声都代表不同的含义。而这个含义不用解释,双方早就已经有了共识了。-------->这就是我们的约定,而这种约定就是协议。而这种协议的约定是为了减少通信成本!

如果刚才的故事用计算机语言来表达, 这个就是计算机协议!

在这里插入图片描述

计算机之间的传输媒介是光信号和电信号. 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息. 要想传递各种不同的信息, 就需要约定好双方的数据格式。

只要通信的两台主机, 约定好协议就可以了么?

比如一个土匪寨今天夜里的口号是天王盖地虎,对应的口号是宝塔镇河妖!下面的人都觉得这个约定很好。并且也知道这回事了。但是这个寨子不是同一个地方的人,有北京的、上海的、浙江的、河南的。他们的口音不一样。所以当守夜的人说天王盖地虎的时候,另一个人虽然知道回答宝塔镇河妖,但是用的是方言。因此守夜的人根本听不懂,认为你说错了。

所以说协议虽然约定好了,但是执行上不太一样,那可能也不太行!

  • 计算机生产厂商有很多;
  • 计算机操作系统, 也有很多;
  • 计算机网络硬件设备, 还是有很多;
  • 如何让这些不同厂商之间生产的计算机能够相互顺畅的通信? 就需要有人站出来, 约定一个共同的标准, 大家都来遵守, 这就是 网络协议;

就好比上面的故事,寨主都让用普通话来进行口号的提问与回答。

2.网络协议初识

协议一定要有配套的数据结构,还有对应的算法来支持。所以协议我们依旧可以认为是软件。后面我们也能看见协议是按照层状结构来划分的。既软件是按照层状结构划分的。

2.1 协议分层

下面以打电话的例子来说明协议为什么要分层

当你在和你朋友打电话的时候,你认为你在和你的朋友在直接沟通吗?
理论上是这样,但实际上你和对方并不是直接沟通的,而是把你说的内容给电话,电话通过相关的协议交给另一部电话,另一部电话把你说的话解码语音播报让对方听到。这就是一种分层。一个语言层,一个通信设备层必须搭配使用,不然相隔百里之外就不能进行交流。

软件在层状结构中,一旦分层的好处:
可以对任意一层左任意的修改并不影响其他层,从而达到一定解耦的过程。
就如下面的图片所示。

评论 71
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值