互联网的核心就是各种协议,而互联网的实现是通过几层结构组成的,具体多少层说法不一,按我的理解总共分为五层。
互联网的实现是由五层组成的,又下到上分别为:实体层、链接层、网络层、传输层、应用层。越下层越接近硬件,越上层越接近用户。
实体层:计算机硬件与硬件直接通讯时通过电信号实现的,而实体层正是用来传输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
互联网的实现基于五层结构,包括实体层、链接层、网络层、传输层和应用层。实体层传输电信号,链接层定义0和1解读方式,以太网通过MAC地址进行数据传输。网络层引入IP协议和子网掩码,解决跨子网络通信问题。传输层的TCP和UDP协议负责端口间的通信,应用层则定义了数据类型。
5785

被折叠的 条评论
为什么被折叠?



