0.一些无关紧要的心里话
一转眼学习计算机知识已经一年多了,中间起起伏伏,断断续续,但还算好也是坚持到了今天,之所以把这些基础知识写成一个系列,一方面方便知识巩固,另一方面至少还有三三两两的几个朋友一直在看我的文章,说实话如果不是同行或者准备吃计算机这碗饭的谁又会耐着性子去看这些硬核满满,看起来非常累的文章呢?
梦想仿佛离我很远很远,说实话计算机这条路也只是我人生当中的一次妥协,我不知道能撑下去多久,这门学科是一门需要持续性学习的,我不想去了工作岗位就是混日子,不想10年之后依旧在人群当中碌碌无为,依旧为了几两碎银子而奔波着,我也已经不想在妥协了。
因此我准备进军游戏领域,目标是ue的gameplay(其实已经偷偷准备了很久),等把这个系列更新完,我将会继续发布一些有关图形学课程的笔记,并且在知乎上记录一个大型项目的开发日记,天高路远,但雏鸟终究得离开温暖的港湾,谢谢听我唠叨的兄弟们。
1.网络的自由畅想
首先我不对大家灌输专业的网络概念,我们不妨用我们的方式畅想一下。
网络,从主要功能来思考其实就是一种通过一种我们尚且还不知道的方式来进行数据的传递交换的一种手段,而且这些信息的传递会依赖于基础硬件的搭建,数据会以电信号,波等的形式进行传递(当然具体数据之间具体是如何转换我们在此不做具体讲解)
当然一系列数据的发送接收肯定需要一个东西来管理,在网络中我们将其称之为协议,协议本质也是一种软件,并且为了更好的方便管理协议进行了层级的划分。
2.osi七层模型
-
OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,
是一个逻辑上的定义和规范;
-
把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
-
OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
-
当然实际上我们普遍使用的是TCP/IP五层(四层)模型
3.TCP/IP五层(或四层)模型
-
物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆
(现在主要用于有线电视)、光纤, 现在的wififi无线网使用电磁波等都属于物理层的概念。物理层的能力决
定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
-
数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测
到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太
网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
-
网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规
划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
-
传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标
主机.
-
应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问
协议(Telnet)等. 我们的网络编程主要就是针对应用层
tips:物理层我们考虑的比较少. 因此很多时候也可以称为 TCP/IP四层模型.
4.网络信息传输流程图
4.1两台处于同一局域网下的主机进行数据传输
4.2跨网段的主机的文件传输
数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器.
5.网络中的地址管理
5.1认识IP地址
-
IP协议有两个版本, IPv4和IPv6. 我们整个的课程, 凡是提到IP协议, 没有特殊说明的, 默认都是指IPv4
IP地址是在IP协议中, 用来标识网络中不同主机的地址;
-
对于IPv4来说, IP地址是一个4字节, 32位的整数;
-
我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个
字节, 范围是 0 - 255;
5.2认识MAC地址
-
MAC地址用来识别数据链路层中相连的节点;
-
长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
-
在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可
能会冲突; 也有些网卡支持用户配置mac地址).
文本题外话:这篇文章作为一篇建立基础概念的文章其实不够详细,但是有些内容如果过早出现不花大的篇幅又讲不清楚无疑加重了大家的负担,不过别担心这里缺少的一些重要内容我会在后文慢慢补充。