TCP/IP协议栈封装解封装过程

发送方将用户数据提交给应用程序把数据送达目的地,整个数据封装流程如下:
用户数据首先传送至应用层,添加应用层信息;
完成应用层处理后,数据将往下层传输层继续传送,添加传输层信息(如TCP或UDP,应用层协议已规定是TCP还是UDP);
完成传输层处理后,数据将往下层网络层继续传送,添加网络层信息(如IP)。
完成网络层处理后,数据将往下层数据链接层继续传送,添加数据链层信息(如Ethernet、802.3、PPP、HDLC等),而后以比特流方式传输至对端(中间根据不同类型设备处理方式不同,交换机一般只进行数据链路层信息处理,而路由器进行更高层网络层处理,只有到达最终目的地才能恢复原用户数据);
用户数据到达目的地后,将完成解封装流程:
数据包先传送至数据链路层,经过解析后数据链路层信息被剥离,并根据解析信息知道网络层信息,比如为IP;
网络层接收数据包后,经过解析后网络层信息被剥离,并根据解析信息知道上层处理协议,比如TCP;
传输层(TCP)接收数据包后,经过解析后传输层信息被剥离,并根据解析信息知道上层处理协议,比如HTTP;
应用层接收到数据包后,经过解析后应用层信息被剥离,最终展示的用户数据与发送方主机发送的数据完全相同。
应用
TCP/IP协议栈封装解封装过程的更多相关文章
- TCP/IP协议栈与数据报封装
一.ISO/OSI参考模型 OSI(open system interconnection)开放系统互联模型是由ISO(International Organization for Standardi ...
- TCP/IP协议栈与数据报封装 (802.3 Ethernet 以太网 802.11 WLAN 无线网 )
http://blog.csdn.net/jnu_simba/article/details/8957242 一.ISO/OSI参考模型 OSI(open system interconnection ...
- TCP/IP协议栈与数据包封装+TCP与UDP区别
ISO制定的OSI参考模型的过于庞大.复杂招致了许多批评.与此对照,由技术人员自己开发的TCP/IP协议栈获得了更为广泛的应用.如图2-1所示,是TCP/IP参考模型和OSI参考模型的对比示意图. T ...
- 【转】TCP/IP协议栈及OSI参考模型详解
OSI参考模型 OSI RM:开放系统互连参考模型(open systeminterconnection reference model) OSI参考模型具有以下优点: 简化了相关的网络操作: 提供设 ...
- TCP/IP协议栈及OSI参考模型详解
OSI参考模型 OSI RM:开放系统互连参考模型(open systeminterconnection reference model) OSI参考模型具有以下优点: 简化了相关的网络操作: 提供设 ...
- TCP/IP 协议栈及 OSI 参考模型详解
OSI参考模型 OSI RM:开放系统互连参考模型(open systeminterconnection reference model) OSI参考模型具有以下优点: 简化了相关的网络操作: 提供设 ...
- UNIX/Linux网络编程基础:图解TCP/IP协议栈
目录 1.主机到网络层协议:以太网协议 2.IP协议 3.网际控制报文协议(ICMP) 4.传输控制协议(TCP) 5.用户数据报文协议(UDP) 6.流控制传输协议(SCTP) 7.地址解析协议(A ...
- 【转载】TCP /IP协议详解
首先,TCP/IP不是一个协议,而是一个协议族的统称. 里面包括了IP协议,IMCP协议,TCP协议,以及http.ftp.pop3协议等等. TCP/IP协议分层 提到协议分层,我们很容易联想到IS ...
- TCP/IP协议栈概述及各层包头分析
TCP/IP协议栈中各层包头的分析 Protocol列表示的是该数据包最高层对应的协议,Length列表示该包的长度(包括从底层的协议到最高层的协议,其中包头一般是,链路层14字节,IP20字节,TC ...
- TCP/IP协议详解---概述
工作之后,才发现以前在学校里学的东西忘得太快太干净了,现在需要一点点地捡起来了,要不然写几行程序会闹很多笑话会出现很多bug的.从今天开始,翻一翻<TCP/IP协议详解 卷1>这本 ...
随机推荐
- CF2023C C+K+S 题解
题面 给您两个强联通的 \(^{\dagger}\) 有向图,每个图都有精确的 \(n\) 个顶点,但可能有不同数量的边.仔细观察后,您发现了一个重要特征--这些图中任何一个环的长度都能被 \(k\) ...
- hyperf的使用
hyperf是swoole的封装框架,用起来效率还是不错的. 使用方式看手册 https://hyperf.wiki/2.2/#/zh-cn/quick-start/install 其实是靠compo ...
- luasql报错笔记
luasql 编译安装 查看mysql配置,注意 lmysqlclient 路径 [root@hmy luasql-master]# yum install mysql-devel gcc* -y [ ...
- Impala学习--Impala前端代码分析,Impala后端代码分析
Impala前端代码分析 Table of Contents 1 概述 2 语法分析和ParseNode 3 Analyzer 4 生成执行计划和Planner 5 Catalog 1 概述 前端代码 ...
- 解决页面隐藏的元素闪现的问题v-cloak
在v-if处加上v-cloak属性 <div class="sys-changeBox" v-cloak v-if="showTosat" @click. ...
- Linux C/C++编程之静态库
[图书推荐]<Linux C与C++一线开发实践(第2版)>_linux c与c++一线开发实践pdf-CSDN博客 <Linux C与C++一线开发实践(第2版)(Linux技术丛 ...
- docker构建supervisor镜像
1 介绍 记录使用docker 构建包含 supervior 的镜像, supervisor: 是一个管理和监控进程的程序,可以方便的通过配置文件来管理我们的任务脚本 将supervisor构建到系统 ...
- uniapp h5 和 小程序互相传值
小程序端 <template> <div> <web-view :webview-styles="webviewStyles" :src=" ...
- Docker启动Nacos2.4.3并且使用MySQL
1.拉取容器 docker pull nacos/nacos-server:v2.4.3 2.创建宿主机挂载目录 mkdir -p /docker/nacos/logs/ mkdir -p /dock ...
- Flutter获取当前路由信息和全局路由监听
Flutter获取当前路由信息和全局路由监听 获取当前路由名 通过Flutter提供的方式 var routePath = ModalRoute.of(context).settings.name; ...