TCP/IP网络模型分为哪几层,作用是什么?

232 阅读5分钟

前言

很多同学对网络模型分层与具体作用是什么,分为哪几层总是记不住,而面试中又经常被作为考点,这里我用比较简洁的话对网络模型进行概括,希望对大家有帮助。

应用层

    应用层作为网络模型的最上层,也是我们作为用户能直接接触到的,当两个不同设备想要进行通信时,应用层负责将数
据包分发给传输层,而具体怎么传输是不用我们关心的,就好比我们去寄快递,我们只要把快递交给快递员就可以了,
具体怎么邮寄,走哪条路就不用我们关心了。

传输层

    传输层有两个传输协议,分别是UDP和TCP。
    TCP协议被称为传输控制协议,绝大部分应用使用的都是TCP协议,因为TCP 相比 UDP 多了很多特性,比如流量控制、
超时重传、拥塞控制等,这些都是为了保证数据包能可靠地传输给对方。
    而UDP协议只负责发送数据包,不保证数据包是否会可靠有效的传输到对方,但它的实时性和传输效率都相较于TCP更好
而有时,应用需要传输大量的数据,如果网络发生波动,就有可能导致对方接收不到任何的数据,所以当数据包过大时,
就需要对数据包进行分段,也称TCP段,这样在发送数据时,网络在某一时间点发生了波动,造成某块TCP段没有送达,只要
重传这这一个TCP段即可。
    而设备作为接收方时,传输层需要把数据包传送给设备的应用上,但是该设备可能有多个应用在发送或接收数据,这时
就需要端口号,将这些应用区分开来,因为在传输层中发送的报文是携带端口号的,所以是可以知道该报文是要发送给哪个
应用的。

网络层

    基于刚才的学习,大家可能以为是传输层负责数据的传输,但其实并不是,传输层只是为了服务好应用,具体实现数据
传输的是网络层。
    说到网络层那第一个牵扯到的知识点就是IP地址,而传输层传输的数据包加上IP地址就会组成IP报文,如果IP报文
大小超过1500字节,就会对其进行切片,从而进行传输。
    但是数据传输的过程中,网络层是怎么做到把数据传输到对应的应用上的呢?
    一般使用 IP 地址给设备进行编号,对于 IPv4 协议, IP 地址共 32 位,分成了四段(比如,
192.168.0.1),每段是 8 位(换算成八位二进制数)。只有一个单纯的 IP 地址虽然做到了区分设备,但是寻址起来
就特别麻烦,全世界超几十亿台设备,不可能一个一个去匹配,这显然不科学。
    所以我们需要网络号和主机号,网络号负责标识IP地址属于哪个子网,而主机号负责标识同一子网下的不同设备/主机.
网络号和主机号都是通过子网掩码按位与(&&)上ip地址求出来的,主机号需要先把子网掩码取反,再进行与操作.
    而IP协议除了寻址,还有一个能力就是路由,因为设备与设备之间不可能使用同一根网线进行连接,有可能使用交换机
、路由器、集线器、中继器、网关等物理介质设备进行连接,当数据包到达一个网络节点就需要通过路由算法来计算出要具
体走哪条路径来进行数据传输。
    IP协议就类似于地图的自动导航,帮我们选择一条路径来传输,而路由就像驾驶员,操作着方向盘来按着路径导航,从
而找到要通信的设备。

网络接口层

    如果说IP地址,标识着数据要发向哪个应用,那封装在ip地址头部的MAC地址,打包成的数据帧,就是要发送到哪个
网络上了。
    IP中的IP地址表示当前数据包的网络层次的目的地,而在以太网中,光有IP地址是行不通的,必须有标识以太网的M
AC地址。那什么是以太网呢?以太网就是设备之间通过交换机、网卡、WI-FI接口、以太网口连接起来的设备,使这些设
备之间可以相互通信的技术。
    以太网判别网络包的方式和网络层不一样,所以必须在数据包上封装MAC头部,与之MAC地址匹配的设备才会收到对
应的包。MAC头部是以太网所使用到的头部,它包含了发送和接收方的物理地址信息,所以网络接口层为网络层提供链路层
次的传输,负责在以太网这样的底层网络发送数据包,并用MAC地址标识设备。

最后

希望这篇文章能对你有所帮助,对网络分层有所理解,并在以后的面试中轻松拿捏。