当前位置: 首页 > 后端技术 > Node.js

一分钟看懂TCP-IP模型

时间:2023-04-04 00:19:19 Node.js

原文写的不是很详细。为了方便理解,我把顺序颠倒了。写在开头我们需要知道协议是什么。在网络上,协议对应于管理系统如何相互通信的规则。然后我们需要知道什么是协议族。协议族是一起工作的协议的集合。什么是TCP/IP模型?TCP/IP(TransmissionControlProtocol/InternetProtocol)是DARPA在1970年代提出的。这个模型来自阿帕网,也被称为“互联网模型”。TCP/IP模型有四个抽象层次,描述了总体设计纲要,实现了网络通信的具体协议。我们将简要讨论每个级别最流行的协议。1、网络接入层(数据连接+物理层)网络接入层包括主机连接到物理网络所需的硬件和传输数据的协议。目标可以是网络上的另一台主机、它自己或远程路由器。互联网层具有整个互联网的视图,而网络访问层仅限于由第3层设备(如路由器)定义的物理层边界。此级别的协议取决于所使用的物理网络。如果物理网络是LAN,则通常使用以太网(802.3)及其变体等协议,如果使用WAN,则通常使用点对点协议(PPP)和帧中继等协议。比较有名的是以太网协议。通过网卡在两台计算机(主机)之间发送和接收数据。每块网卡都有一个唯一的地址,就是MAC地址。以太网数据以帧为单位,包括帧头和数据部分。以太网在子网内以广播的形式发送数据。仅拥有MAC地址并不能使两台主机相互通信。如果两台主机不在同一个子网上,以太网协议就没有用了。这就需要网络层区分各个主机的网络在哪个子网,如果在同一个子网,则广播数据,否则通过路由发送。这导致了网络层的诞生。2.网络层(Internetlayer)网络层的主要任务是区分主机是否在同一个子网中。网络层将上层(传输层)接收到的数据分发给目标主机(同网或外网)。该层确保片段通过网络移动到目标网络。于是引入了所谓的网络地址,即URL。指定网络地址的协议称为IP协议。所以网络地址也称为IP地址。IP协议的数据包放在以太网数据包的数据部分,也分为包头和数据两部分。使用IP协议,可以在两台主机之间发送数据。下一个问题是每个主机都有不同的应用程序。如何区分哪个数据包属于哪个程序?这就是传输层的用武之地。3.传输层传输层的主要任务是为应用层提供会话和数据报通信服务。它从应用层接收数据,将它们分成更小的单元(头部和数据部分在网络层的数据部分),并将它们传送到网络层。该层的任务是确保拆分后的单元正确到达另一端。它关注的是端到端的数据传输和主机之间逻辑连接的建立,即所谓的端到端连接的建立。网络层建立主机到主机的连接。只要有主机和端口,就可以判断这个数据包属于哪个程序。Unix系统称主机+端口为socket。这一层主要有两个协议:TCP和UDP。4.应用层该层允许应用程序访问其他层的服务,并定义应用程序交换数据的协议。该层添加自己的报头并将其向下发送到传输层。该层的主要任务是将接收到的数据包按照协议解释成各种类型的数据,并将要发送的数据打包送入传输层。现在数据包的格式如下所示(以HTTP为例):|------||------||------||------||------------------|以太网头IP头TCP头HTTP头数据部分这一层的主要协议有:HTTP、FTP、SMTP、Telnet、NFS、RIP等。