首页 > 新闻中心 > 知识百科 > 到底什么是TCP/IP协议栈,看完这篇你就明白!

到底什么是TCP/IP协议栈,看完这篇你就明白!

时间:2022-12-09 来源:

一谈到TCP/IP 协议栈,相信不少小白都处于暴躁的边缘,只懂其一不知其二。没关系,看完这篇你就知道啦!

我们先简单了解下TCP/IP协议,该协议最早得名于上世纪80年代由美国国防部提出并应用于arpa网(即阿帕网,互联网的鼻祖)项目,由于其优异性,很快便成为主流网络通信协议。后面出现的各类协议(httpipdnstcparp等)都被整体纳入这一协议体系中去,被统称为“TCP/IP 协议栈“TCP/IP 协议栈名称就是这么由此而来的

对应这一协议栈,同时发展出了TCP/IP 参考模型,模型是一个抽象的分层模型,TCP/IP 协议中的所有协议被归类到这一模型的4个层次中四个层分别是:链路层、网络层、传输层、应用层,每一层都呼叫它的下一层所提供的协议来完成需求,各个层次间互相协作,由此完成了互联网通信的主要工作。

image.png 

*由于OSI协议栈比较复杂,且TCPIP两大协议在业界被广泛使用,所以TCP/IP参考模型成为了互联网的主流参考模型*

为了让你对通信过程有一个更好的理解,我将以http请求通信的过程为例子,从 TCP/IP 四个层次出发,对应各个层次的通信实体,看各个协议是如何在这些通信实体中发生作用。

在这之前我们先了解下网络通信中的三个地址:IP 地址、Mac 地址以及端口号,三者分别代表:

IP地址:网络中互联的主机和路由器的标识

Mac 地址:每个网卡硬件的物理地址

端口号:识别同一个主机上不同的应用程序,也可以理解为程序地址

当你输入一个网址并按下回车键的时候:应用层协议会先对该请求包做格式定义;紧接着传输层协议加上双方的端口号,确认双方通信的应用程序;然后网络层协议加上双方的IP地址,确认双方的网络位置;最后链路层协议加上双方的MAC地址,确认双方的物理位置,以太网协议会通过对电信号数据进行分组,形成数据帧,再采用广播方式,通过传输介质发送给对方主机。而对于不同网段,该数据包先会转发给网关路由器,经过多次转发后,最终被发送到目标主机。目标机接收到数据包后,采用对应的协议,对帧数据进行组装,然后再通过一层一层的协议进行解析,最终被应用层的协议解析并交给服务器处理。在这个过程中,各项协议确保了传输过程的实现以及数据的安全。

IP地址相当于是人所在的区域,MAC地址相当于是人的身份证号码,对于网络传输最终都是以MAC地址来实现的。

我们梳理一下每层模型的职责:

1. 应用层:定义数据格式,并按照对应的格式解读数据

2. 传输层:定义端口,确认主机上应用程序的身份,并将数据包交给对应的应用程序

3. 网络层:定义IP地址,确认主机所在的网络位置,并通过IP进行MAC寻址,对外网数据包进行路由转发

4. 链路层:以字节为单位对01进行分组,定义数据帧,确认主机的物理地址,传输数据

以上内容是对TCP/IP四层模型做了简单的介绍,而实际上每一层模型都有很多协议,每个协议要做的事情也很多,但我们首先得有一个清晰的脉络结构,把基本的作用都掌握了,然后再去丰富细节,就比较好理解了。