一.局域网和广域网
随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成业务,就有了网络互连。
网络互连:将多台计算机连接在一起,完成数据共享。数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。根据网络互连的规模不同,可以划分为局域网和广域网。
局域网,即 Local Area Network,简称LAN。Local 即标识了局域网是本地,局部组建的一种私有网络。局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的。
局域网在一定的区域内两两互相建立链接,但这种方式的缺点也很明显,随着电脑的增多,产生的链接线路成倍增长。
广域网通过路由器和交换机解决了局域网的缺点,路由器有4个lan口和一个wan口,让lan口链接电脑,wan口链接上一层的路由器。
虽然路由器只有4个lan口,实际上组建局域网的时候可以有更多设备,让lan口链接交换机。交换交换机的口不分lan口和wan口,所有的口都是等价的。
企业级网络,往往需要一个企业级路由器+若干个交换机,这样的效果等于延伸出许多网线。
二.网络通信基础
IP地址:IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地址。就像我们发送快递一样,需要知道对方的收货地址,快递员才能将包裹送到目的地。
端口号:在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。简单说:端口号用于定位主机中的进程。
协议:协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。网络通讯协议,虽然复杂但本质上也是人为出来的一些规定、为什么要做这么一份规定呢?因为电脑的种类很多,设备的产商也有很多,必须要有一份统一的协议标准。
三.协议分层
网络通信是一个复杂的过程,会设计到一系列繁琐的工作,靠一个协议解决所有的问题会导致这个协议非常复杂庞大,因此就对协议进行了拆分,这么一拆拆出的类型有点多,于是就对协议进行了分层,上层协议调用下层协议,下层协议协调上层协议。这样给协议搞了明确的层级关系,避免阶层级的跨越,降低耦合,提高整个系统的可行性。协议主要分为OSI七层模型(只在教科书里面),TCP/IP五层网络模型(真实的存在)。
一. TCP/IP协议
物理层:描述网络通信基础设施需要遵守的规范
数据链路层:相邻的节点之间数据如何传输
传输层:只关心传输的起点和终点,不关注中间的过程
应用层:拿到这个数据具体要干嘛
网络层:从起点到终点有多少种不同的走法
二. 数据的发送
1.应用层
当数据发送时首先会经过应用层,比如在qq中发送信息时,很多程序里面都会有应用层协议,qq使用的程序假设是如图(发送hello):
应用层会构成应用层数据报,然后调用传输层提供的接口,把上述数据交给传输层去处理。
2.传输层
传输的协议有很多种,TCP和UDP,假设传输的是UDP协议。传输层就会把应用层传来的数据交给UDP,构成UDP数据报。
UDP报头最主要的是源端口和目的端口。UDP不关心载核里面是什么内容,只是把应用层数据当一个字符串,构建一个UDP报头。此时会传给网络层。
3.网络层
网络层最主要的是IP协议,IP协议会根据自己的格式来构建出IP数据报。
接下来会传输给数据链路层
4.数据链路层
数据链路层最主要的是以太网,以太网会针对IP数据报进行进一步的封装,在添加数据头和数据尾。
5.物理层
硬件设备就需要对数据链路层传来的数据进行转换,本质上会转变为二进制的数据(01构成),可能为光信号/电信号/电磁波
到这里就完成了一次发送
三.数据的接收
1.物理层
物理层收到光信号、电信号。电磁信号需要把收到的信号进行解调(数字信号处理课程和通信原理课程学过),得到一串0101二进制数据序列。
这个数据就要交给上一层数据链路层
2.数据链路层
数据链路层的以太网协议就会针对这个数据进行解析,此时把载核给上层IP协议
3.网络层
IP协议针对IP报头进行解析,载核交给传输层
4.传输层
根据UDP数据报进行解析,去掉报头,取出载核交给应用层
5.应用层
UDP报头中有一个字段目的端口,根据目的端口找到关联的应用程序,交给这个程序即可.
qq遇到这个数据就会按照qq协议进行解析,把hello字符显示到界面上,至此接收完成。
从应用层到物理层叫封装,从物理层到应用层叫分用。