文章目录
- 前言
- 一、局域网和广域网
- 1.局域网LAN
- 2.广域网WAN
- 3.城域网和校园网
- 4.如何区分广域网和局域网
- 二、协议
- 1.概念
- 2.理解
- 3.协议分层
- 4.数据传输的条件
- 三、OSI七层模型(了解即可)
- 1.概念
- 2.OSI七层模型
- 四、TCP/IP五层(四层)模型
- 1.概念
- 2.注意要点
- 3.计算机层状体系结构图
- 五、网络传输基本流程
- 1.报头
- 2.局域网通信原理
- 局域网通信原理
- 3.以太网(了解即可)
- 4.网络传输流程图
- 5.数据包封装与分用
- 六、IP与MAC地址
- IP地址
- MAC地址
- IP地址和MAC地址
- 总结
前言
从本文开始,我们来学习计算机网络。本文主要介绍了局域网和广域网、协议、TCP/IP四层模型、网络传输的基本流程、IP地址和MAC地址等相关概念。
一、局域网和广域网
独立模式:计算机之间相互独立;
网络互联:多台计算机通过网络连接在一起,完成数据共享。
1.局域网LAN
计算机数量较多时,需要通过交换机和路由器来连接在一起,范围比广域网的范围小。局域网的范围可以是一个家庭、一个学校、一个公司……通常情况下,私网或内网也可以表示这个概念,都是指企业、学校、家庭等组织内部形成的局域网。
2.广域网WAN
将相隔千里的计算机也可以连接在一起。所谓的“广域网”和“局域网”只是个相对的概念,广域网也可以看做是一个比较大的局域网。Internet可以被看做是一个广域网。通常情况下,公网和外网也可以表示这个概念,它们可以看做是广域网的一部分。
3.城域网和校园网
我们还听过城域网和校园网这样的概念,城域网实际上就是在一个城市的范围内建立的计算机通信网,而校园网是在一个学校的范围内建立的计算机通信网。城域网和校园网也是一个相对的概念,我们可以将它们也看做是一个较大的局域网。
4.如何区分广域网和局域网
一般情况下,我们可以根据是否有路由器来初步区分广域网和局域网。
理论上,如果该网络中存在路由器,则该网络可以连接到其它局域网和互联网上,从而形成广域网。
如果网络中没有路由器,则只能通过同一局域网内的设备来进行通信,因此可以被视为局域网。
当然这种方式来区分广域网和局域网并不完全准确。比如,在一个大型企业或学校中可能会使用多个路由器来分隔不同部门或楼层的网络。这种情况下,整个网络仍被视为一个局域网,而不是广域网。
二、协议
1.概念
协议,本质上就是一种约定。
通信双方曾经做过某种约定,之后就默认使用这种约定来做事情。
当然协议并非网络专用,例如:驱动程序访问硬件的过程通过一些协议。
计算机中存在各种各样的设备:CPU/显卡/网卡等,计算机内部通过线路连接各个组件,在计算机内部的设备和设备之间也存在着协议。因此一个计算机内部本质也是一个小型的网络结构。
假设这些线路可以延展到很长,我们将硬盘放到很远的地方,由于还是被同一台计算机的线路连接,因此它还是属于这一台计算机,就只是线路被拉长了。此时我们让计算机存储数据就是由之前的写入本地变成了通过网络写入远端了。再假设,我们将CPU等设备同样的放到较远的地方,就相当于我们将一台计算机的各个功能用多台计算机实现(通过网络)。
因此,计算机体系结构中有网络,网络中有体系结构。
我们在学习系统时,没有谈过协议,为什么网络中要讨论协议?
这是因为多台计算机距离较远,为了减少它们之间的通信成本,我们需要协议。
所有的网络的问题,都是因为传输距离变长了。
2.理解
如何理解协议呢?
举个例子:
我们都知道打电话,如果收到电话的人没有接电话,则是不需要收取电话费的。为了省钱,张三和父亲做了约定:如果电话响一下就挂了,说明是平安到学校了;如果电话响两下就挂了,说明是生活费不够需要打钱了;如果响三下还没挂掉,说是有事要打电话,此时再接通电话。如此一来,需要花费的电话费就能少一些,同时还可以将信息传递到。
这种电话响的次数不同,代表的含义不同。而这个含义不需要进行解释,它是通信双方曾经约定好的,这就叫做协议。
在计算机世界里,如果一台主机想要另一台主机做一件事,它们之间就需要通信,为了减少通信成本,就会出现类似的协议。比如,预先规定好发1个字节,字节的不同,代表要另一台主机做的事不同。
虽然计算机世界有协议,但是不同的计算机生产厂商,不同的操作系统,它们所规定的协议不同(各种有各种的协议),这样的主机与主机之间就不能正常通信,因此必须统一约定一个标准,让大家都能遵守。这个标准就是网络协议(TCP/IP标准)。
3.协议分层
- 分层:
打电话这个例子:从人的角度出发,它是人与人之间的沟通交流;从通信设备的角度出发,它是电话与电话之间的沟通,这就是分层。
语言层和通信设备层是不同的,但是它们可以搭配使用。 - 分层的好处:
把软件模块化,可以将上层语言与下层通信设备之间解耦,解耦以后,如果我们更换通信设备,而上层语言不用改变;如果我们更换上层语言,则底层不用改变。即,对任意一层做修改不会影响到其它层。 - 分层的依据:
功能集中、耦合度高的模块放在一层,即高内聚。
每一层解决特定的问题,即功能解耦。
4.数据传输的条件
即,需要具备的能力
- 数据包交付能力
如果两台很远的主机之间要传输数据,则首先要有将数据交付给另一台主机的能力。 - 路径选择能力
因为面向的有成千上万个主机,如果不知道要交付给哪一台主机也不行。 - 容错纠错能力
如果数据传输中出现错误,就要重新传递一份。 - 数据解析能力
数据传递过去,对应的主机要能够识别接收到的是什么,然后才能使用接收到的数据。
这里的每一层都有自己的协议,每一层的协议主要是用来解决当前层的问题。
三、OSI七层模型(了解即可)
1.概念
- OSI(Open System Interconnection, 开放系统互联)七层网络模型——被称为开放式系统互联参考模型;
- 它将网络从逻辑上分为了七层,每一层都有相关的、相对应的物理设备;
- OSI七层模型是一种框架性的设计方法,其中最主要的功能就是帮助不同类型的主机实现数据的传输;
- 它最大的优点是将服务、接口和协议这三个概念明确的区分开,它的概念情况,理论也相对完整。通过七个层次化的结构模型使不同的系统、不同的网络之间实现可靠的通讯。
- 但是它既复杂又不实用,因此后来在具体实现上对它做了调整,于是就有了我们现在看到的TCP/IP四层协议(除开物理层)。我们主要了解TCP/IP四层模型。
2.OSI七层模型
分层名称 | 功能 | 功能概览 |
---|---|---|
应用层 | 针对特性应用的协议 | 针对每个应用的协议 |
表示层 | 设备固有数据格式和网络标准数据格式的转换 | 接收不同表现形式的文件,如:文字流、图像、声音等 |
会话层 | 通信管理。负责建立和断开通信连接。管理输出以下的分层 | 何时建立连接、何时断开连接以及保持多久的连接 |
传输层 | 管理两个节点之间的数据传输,负责可靠传输(确保数据被可靠的传送到目标地址) | 判断是否有数据丢失 |
网络层 | 地址管理与路由选择 | 判断经过那个路由传递到目标地址 |
数据链路层 | 互联设备之间传送和失败数据帧 | 数据帧与比特流之间的转换 |
物理层 | 用‘0’和‘1’表示高低电压 | 比特流和电子信号的转换、连接器和网线的规格 |
四、TCP/IP五层(四层)模型
1.概念
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP同学协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
- 物理层
负责光/电信号的传递方式。
例如:现在的以太网通用的网线(双绞线)、早起以太网采用的同轴电缆(现在主要用于有线电视)、光纤、现在的wifi无线网使用的电磁波等,都属于物理层的概念。
物理层的能力决定了最大传输速率、传输距离、抗干扰性等。
集线器(Hub)工作在物理层。 - 数据链路层
负责设备之间的数据帧的传送与识别。
例如:网卡设备的驱动、帧同步(从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网、无限LAN等标准。交换机(Switch)就工作中数据链路层。 - 网络层
负责地址管理和路由选择。
例如,在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。
路由器(Router)工作在网络层。 - 传输层
负责两台主机之间的数据传输。
例如:传输控制协议(TCP),能够区别数据可靠的从源主机发送到目标主机。 - 应用层
负责应用程序间沟通。
例如:简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
我们的网络编程主要针对应用层。
2.注意要点
物理层一般情况下我们考虑的比较少,因此我们也可以称它为TCP/IP四层模型。
数据链路层解决的是能够传递的问题,网络层解决的是选择路径的问题,传输层解决的是纠错的问题,应用层是解决数据解析的问题。这里的数据链路层中的网卡层是驱动程序的一部分。网络层和传输层是操作系统内部自己实现的。
所有操作系统都一样,因此全球的主机都能互联。
这里的TCP和IP各自是传输层和网络层最具代表的两个协议,这个协议栈,命名为TCP/IP模型,足以看出这两个协议的重要性,它们的重要性是操作系统赋予的。
3.计算机层状体系结构图
网络通信中,在应用层传输层之间会有系统调用接口,主要是文件类的系统调用接口。
五、网络传输基本流程
1.报头
协议每一次都有,而每一个协议最终的表现就是协议都要有报头。
例如:我们收快递件的时候,不会只收到物品,还会收到快递盒和快递单。这个快递单就是报头。如果我们想要发数据,发送的数据会比我们想要发送的数据多一些,这个多出来的部分就是报头。
快递单号是给快递员看的,这个快递单就是快递公司自己定的协议,这个快递单子在它们的物流体系中都能够被识别。
由此得出结论:协议通常是通过协议报头来表达的,每一份数据最终在被发送或者在不同的协议层中,都要有自己的报头。
2.局域网通信原理
两台在同一局域网的主机之间是可以直接通信的。
每一台主机都有网卡,每一张网卡都有自己的地址(MAC地址),就像人的身份证一样,可以用来表示网卡的唯一性。
MAC虽然全球唯一,但是它不应用于全球,它只是在局域网中标识自己的唯一性。
指令:ifconfig
,查看云服务器的MAC地址。
注意:云服务器这里的MAC地址是一个虚拟地址。
局域网通信原理
局域网中有很多的机器:
如果MACI想要跟MAC7发送消息时,其他所有主机也都能收到,但是其他主机在内部做协议判断发现并不是发给自己的,则会将消息自动丢弃,最终就只有Mac7可以收到消息。
3.以太网(了解即可)
4.网络传输流程图
同一个网段内的两台主机进行文件传输:
跨网段的主机之间的文件传输:
数据从一台计算机到另一台计算机的传输过程中要经过一个或者多个路由器。
5.数据包封装与分用
不同的协议层对于数据包有着不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称之为封装。
假设,使用qq聊天,人们会认为自己在用户称直接进行聊天。实际上,是数据向下交付(封装),再向上解包(分用),才实现了聊天。
数据包封装:向下交付的时候每一层都会添加自己的报头,再把报文向下交付。(报文 = 报头 + 有效载荷)
数据包奋勇:向上解包的时候,因为同一层会有相同的协议,所以能识别报头,进而解开报头,将有效载荷再向上解包,如此就形成了对称的结构。
过程表现的类似图(痕迹保留):
看到同一层报头和有效载荷完全一样,左边是怎么发送数据的,右边就是怎么接收数据的。所以可以认为是在同层协议中直接通信,也可以理解为向下交付。
不同网段的两台计算机通讯过程的不同在于路由器部分:
一个设备至少要横跨两个网络才能实现数据报跨网络转发,路由器必须至少横跨两个网络,路由器必须要有两个网络接口。在路由器部分传递给令牌环驱动程序的时候,加上的报头是令牌环协议(重新封装报头),这样就跟左边的不一样了,但是并不影响对称性。
简单理解路由器部分传输数据:
像我们脱了外套,换上新的外套,但是本质的人并没有改变,由此可以得出IP层的作用就是屏蔽底层网络的差异。
六、IP与MAC地址
IP协议有两个版本,IPv4和IPv6,提到IP协议,如果没有特殊说明,就默认是IPv4.
IP地址
上面用四个字节表示形式称为IPv4,而IPv6使用16个字节表示
IP地址是在IP协议中,用来标识网络中不同主机的地址;
我们通常也用“点分十进制”的字符串表示IP地址,例如:189.162.1.1;用点分隔到的每一个数字表示一个字节,范围是0~255。
MAC地址
MAC地址用来标识数据链路层中相连的节点;
长度为48位,即6个字节。一般用16进制数字加上冒号的形式来表示(例如,08:00:09:32:fb:18)
在网卡出厂时就确定了,不能修改。MAC地址通常是唯一的(虚拟机中的MAC地址并不是真实的MAC地址,因此可能会发生冲突;也有一些网卡支持用户自己配置MAC地址)。
MAC地址通常在局域网中使用,IP地址通常在广域网中使用。
IP地址和MAC地址
为什么要有两个地址?
西游记中,我们知道唐僧是自东土大唐而来,去往西天拜佛求经。每到一个国家,国王就会问他是从哪里来到哪里去,才能告诉他下一站要去哪里。例如:当前到达女儿国,下一站要去黑凤岭。
这里的东土大唐和西天两个地址就是IP地址,从始至终不会发生改变。女儿国和黑风岭则是MAC地址,一直会发生变化(当前站和下一站)。IP地址于MAC地址就相当于终极目标和阶段性目标。
IP地址提供的是方向,MAC地址提供的是可行路径。这里的MAC两个地址一定是挨着的,因此是在同一个局域网。
总结
以上就是今天要讲的内容,本文介绍了网络基础入门的相关概念。本文作者目前也是正在学习计算机网络相关的知识,如果文章中的内容有错误或者不严谨的部分,欢迎大家在评论区指出,也欢迎大家在评论区提问、交流。
最后,如果本篇文章对你有所启发的话,希望可以多多支持作者,谢谢大家!