干货:网络模型知识大全

思恒科技

科学服务教育

产品服务社会

1

计算机网络是指由通信线路互相连接的许多自主工作的计算机构成的集合体,各个部件之间以何种规则进行通信,就是网络模型研究的问题。

今天给大家普及一些网络模型的知识,希望能够对大家有所帮助!

网络模型经典图片:

TCP/IP分层模型(TCP/IP Layening Model)被称作因特网分层模型(Internet Layering Model)、因特网参考模型(Internet Reference Model)。

在每一层都工作着不同的设备,比如我们常用的交换机就工作在数据链路层的,一般的路由器是工作在网络层的。

针对上面的模型,我们来举个例子:

两台 pc 通过交换机连上一个云服务器,我们假设都是通过网线来连接的。TCP/IP协议被组织成四个概念层,其中有三层对应于ISO参考模型中的相应层。

ICP/IP协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必须与许多其他的协议协同工作。

1、物理层

物理层可以理解为硬件层,负责光电信号传递方式。集线器工作在物理层,以太网协议。

这里的网络 pc 和交换机通过 phy连接,交换机也是通过 phy 和云连接。网络数据也是通过 phy 发送出去的。

2、数据链路层

负责设备之间的数据帧的传输和识别。交换机工作在数据链路层。例如网卡设备的驱动,帧同步,冲突检测,数据差错校验等工作。

这一层加入了全球唯一的 MAC 地址,可以通过 MAC 地址让对方知道自己是哪个设备,告诉别人我是谁。

物理层完成了数据的传输,需要对0和1的定义进行规定。在传输0,1之后还需要对01进行分组。

Ethenet 和 Wifi 基本就是属于这个层次, wifi 协议其实就是解决的一个链路和物理层的问题,在更往上的网络层和传输层一般就是 TCP/IP 协议。

3、网络层

网络层是出现一些规范来进行约束,负责地址管理和路由选择。路由器工作在网络层。

网络层负责以下任务:

(1)逻辑编址。将上层传递下来的数据添加逻辑地址信息(即IP地址)形成数据包。逻辑编址对与普通的通信服务是必须的,在互联网的环境中仅使用物理地址是不合适的,因为不同网络可以使用不同的物理地址格式。因此,需要一种通用的编址系统,用来唯一标志每一个主机,实现不同种物理网络间通信。

习惯上,我们用分成四段的十进制数表示IP地址,从0.0.0.0一直到255.255.255.255。互联网上的每个设备,都会分配到一个IP地址。这个地址分成两个部分,前一部分代表网络,后一部分代表设备。

目前广泛采用的是IPv4协议,这个协议规定,网址由32个bit组成。

怎样才能从IP地址,判断两台计算机是否属于同一个子网络呢?

这就要用到另一个参数"子网掩码"(subnet mask),在形式上类似IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。

方法是将两个IP地址与子网掩码分别进行 AND 运算(两个数位都为1,运算结果为1,否则为0),比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。

【总结:IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络。

(2)路由选择。当许多独立的网络互联在一起组成互联网时,这些连接的设备就要选择合适的路径转发数据包,使其能够到达目标网络。

在复杂的网络结构中,到达目标网络路径可能并不唯一,选择何种路径到达,是路由选择要解决的。

4、传输层

传输层(Transport Layer)也称四层,这一层的处理单位是报文段(Segment,TCP时使用)/用户数据报(User Datagram,UDP时使用)。传输层在源节点和目的节点的两个进程实体之间提供端到端的数据传输。

传输层主要功能是:对一个进行的对话或连接提供可靠的传输服务,在通向网络的单一物理连接上实现该连接的复用,在单一连接上提供端到端的序号与流量控制、差错控制及恢复等服务。

因为网络层不一定保证服务的可靠,而用户也不能直接对通信子网加以控制,因此在网络层之上,加一层即传输层以改善传输质量。

传输层负责以下任务:

(1)进程标识。TCP和UDP利用端口号来标记不同的进程。例如:FTP服务使用的TCP端口号是21;HTTP协议默认使用TCP的80端口;Telnet使用的TCP端口号是23。

(2)分段与重新安装。应用层提交给传输层数据有可能很大,一个报文段没有办法容纳时,就需要进行分割成合适的大小,用在接收端还原成原始的应用层数据,这就是分段和重新安装的含义。

(3)连接控制。TCP作为一个面向连接协议,需要连接建立,使用和释放的过程;于此对应,UDP作为一个无连接的协议,采取的是“随到随发”的方式传输数据,不需要在发送前建立连接、发送后断开连接,但不能保证数据包的可能传送。

(4)流量控制。如同数据链路层一样,传输层也负责流量控制。但传输层的流量控制是在端前端的意义上实现的,而不是一条链路。

(5)差错控制。和数据链路层的差错控制类似,只是传输层的流量控制是在端到端的意义上实现的,而不是一条链路上。

4.1 UDP协议

包含端口号最简单的实现就是UDP协议,他的格式几乎就只是在数据前加上发送端口和接收端口而已。

4.2 TCP协议

UDP协议的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到。

为了解决这个问题,提高网络可靠性,TCP协议就诞生了。这个协议非常复杂,但可以近似认为,它就是有确认机制的UDP协议,每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了。

因此,TCP协议能够确保数据不会遗失。它的缺点是过程复杂、实现困难、消耗较多的资源。

TCP数据包和UDP数据包一样,都是内嵌在IP数据包的"数据"部分。TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

5、应用层

应用层包括所有的高层协议。应用层不仅直接和应用程序接口而且提供常见的网络应用服务。

比起其它层来说,应用层需要的标准最多,但随着应用层的发展,各种特定应用服务的增多,应用服务的标准化开展了许多研究工作。

应用层就是根据之前的层次来封装一些场景应用,比如我们正常的网址,就是 http协议。

其他还有 ftp 等等之类的,具体看上面那个图,看起来还是非常不错的。

举例来说,TCP 协议可以为各种各样的程序传递数据,比如 Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了"应用层"。

WIFI其实只是把赋予设备MAC地址,连接上网络,并分配好IP,或者是作为AP给别的设备分配IP等等,而要真正的传输数据,使用的仍然是TCP 或者 UDP协议。

经过上面的层次封装之后,如果我们要发送数据就变成了这样。

发送的时候每一层就封装上自己的东西,接收的时候,每一层就剥离掉其他层次,拿到自己那一层的数据。

相关协议:

远程登陆协议(Telnet):允许用户登陆到远程系统并访问远程系统的资源,而且可像本地用户一样访问远程系统。

简单邮件传输协议(Simple Mail Transfer Protocol,SMTP):最初只是文件传输的一种类型,后来慢慢发展成为一种特定的应用协议。

文件传输协议(File Transfer Protocol,FTP):提供在两台机器之间进行有效的数据传送的手段。

超文本传输协议(Hyper Text Transfer Protocol ,HTTP):用于从WWW上读取页面信息。

其他应用层协议:例如将网络中的主机的名字地址映射成网络地址的域名服务(Domain Name Service,DNS);用于传输网络新闻的网络新闻传输协议(Network News Transfer Protocol,NNTP)等等。

构建全方位新型教育生态链,做数字智能教育综合管理平台

打造专业数字智能个性化教育平台,做教育全产业链综合运营商

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190921A05TC300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券