前言
大物理学家费曼提出一个高效的费曼学习法,即从问题入手,试着把问题都讲出来,以教代学,一旦你能把问题都讲清楚,便学会了。所以我想尝试一下把网络/通信/协议讲清楚,借此让自己学得明白,同时也锻炼自己得表达能力。
计算机网络 - 计算机之间的网络互通
在这一章我们着重介绍在生活中两台计算机的通信过程,在此过程中我们拨开迷雾一窥计算机网络通信的神秘面纱。在全世界成千上万的计算机中,无论地点新旧的计算机是如何准确的找到对方并进行通信的呢,并把数据按需发送给对方呢。
分层:分层是计算机领域中常用的技巧 分层是为了隔离,通过分层划分职能,拆解问题,层与层之间约定接口,屏蔽实现细节,下层向上层提供能力,上层利用下层的能力提供更高的抽象。比如大家都非常熟悉的网络通信的五层模型,TCP/IP的四层模型,说实话分层模型的具体内容还是极其复杂的,所以很多人并不是很清楚为什么分五层,或者经常混淆分层模型负责的任务。
1. 物理层
这一层比较好理解,两台计算机之间要通信需要什么?当然是通信链路,这个通信链路在物理层表现得形式可能是光纤,铜缆,无线电,卫星,双绞线等介质把它们连接起来才能通信。
也就是说,物理层负责把计算机连接起来,然后在计算机之间通过高低电频信号来传输电信号数据
2. 数据链路层
物理层是单纯的将计算机连接起来,并在之间传输高低电频信号,如果传输毫无规则我们是无法识别并处理这些信号。因此,我们需要制定一套规则或者说是协议来进行0,1的传送。例如多少个电信号为一组啊,每一组信号应该如何标识才能让计算机读懂啊等等。因为与硬件相关,所以需要借助系统的驱动程序,链路层协议就是定义这些细节的,比如怎么把数据从网卡发送到光纤,采用什么格式编码等,它解决的数据在媒介上表示、流动的问题。
于是,就有了网络协议。
1.以太网协议
以太网协议规定,一组电信号构成一个数据包,我们把这个大