TCP/IP ---封装与分用

封装

当应用程序用T C P传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作
一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部
信息),该过程如图1 - 7所示。T C P传给I P的数据单元称作T C P报文段或简称为T C P段(T C P
s e g m e n t)。I P传给网络接口层的数据单元称作I P数据报(IP datagram)。通过以太网传输的比特
流称作帧(Fr a m e )。

 

由于T C P、U D P、I C M P和I G M P都要向I P传送数据,因此I P必须在
生成的I P首部中加入某种标识,以表明数据属于哪一层。为此, I P在首部中存入一个长度为
8 b i t的数值,称作协议域。1表示为I C M P协议, 2表示为I G M P协议, 6表示为T C P协议, 1 7表
示为U D P协议。

类似地,许多应用程序都可以使用T C P或U D P来传送数据。运输层协议在生成报文首部
时要存入一个应用程序的标识符。T C P和U D P都用一个1 6 b i t的端口号来表示不同的应用程序。
T C P和U D P把源端口号和目的端口号分别存入报文首部中。

网络接口分别要发送和接收I P、A R P和R A R P数据,因此也必须在以太网的帧首部中加入
某种形式的标识,以指明生成数据的网络层协议。为此,以太网的帧首部也有一个16 bit的帧
类型域。

 

分用

当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各
层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的
上层协议。这个过程称作分用( D e m u l t i p l e x i n g),图1 - 8显示了该过程是如何发生的。

为协议I C M P和I G M P定位一直是一件很棘手的事情。在图1 - 4中,把它们与I P放在
同一层上,那是因为事实上它们是I P的附属协议。但是在这里,我们又把它们放在I P层
的上面,这是因为ICMP和IGMP报文都被封装在IP数据报中。

对于A R P和R A R P,我们也遇到类似的难题。在这里把它们放在以太网设备驱动程
序的上方,这是因为它们和I P数据报一样,都有各自的以太网数据帧类型。但在图2 - 4
中,我们又把A R P作为以太网设备驱动程序的一部分,放在I P层的下面,其原因在逻
辑上是合理的。
这些分层协议盒并不都是完美的。

 

转载于:https://www.cnblogs.com/saryli/p/5287830.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404161.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入了解crc32算法

From: http://blog.csdn.net/isadream/article/details/2072760 由于项目需要,解决一个流媒体文件的crc32校验码。网上查了很多的资料,发现了此校验码和生成多项式以及算法本身都有关系。对于不同类型的文件所使用的多项式以及算法不同,对于不…

React开发(271):UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated e

原因:没有进行promise的差错处理 解决方案:加一个catch语句 .catch(err > {console.log(err);})

远程计算机需要网络级别身份验证,而您的计算机不支持该验证,请联系您的系统管理员或者技术人员来获得帮助...

故障:“远程计算机需要网络级别身份验证,而您的计算机不支持该验证,请联系您的系统管理员或者技术人员来获得帮助” 故障症状:当您使用Windows XP“远程桌面连接”工具去连接Windows Vistas或Windows Server 2008的远程桌面、终端…

CRC32算法详细推导(1)

From: http://blog.csdn.net/sparkliang/article/details/5671510 CRC算法详解(1) 作为blog再次发出来,详细描述一下CRC32算法的推导过程。 CRC 算法的数学基础 CRC 算法的数学基础就不再多啰嗦了,到处都是,简单提一…

前端javascript面试题目录汇总

【JS】 [js] 请使用js实现一个秒表计时器的程序 [js] 模拟 localStorage 时如何实现过期时间功能 [js] 请使用js实现商品的自由组合,并说说你的思路 [js] js中的undefined和 ReferenceError: xxx is not defined 有什么区别? [js]JavaScript Number…

React开发(272):try...catch..捕获

//通过接口获取listhandleSearchList async (url) > {try {const res await url();if (res.data && res.data.length > 0) {this.setState({thirdList: res.data,showThird: true,tabName: ,});}} catch (error) {}};

CRC32算法详细推导(2)

From: http://blog.csdn.net/sparkliang/article/details/5671977 CRC算法详解(2) 初见 Table-Driven 变换到上面的方法后,我们离 table-driven 的方法只有一步之遥了,我们知道一个字节能表示的正整数范围是 0~255,步…

iOS UIWebView加载网页、文件、HTML

UIWebView是用来加载加载网页数据的一个框架.UIWebView可以用来加载pdf,word,doc,等等文件,生成webview 有两种方法,1、通过storyboard 拖拽 2、通过alloc init 来初始化创建webview,下列文本中 _webView.dataDetectorTypes UIDataDetectorTypeAll; 是识…

nginx的upstream模块安装

下载连接:wget http://code.google.com/p/nginx-upstream-jvm-route/downloads/detail?namenginx-upstream-jvm-route-0.2.tar.gz&can1&q/nginx-upstream-jvm-route-0.2.tar.gz nginx_upstream_jvm_route 是一个 Nginx 的扩展模块,用来实现基于…

前端面试题Vue-cli目录汇总

【Vue-cli】 [vue-cli]vue-cli3你有使用过吗?它和2.x版本有什么区别? [vue-cli]vue-cli默认是单页面的,那要弄成多页面该怎么办呢 [vue-cli]不用vue-cli,你自己有搭建过vue的开发环境吗?流程是什么? [v…

CRC32算法详细推导(3)

From:http://blog.csdn.net/sparkliang/article/details/5671543 CRC32算法详细推导(3) 郁闷的位逆转 看起来我们已经得到 CRC-32 算法的最终形式了,可是、可是在实际的应用中,数据传输时是低位先行的;对于一个字节 …

WebService的学习

这篇文章不错,直接转了 http://blog.csdn.net/terryzero/article/details/5976638#comments 转载于:https://www.cnblogs.com/zhilu-doc/p/5291927.html

linux 用户行为审计

根据公司需求,整理了一个linux用户审计的脚本,现和大家分享! 具体步骤如下: 一:配置调试 1.创建用户审计文件存放目录和审计日志文件 ; mkdir -p /var/log/usermonitor/ 2.创建用户审计日志文件&#xff1…

前端面试题vue-element汇总

【Vue-element】 [vue-element] ElementUI是怎么做表单验证的?在循环里对每个input验证怎么做呢? [vue-element] 你有二次封装过ElementUI组件吗? [vue-element] ElementUI怎么修改组件的默认样式? [vue-element]ElementUI的穿…

每天一点Swift(五)控制器的生命周期和SizeClass

字数358 阅读19 评论0 喜欢0 初始化init-->awakeFromNib--> prepare a segue --> SB去设置outlets --> viewDidLoad 1. viewDidLoad 在viewDidLoad中,outlets已经被设置;但是几何位置(bounds)并没有被设置 viewDidLoa…

h264 I帧的判断

From:http://blog.csdn.net/dxpqxb/article/details/13289205 H264数据的NALU 头的格式如图2 所示: F:forbidden_zero_bit.1 位,如果有语法冲突,则为 1。当网络识别此单元存在比特错误时,可将其设为 1,以便…

前端面试题node.js汇总

【NodeJs】 [NodeJs] 你有使用过npx吗?它主要解决什么问题? [NodeJs] 如何使用nodejs对base64进行编解码? [NodeJs] npm提供了哪些钩子?各有什么作用? [NodeJs] 如果发现node_modules中有个模块代码有bug&#xff…

win10 下安装、配置、启动mysql

1、下载http://dev.mysql.com/downloads/mysql/ 2、Community > MySQL Community Server 3、Other Downloads: > Windows (x86, 32-bit), ZIP Archive 5、解压mysql-5.7.11-winx64.zip,解压在 D:\soft\mysql-5.7.11-winx64\mysql-5.7.11-winx64 6、在D:\soft\…

成功驱动HD4600-Clover引导

本人机器配置如下: 操作系统 Windows 7 旗舰版 64位 SP1 ( DirectX 11 ) 处理器 英特尔 Core i7-4770K 3.50GHz 四核 核显: Intel HD4600 主板 华硕 Z87-PRO (英特尔 Haswell) 内存 8 GB ( 金士顿 DDR3 1778MH…

前端软技能面试汇总

【软技能】 [软技能] 在前后端分离项目里,请说说前端传递的token的流程? [软技能] 现如今面对如层出不穷的类库,说说你的感受 [软技能] 你认为计算专业和非计算机专业的差别在哪?为什么? [软技能] png-8和png-24有…