计算机网络五层结构

    互联网的核心就是各种协议,而互联网的实现是通过几层结构组成的,具体多少层说法不一,按我的理解总共分为五层。

    互联网的实现是由五层组成的,又下到上分别为:实体层、链接层、网络层、传输层、应用层。越下层越接近硬件,越上层越接近用户。

    实体层:计算机硬件与硬件直接通讯时通过电信号实现的,而实体层正是用来传输0和1的电信号的。

    链接层:有了0和1的电信号之后,需要有相应的规定将他们组合并且解读,这就是链接层,定义了0和1的解读方式。

    一般以以太网规定的解读方式进行解读,即“标头+数据”的形式。标头包括了发送者,接收者等的信息,数据即要传输的数据。那么如何发送给特定的接收者呢?每台计算机都要以网卡为接口实现接受和传送数据,而网卡的地址就是MAC地址,通过这个地址来接受和传送数据。每台计算机的MAC地址都是独一无二的。

    具体的实现方法为:计算机会把数据包发送给同一个子网络中的所有计算机,让他们自行判断他们的MAC地址是否和接收者的MAC地址相同,是则接受。这样一来也会带来一个致命的缺点,就是数据只能在同个子网络中传输,而互联网是由无数个子网络组成的,通常情况下两台计算机是不属于同一个子网络的。

       如何解决MAC地址传输数据的缺点呢?先判断接收者的和发送者是否处在同一个子网络,是则通过广播的方式传播,否则通过路由的方式传播。MAC地址无妨实现这个目的,因此引入了网络层。

        网络层:通过添加网络地址既网址来判断计算机是否处在同一个子网络中。   

    IP:规范了网络地址的协议叫做IP协议,它所定义的地址称为IP地址。由 “网络部分+主机部分”组成。

    在同一个自网络中的计算机的IP地址的网络部分必然是相同的,但是我们无法通过IP地址直观的判断那些属于网络部分,哪些属于主机部分,这就引入了子网掩码。

    子网掩码:由32位2进制组成,网络部分2进制值均为1,主机部分均为0。eg:255:255:255:0表示IP地址前24位二进制为网络部分,其余为主机部分。

    两台计算机建立通信必须知道MAC地址和IP地址,而IP地址通常情况下都是已知的,MAC地址需要通过ARP协议获取。

    知道了MAC地址和IP地址后,两台计算机就能建立通信了。但是具体是哪些程序之间互相通信,我们还无法得知,这时候要引入端口和传输层。

    端口:程序在网卡中的编号,可以用数字0~65535表示。

    网络层:实现端口与端口的通信。

    Unix把主机+端口成为“套接字“既”Socket“。

    把端口加到数据包中的协议有UDP和TCP协议。UDP协议相对简单,但是无法判断对方是否接受了数据。TCP协议恰恰相反,过程复杂且耗费资源多,但是可以判断对方是否接受了数据。

    应用层:规定传输的数据类型。

参考文章:http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html

你可能感兴趣的:(计算机网络五层结构)