【Linux】网络之基础框架篇

经过艰苦奋斗之后我们终于完成了系统编程部分的学习,可是新的战斗才刚刚开始,我们学习系统编程的目的就是为了后面网络部分的学习,我们知道21世纪的一些重要特征就是数字化、网络化、和信息化,这是一个以网络为核心的世界,随着科技和社会的发展,网络已经深入社会的各个角落,我们的手机和电脑都被一种神奇的东西连在一起,让我们互相之间实现远距离沟通资源共享等等以前做不到的事情。
下来我们就来推开这扇神奇的大门来探索这个新世界。
一、首先来介绍一下网络到底是什么?
计算机网络其实和电信网络和有线网络一样都是一种通信基础设施,但和这两个网络不同的是计算机网络的端是具有智能的计算机。利用计算机网络这个通信设施,计算机上运行的各种应用程序通过彼此之间的通信能为用户提供更加丰富多彩的服务和应用。
计算机网络能为我们做什么呢?
我们已知的计算机为我们提供的服务主要有两种
(1)连通性连
通性就是计算机网络使上网用户之间都可以交换信息,好像这些上网用户的计算机都可以直接连通一样。用户之间的距离也显得缩短了。
(2)共享
共享就是资源共享,可以是信息共享,软件共享,也可以是硬件共享,比如有许多主机上存储了大量的有用的资源,上网的用户可以根据需要下载,这些资源就像在用户身边一样
二、接下来我们来看一下网络的发展
(1)刚开始的时候也就是没有网络的时候,一个个主机主机之间是相互独立的,
(2)慢慢的人们发现有的时候工作需要资源共享,就开始把多台主机连在一起,完成数据共享
(3)后来随着科技的发展,计算机慢慢多了起来,计算机之间不再直接连接,而是通过交换机和路由器进行连接,也就是局域网的产生
(4)慢慢的网络的发展可以吧远隔千里的主机连接起来,也就有了广域网掉产生
实际上局域网和广域网没有明显的界限
比如我们国家的网络,实际上就是一个大的局域网,我们只能访问国内的网站而不能访问其他国家的网站
我们知道计算机之间传递信息无非通过电信号或者光信号,通过频率和信号来表示0和1这样的信息,要想传递各种不同的信息,就要约定好双方数据方式
我们知道:
(1)市面上的计算机生产厂商很多
(2)操作系统也很多
(3)计算机网络硬件设备也是有很多
那么如何实现计算机之间的通信,就需要有人来提出一个标准大家都按照这个标准来执行,大家都来遵守,这就是网络协议
只有遵循某种协议,这台计算机传过去的数据对方才能正确的解读和接收
三、下来来看一下网络协议是什么?
协议就是一组控制数据交互的规则。这些规则明确的规定所交换数据的格式和时序,这些为网络数据交换制定的通信规则、约束与标准称为网络协议
网络协议由三个要素组成:
(1)语义
(2)语法
(3)时序
层次结构是处理计算机网络问题最基本的方法,对于一些难以处理的问题,通常是采用分解为若干个容易处理的小问题,网络体系结构就采用分层结构方法
1974年,IBM公司提出了第一个网络体系结构–系统网络体系结构,此后很多计算机公司分别提出了自己的体系结构,国际标准化组织的OSI参考模型的课题就是在这样一个背景下提出的。
四、下来我们就来介绍一下这个OSI模型是什么样子的?
(1)OSI七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范。
(2)把网络从逻辑上分为了七层,每一层都有相关的相对应的物理设备,比如路由器,交换机
(3)OSI七层模型是一种框架式的设计方法,其最主要的功能就是帮助不同类型的主机实现数据传输
(4)它的最大的优点就是将服务、接口和协议这三个概念明显的区分开来,概念清楚,理论也比较完整,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通信
但是它既复杂又不实用,所以我们通常都是按照TCP/IP协议五层模型或者四层模型来学习
OSI七层模型【Linux】网络之基础框架篇_第1张图片
五、TCP/IP五层(或四层)结构
TCP/IP是一组协议的代名词,它还包括很多协议,组成了TCP/IP协议簇
TCP/IP协议采用了五层结构,下面对这五层自底向上简单介绍一下:
(1)物理层
负责光/电信号的传送方式,比如现在以太网通用的网线(双绞线)早期以太网采用的同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等,集线器工作在物理层
(2)数据链路层
负责设备之间数据帧的传送和识别、例如网卡设备的驱动,帧同步(就是从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作有以太网、令牌环网、无线LAN等标准交换机工作在数据链路层
(3)网络层
负责地址管理和路由选择。例如在IP协议中通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输,如传输控制协议,能够确保数据可靠的从源主机发送到目标主机
(4)传输层
负责两台主机之间的数据传输。如传输控制协议TCP能够确保数据可靠的从源主机发送到目标主机
(5)应用层
负责应用程序间沟通。如简单的电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等,我们的网络编程主要针对应用层
我们在研究的时候,对于物理层研究的比较少,因此很多时候成为TCP/IP四层模型
一般来说:
(1)对于一台主机,它的操作系统内核实现了从传输层到物理层的内容
(2)对于一台路由器,它实现了从网络层到物理层
(3)对于一台交换机,他实现了从数据链路层到物理层
(4)对于集线器,它只实现了物理层
对于这些硬件和分层的对应,实际上并不是绝对的,很多交换机也实现了网络层的转发,很多路由器也实现了部分传输层的内容(比如端口转发)。
六、网络传输基本流程
各层分别对应的协议类型:
【Linux】网络之基础框架篇_第2张图片
主机与主机之间通过TCP/IP协议文件传输:
【Linux】网络之基础框架篇_第3张图片
【Linux】网络之基础框架篇_第4张图片
七、数据包封装和分用
(1)不同的协议层对数据包有不同的称谓,在传输层叫做段,在网络层叫做数据报,在链路层叫做帧。
(2)应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部,称为封装
(3)首部信息中包含了一些类似于首部有多长,载荷有多长,上层协议·是什么等信息。
(4)数据封装成帧之后,发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的“协议字段”将数据交给相应的上层协议处理

你可能感兴趣的:(Linux)