目录
一、网络模型是什么?
计算机网络从底层的传输到高层的软件设计十分复杂,要合理地设计计算机网络模型,必须采用分层模型,每一层负责处理自己的操作。在这个模型中,每个分层都接收由它的下一层所提供的特定服务,并且负责为自己的上一层提供特定的服务。上下层之间进行交互时所遵循的的约定叫做"接口"。同一层之间的交互所遵循的约定叫做"协议"。
OSI(Open System Interconnect)网络7层模型是ISO组织定义的一个计算机互联的标准分层模型,但它只是一个定义,目的是为了简化网络各层的操作,提供标准接口便于实现和维护,从上至下依次包括:应用层、表示层、会话层、传输层、网络层、链路层、物理层 。
二、网络模型为什么需要分层?
如果没有分层,网络通信的所有功能(从物理信号传输到应用数据解析)都需要由一个模块完成,就像用一个程序实现 "快递打包 + 运输 + 配送 + 签收" 的全流程 ------ 任何一个环节的改动(如包装规格变化)都可能影响整个系统,开发和维护几乎不可能实现。
网络分层模型中的每个层级,只需专注于自己的任务,无需关心上层如何使用数据、下层如何传输数据。例如:应用层(如微信)只需按约定格式生成消息,无需关心数据是通过光纤还是 5G 传输;物理层只需传输信号,无需知道信号里是文字还是图片。
这种 "分工明确" 的设计,让复杂的网络通信变得可拆解、可实现。
三、TCP/IP网络模型
互联网实际使用的TCP/IP模型是OSI七层网络模型的简化版,一共分为4层:应用层、传输层、网络层、网络接口层(数据链路层、物理层)。
应用层:负责 "用户数据的格式处理"(类似 "快递里的物品包装与拆封")。
传输层:负责 "端到端的数据可靠传输"(类似 "确保快递完整送达");
网络层:负责 "跨网络的路径选择"(类似 "从北京到上海的路线规划");
网络接口层:负责 "物理介质上的数据传输与链路连接"(类似 "快递运输车行驶的公路 / 航线,以及装卸员对快递包裹的扫码登记、分拣交接")。
【1】应用层
应用层,负责基于某种应用层协议,为用户提供功能服务。不同的网络应用程序,需要不同的应用层协议。应用层不需要关心数据如何传输,只负责将数据包交给传输层即可。(类似"把快递交给快递小哥")。
应用层常见的协议有:
域名系统 DNS(Domain Name System):用于将域名解析成IP地址;
HTTP 协议(HyperText Transfer Protocol):超文本传输协议,最初的目的用于发布和接受HTML网页,是目前互联网应用最广泛的网络协议;
电子邮件协议:常用的电子邮件协议有SMTP、POP3、IMAP4;
远程登录协议:Telnet协议是Internet远程登录服务的标准协议和主要方式,基本功能是允许用户登录进入远程主机系统;
FTP文件传输协议(File Transfer Protocol):FTP协议用于在网络上进行文件传输的一套标准协议,FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信;
应用层将产生的消息或报文(message),发送给传输层。
【2】传输层
传输层协议负责定义两台主机进程之间的通信,提供数据传输服务,提供端到端的传输。
在传输层常见的协议有:
TCP(Transmission Control Protocol)协议:传输控制协议,提供面向连接、可靠的数据传输服务。TCP协议中的流量控制、超时重传、拥塞控制等内容,都是为了实现可靠性传输。例如:微信、QQ等IM即时通讯软件发送文字、语音、图片。
UDP(User Datagram Protocol)协议:用户数据报协议,只负责发送数据包,不提供数据包的可靠性传输。所以,UDP的实时性和效率更高。例如:腾讯会议、网络游戏、爱奇艺等软件,更看重数据的实时性和流程性。
传输层会在应用层报文(message)的基础上,进行分段,拆分成若干个TCP报文段(TCP Segment),发送给网络层。
【3】网络层
在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。在发送数据时,网络层把传输层产生的报文段或用户数据报封装成分组和包进行传送。
网络层使用的协议是IP协议 ,负责将数据从一个设备传输到另一个设备。主要的内容包括两点:IP寻址 (导航)和路由(方向盘)。
网络层在传输层TCP报文段(TCPSegment)的基础上,加上IP报头,生成IP数据包(Packet),发送给网络接口层。
【4】网络接口层
网络层的IP数据包(Packet)发送给网路接口层后,网络接口层会负责将数据包发送给以太网。
但是,以太网并不是按照IP协议的方式来进行通信,它是通过MAC地址进行通信。所以,需要首先通过ARP协议获取对方的MAC地址,然后将收发双方的MAC地址形成一个MAC头部,加入到IP数据包(包)的前面,形成一个数据帧(Data Frame),最后发送到以太网。
感谢你花时间读到这里~ 如果你觉得这篇内容对你有帮助,不妨点个赞让更多人看到;如果有任何想法、疑问,或者想分享你的相关经历,欢迎在评论区留言交流,你的每一条互动对我来说都很珍贵~ 我们下次再见啦!😊😊