计算机五层网络详解

两台计算机相隔甚远如何实现通信成千上万的计算机中,为什么一台计算机能够准确着寻找到另外一台计算机,并且把数据发送给它/p>

网络通信的五层模型:

计算机五层网络详解
帧的大小一般为 64 – 1518 个字节。假如需要传送的数据很大的话,就分成多个桢来进行传送。
标头部分主要是一些说明数据,例如发送者,接收者等信息。而数据部分则是这个数据包具体的,想给接守者的内容。
一个桢的长度是 64~1518 个字节,也就是说桢的长度不是固定的,那你觉得标头部分的字节长度是固定的吗当然是固定的啊,假如不是固定的,每个桢都是单独发的,那计算机怎么知道标头是几个字节,数据是几个字节呢。所以标头部分的字节是固定的,并且固定为18个字节。
把一台计算的的数据通过物理层和链路层发送给另一台计算机,究竟是谁发给谁的,计算机与计算机之间如何区分/p>

2.2MAC地址
连入网络的每一个计算机都会有网卡接口,每一个网卡都会有一个唯一的地址,这个地址就叫做 MAC 地址。计算机之间的数据传送,就 是通过 MAC 地址来唯一寻找、传送的。MAC地址 由 48 个字节所构成,在网卡生产时就被唯一标识了。

3.网络层

3.1 IP协议

IP协议,它所定义的地址,我们称之为IP地址。IP协议有两种版本,一种是 IPv4,另一种是 IPv6。不过我们目前大多数用的还是 IPv4,我们现在也只讨论 IPv4 这个版本的协议。

这个 IP 地址由 32 位的二进制数组成,我们一般把它分成4段的十进制表示,地址范围为0.0.0.0~255.255.255.255。

每一台想要联网的计算机都会有一个IP地址。这个IP地址被分为两部分,前面一部分代表网络部分,后面一部分代表主机部分。并且网络部分和主机部分所占用的二进制位数是不固定的。

假如两台计算机的网络部分是一模一样的,我们就说这两台计算机是处于同一个子网中。例如 192.168.43.1 和 192.168.43.2, 假如这两个 IP 地址的网络部分为 24 位,主机部分为 8 位。那么他们的网络部分都为 192.168.43,所以他们处于同一个子网中。

可是问题来了,你怎么知道网络部分是占几位,主机部分又是占几位呢就是说,单单从两台计算机的IP地址,我们是无法判断他们的是否处于同一个子网中的。

这就引申出了另一个关键词————子网掩码。子网掩码和IP地址一样也是 32 位二进制数,不过它的网络部分规定全部为 1,主机部分规定全部为 0.也就是说,假如上面那两个IP地址的网络部分为 24 位,主机部分为 8 位的话,那他们的子网掩码都为 11111111.11111111.11111111.00000000,即255.255.255.0。
IP:192.168.143
子网掩码:255.255.255.0
有了子网掩码,如何来判端IP地址是否处于同一个子网中呢。显然,知道了子网掩码,相当于我们知道了网络部分是几位,主机部分是几位。我们只需要把 IP 地址与它的子网掩码做与(and)运算,然后把各自的结果进行比较就行了,如果比较的结果相同,则代表是同一个子网,否则不是同一个子网。
例如,192.168.43.1和192.168.43.2的子码掩码都为255.255.255.0,把IP与子码掩码相与,可以得到他们都为192.168.43.0,进而他们处于同一个子网中。

3.2. ARP协议

有了上面IP协议的知识,我们回来讲一下ARP协议。

有了两台计算机的IP地址与子网掩码,我们就可以判断出它们是否处于同一个子网之中了。

假如他们处于同一个子网之中,计算机A要给计算机B发送数据时。我们可以通过ARP协议来得到计算机B的MAC地址。

ARP协议也是通过广播的形式给同一个子网中的每台电脑发送一个数据包(当然,这个数据包会包含接收方的IP地址)。对方收到这个数据包之后,会取出IP地址与自身的对比,如果相同,则把自己的MAC地址回复给对方,否则就丢弃这个数据包。这样,计算机A就能知道计算机B的MAC地址了。

4. 传输层
通过物理层、数据链路层以及网络层的互相帮助,我们已经把数据成功从计算机A传送到计算机B了,可是,计算机B里面有各种各样的应用程序,计算机该如何知道这些数据是给谁的呢/p>

这个时候,端口(Port) 执行操作了,也就是说,我们在从计算机A传数据给计算表B的时候,还得指定一个端口,以供特定的应用程序来接受处理。

也就是说,传输层的功能就是建立端口到端口的通信。相比网络层的功能是建立主机到主机的通信。

也就是说,只有有了IP和端口,我们才能进行准确着通信。这个时候可能有人会说,我输入IP地址的时候并没有指定一个端口啊。其实呢,对于有些传输协议,已经有设定了一些默认端口了。例如http的传输默认端口是80,这些端口信息也会包含在数据包里的。

传输层最常见的两大协议是 TCP 协议和 UDP 协议,其中 TCP 协议与 UDP 最大的不同就是 :
TCP 提供可靠的传输,
UDP 提供的是不可靠传输,传递一次,不关心是否成功。

5. 应用层
虽然我们收到了传输层传来的数据,可是这些传过来的数据五花八门,有html格式的,有mp4格式的,各种各样。我相信很多人是看不懂的
因此我们需要指定这些数据的格式规则,收到后才好解读渲染。例如我们最常见的 Http 数据包中,就会指定该数据包是 什么格式的文件了。
1)WEB服务

WEB服务一般由浏览器提供,其包含了3个关键技术

1.1)HTTP协议:超文本传输协议,规定了文本传输的格式,默认端口【80】,底下采用了TCP协议传输

1.2)HTML:超文本标记语言,只是一门语言,用来标记文字图片等该何如显示

1.3)URL:统一资源定位符,规定了网络上资源的标记方式

(2)DNS服务

用于解析域名的IP地址,默认使用端口【53】,传输层采用UDP协议实现。

解析方式有递归解析和迭代解析,使用本地缓存和路由器缓存提高效率。

(3)FTP文件传输服务

用于实现不同网络主机间的文件传输需求,使用FTP协议实现,默认端口【20】(用于数据连接,每一个文本都需要重新建立一次连接)【21】(用于命令传输),底下采用了TCP协议传输
如果采用TFTP协议实现,则底下采用的是UDP协议传输,其支持的命令操作较少。

(4)电子邮件服务
电子邮件服务一般由电子邮件相关软件实现,采用端口【25】
邮件传输协议有两种选择,SMTP(只支持传输纯文本), MIME(支持多媒体类型传输)
访问邮件服务器也有两种方式,POP-3(简单上传下载),IMAP-4(可以在邮件服务器中直接对邮件进行操作)

(5)远程桌面服务

使用TELNET协议实现,默认端口【23】,底下使用TCP协议传输

(6)DHCP

DHCP是动态主机配置协议,用于主机的网络配置服务,可以动态的为客户端配置路由器地址,IP地址,服务器地址等。在一开始时,客户机还没有一个IP地址,需要把一个DHCP请求报文广播出去,DHCP服务器接收到请求,同样把带有配置信息的报文广播发送回去,客户机接收配置完毕后就进入了绑定状态,不再接受配置报文信息。当IP过期时,需要再次发送请求

(7).SNMP

SNMP用于网络管理服务,用来检测统计网络流量等

来源:Courage-lu

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年4月28日
下一篇 2020年5月1日

相关推荐