0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

A面面观 来源:综合整理 2023-08-01 17:51 次阅读

tcpip协议栈是什么?

TCP/IP协议栈是计算机网络中使用的最常见的网络协议栈。它是一个四层协议栈,每一层使用不同的协议来实现特定的任务。下面是TCP/IP协议栈的四个层级(自下而上): 1. 链路层:该层主要是协议,负责在物理网络上传输数据帧,包括数据的传输和数据的错误检测与调整。该层使用的协议包括EthernetWi-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. 应用层:应用层将应用层数据单元解封装为原始数据。

wKgZomTI5FyAeuFcAACN0lbnAcA535.jpg



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


wKgZomTI5WmAZXd0AACOdgLQb4I968.jpg





tcp在建立连接和断开连接

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

wKgaomTIzmqAYOwcAAulsFlhg-M731.jpg


数据传输过程

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

ad36e808-26f1-11ee-962d-dac502259ad0.png

① 应用程序处理

首先应用程序会进行编码处理,这些编码相当于 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 模块中,首先会计算一下校验和,判断数据是否被破坏。然后检查是否在按照序号接收数据。最后检查端口号,确定具体的应用程序。数据被完整地接收以后,会传给由端口号识别的应用程序。

⑧ 应用程序的处理

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

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

    关注

    0

    文章

    466

    浏览量

    30316
  • FTP
    FTP
    +关注

    关注

    0

    文章

    99

    浏览量

    40280
  • TCPIP
    +关注

    关注

    1

    文章

    54

    浏览量

    22661
  • TCPIP协议栈
    +关注

    关注

    0

    文章

    6

    浏览量

    5853
收藏 人收藏

    评论

    相关推荐

    基于μCOS-Ⅱ的嵌入式TCPIP_协议的研究与实现

    基于μCOS-Ⅱ的嵌入式TCPIP_协议的研究与实现
    发表于 08-20 09:28

    一种新的嵌入式TCPIP协议的研究与实现

    一种新的嵌入式TCPIP协议的研究与实现
    发表于 08-20 10:37

    ARM开发教程之基于ARM微处理器TCPIP协议LwlP实现

    ARM开发教程之基于ARM微处理器TCPIP协议LwlP实现
    发表于 08-24 22:42

    协议介绍

    的利用率高。且CPU的占用率低。10)本协议支持外网,运行时需要通过ICS服务器与局域网外部网络进行数据通讯。运行时需要设置相关的网关地址,网关地址通过IP层代码进行MAC地址的转换与封装。包括 PING客户端功能,以及DNS
    发表于 09-03 15:02

    协议介绍

    协议介绍本协议的联系方式:qq:292942278附件代码是在ARM7(LPC2210)下开发,用于用户参考。本协议
    发表于 09-14 08:44

    基于TCPIP的Modbus协议的小程序

    基于TCPIP的Modbus协议的小程序
    发表于 12-17 09:06

    TCPIP详解 卷1协议

    TCPIP详解 卷1协议
    发表于 09-28 12:45

    请问1.4的协议和1.3的协议什么区别?

    1.4 的协议 和1.3的协议 区别在那些地方做了几个月工程的1.3协议了 现在是否要移植
    发表于 03-24 06:07

    怎么使用stm32的LWIP协议进行报文调度算法的开发?

    各位朋友好,我的导师要求我设计一个新的报文调度算法,能够实现不同优先级的报文在发送的过程中,实现高优先级报文的低延时和低抖动。要求使用stm32的LWIP
    发表于 04-07 04:35

    协议是什么 协议又是什么

    协议协议的具体实现形式, 通俗的理解就是用代码实现的函数库, 以便于开发人员调用。协议是通常是一个层级结构。
    发表于 08-05 07:00

    51实现TCPIP协议原理图

    51实现TCPIP协议原理图 好东西哦。网上搜集,希望对你有用。
    发表于 03-25 14:28 102次下载

    对几种开源的TCPIP协议栈分析

    对几种开源的TCPIP协议栈分析
    发表于 11-03 16:52 24次下载

    嵌入式TCPIP协议栈LWIP的内部结构

    分析了嵌入式 TCPIP协议栈主要对LWIP的基本结构,介绍了嵌入式TCPIP协议栈LWIP的内存管理方式,同时给出了对UDP、TCP、IP等协议
    发表于 02-17 15:55 76次下载
    嵌入式<b class='flag-5'>TCPIP</b><b class='flag-5'>协议</b>栈LWIP的内部结构

    基于ARM的轻量级TCPIP协议栈的移植及应用

    本文着重与讲诉基于ARM的轻量级TCPIP协议栈的移植及应用
    发表于 10-14 17:55 54次下载
    基于ARM的轻量级<b class='flag-5'>TCPIP</b><b class='flag-5'>协议</b>栈的移植及应用

    TCPIP协议栈的实现lwip

    TCPIP协议栈的实现lwip方便初学者刚开始接触lwip,有个大概的了解与认识。
    发表于 03-14 15:40 13次下载