一、网络基础知识
接下来,本文将从逐层讲解TCP/IP模型:物理层、链接层、网络层、传输层、应用层。首先来看下面这张图:
互联网主要是通过分层来实现的,每一层都定义它自己的功能,它就像一个大楼一样,每一层都需要底层来支持。我们开发人员能接触到的都是最上层,可如果想深入理解互联网,必须从底层开始研究。
最底层是物理层,它通过物理的手段把计算机连接起来。最上方的应用层是最接近我们用户的。接下来我们一层一层来看。
二、物理层
其实物理层特别好理解,当我们想要把两台电脑连接起来时,我们第一件事要做什么?我们要做的就是把两台电脑用线连接起来。这个线可以是什么线?光缆、电缆、双绞线、无线电波等等。。这条线就是物理层,就是通过物理手段把两台电脑连接起来。
三、链接层
3、链接层的协议
以太网规定了电信号的分组方式。下图就是以太网规定的数据包,它也可以叫做帧,帧又分为head和data。head里包含了数据包的说明项,比如发送者和接收者的地址。而data里包含了数据包的具体内容。
4、mac地址
以太网规定每一个连接入网的设备必须有一个网卡的接口,数据包必须是从一块网卡传送到另一块网卡。mac地址就是网卡的地址。
5、广播
如下图,1号计算机要向2号计算机发一个数据包,同一个子网络下的2号、3号、4号、5号计算机都会收到广播的包。
它们会读取广播包的head头,然后读取head头里指明的接收方的mac地址,然后和计算机自身的mac地址相比对。
如果和自身mac地址相匹配,就接收这个数据包,做进一步的处理。如果不匹配,就丢弃这个包。
以上过程,就是广播。
五、网络层
从理论上讲,依靠mac地址,可以从上海的网卡找到美国的网卡,想找到世界上的任何一个网卡都可以找得到,这在技术上是可以实现的。可是这有一个非常非常大的问题!!以太网是通过广播的方式发送数据包,这种效率是非常低的。而且只能局限在较小型的子网络上,也就是两台计算机不是一个子网络上,广播是传不过去的。互联网是无数个子网络组成的巨型网络,仅仅通过mac地址寻址,从上海找到美国几乎是不可能的。所以,必须找到一种方式区分哪些mac地址属于同一子网络,哪些mac地址不属于同一子网络。这样就引出了网络层。
1、作用
区分哪些mac地址属于同一子网络。网络层出现以后,每个网卡都有了两个地址:一个是IP地址,一个是mac地址。IP地址和mac地址是没有任何关联的,IP地址是为了找到子网络,找到了子网络再通过mac地址找到具体网卡。在复杂的网络环境中将数据包发给最终的目标地址。在TCP/IP通信中所有主机或路由器必须设定自己的IP地址。
2、IP协议
规定网络地址的协议。一个数据包之所以能够成功地到达目标地址,全靠路由控制。
3、IP数据包
根据IP协议发送的数据。
4、arp协议
如何通过IP地址找到mac地址呢?
核心原理:ARP协议是发出一个数据包,它所在的子网络每一台主机都会收到这个数据包。收到这个数据包后,跟自身IP地址进行比对,如果匹配就报告自己的mac地址。
这与广播有什么区别呢?
六、IP协议相关技术
七、传输层
4、同一台主机中许多程序都会用到网络,比如,我可以一遍上网,一遍qq聊天。这时候当一个数据包从网络上发来的时候,我怎么知道它是网页的内容,还是qq聊天的内容呢?也就是说,我们还需要一个参数来指明我们网络上发来的数据是供哪个应用程序使用的呢?而这个参数就是端口号。
5、功能:
传输层主要是建立一个端口到端口的通信,而网络层主要是建立主机到主机的通信。
八、应用层
应用层,规定应用程序的数据格式。当一个应用程序收到传输层发来的数据后,必须要对数据进行解读。
九、最后
以上就是我对TCP/IP网络模型相关知识的总结,如有任何疑问可留言提问,博主每天都会查看。