tcpip协议栈是什么?tcpip协议栈有哪些协议?tcpip协议栈中报文封装和解封装过程

描述

tcpip协议栈是什么?

TCP/IP协议栈是计算机网络中使用的最常见的网络协议栈。它是一个四层协议栈,每一层使用不同的协议来实现特定的任务。下面是TCP/IP协议栈的四个层级(自下而上): 1. 链路层:该层主要是协议,负责在物理网络上传输数据帧,包括数据的传输和数据的错误检测与调整。该层使用的协议包括Ethernet和Wi-Fi等。 2. 网络层:网络层的主要任务是在计算机网络中建立数据包的传输路径。该层使用的协议包括IP(Internet Protocol)和ICMP(Internet Control Message Protocol)等。其中,IP协议负责将数据包从源节点路由到目标节点,而ICMP协议则用于网络故障的诊断和恢复。 3. 传输层:该层主要负责数据的传输和网络连接的管理。该层使用的协议包括TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)等。其中,TCP协议用于建立可靠的点对点连接(如HTTP、FTP等应用程序),而UDP协议则用于无连接和低延迟的数据传输(如视频聊天等应用程序)。 4. 应用层:该层体系结构与应用程序相关。该层使用的协议类型很多,如HTTP(HyperText Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)等。该层的主要任务是为不同的应用程序提供标准化的接口,以便应用程序之间可以相互通信和协作。

tcpip协议栈有哪些协议?

TCP/IP协议栈包含4个协议层:

网络接口层:负责与物理网络进行交互,完成数据的发送和接收。

网络层:负责数据的寻址、路由选择和数据分组。主要协议是IP协议。

传输层:负责进程间的数据传输。主要协议有TCP和UDP协议。

应用层:提供网络应用服务。包含许多常用协议如HTTP、FTP、SMTP、DNS等。

TCP/IP协议栈4个协议层的主要作用:

1、网络接口层:隐藏物理网络的细节,为高层提供统一的接口。

2、网络层:定义IP地址和路由标准,实现不同子网之间的数据传输。IP协议工作在此层。

3、传输层:定义端到端的通信标准,提供进程间的数据交换。TCP和UDP工作在此层。

4、应用层:提供网络应用服务和接口。不同的应用协议工作在此层,如HTTP、FTP、DNS等。
 

tcpip协议栈中报文封装和解封装过程

TCP/IP协议栈中的报文封装和解封装过程如下:

封装过程: 1. 应用层:应用程序将数据封装成应用层协议的数据单元,如HTTP、FTP等。 2. 传输层:传输层将应用层数据单元封装成传输层协议的数据单元,如TCP、UDP等。TCP协议还会分段,每个段包含一个序号,用于在传输过程中保证数据的可靠传输。UDP协议则直接将数据单元封装成UDP报文。 3. 网络层:网络层将传输层数据单元封装成网络层协议的数据单元,如IP报文。IP报文包含源IP地址、目的IP地址等信息,用于在网络中路由和转发。 4. 数据链路层:数据链路层将网络层数据单元封装成数据链路层协议的数据单元,如以太网帧。以太网帧包含源MAC地址、目的MAC地址等信息,用于在局域网中传输和寻址。 5. 物理层:物理层将数据链路层数据单元转换为比特流,用于在物理媒介上传输。

解封装过程: 1. 物理层:物理层将比特流转换成数据链路层数据单元。 2. 数据链路层:数据链路层将数据链路层数据单元解封装为网络层数据单元。 3. 网络层:网络层将网络层数据单元解封装为传输层数据单元。 4. 传输层:传输层将传输层数据单元解封装为应用层数据单元。 5. 应用层:应用层将应用层数据单元解封装为原始数据。

 

TCPIP协议栈



再分享一张图片来说明一下封装过程;意思跟上图一样,解封就是反向:


 

TCPIP协议栈





tcp在建立连接和断开连接
 

tcp在建立连接和断开连接分别要经过三次握手和四次挥手,那么都会有相应的服务器端口状态,只描述三次握手和四次挥手双端的状态,如图:

TCPIP协议栈


 

数据传输过程

协议栈中数据传输的过程:

TCPIP协议栈

① 应用程序处理

首先应用程序会进行编码处理,这些编码相当于 OSI 的表示层功能;编码转化后,邮件不一定马上被发送出去,这种何时建立通信连接何时发送数据的管理功能,相当于 OSI 的会话层功能。

② TCP 模块的处理

TCP 根据应用的指示,负责建立连接、发送数据以及断开连接。TCP 提供将应用层发来的数据顺利发送至对端的可靠传输。为了实现这一功能,需要在应用层数据的前端附加一个 TCP 首部。

③ IP 模块的处理

IP 将 TCP 传过来的 TCP 首部和 TCP 数据合起来当做自己的数据,并在 TCP 首部的前端加上自己的 IP 首部。IP 包生成后,参考路由控制表决定接受此 IP 包的路由或主机。

④ 网络接口(以太网驱动)的处理

从 IP 传过来的 IP 包对于以太网来说就是数据。给这些数据附加上以太网首部并进行发送处理,生成的以太网数据包将通过物理层传输给接收端。

⑤ 网络接口(以太网驱动)的处理

主机收到以太网包后,首先从以太网包首部找到 MAC 地址判断是否为发送给自己的包,若不是则丢弃数据。如果是发送给自己的包,则从以太网包首部中的类型确定数据类型,再传给相应的模块,如 IP、ARP 等。这里的例子则是 IP 。

⑥ IP 模块的处理

IP 模块接收到数据后也做类似的处理。从包首部中判断此 IP 地址是否与自己的 IP 地址匹配,如果匹配则根据首部的协议类型将数据发送给对应的模块,如 TCP、UDP。这里的例子则是 TCP。另外,对于有路由器的情况,接收端地址往往不是自己的地址,此时,需要借助路由控制表,在调查应该送往的主机或路由器之后再进行转发数据。

⑦ TCP 模块的处理

在 TCP 模块中,首先会计算一下校验和,判断数据是否被破坏。然后检查是否在按照序号接收数据。最后检查端口号,确定具体的应用程序。数据被完整地接收以后,会传给由端口号识别的应用程序。

⑧ 应用程序的处理

接收端应用程序会直接接收发送端发送的数据。通过解析数据,展示相应的内容。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分