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,一经查实,立即删除!

相关文章

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

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

CRC32算法详细推导(1)

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

CRC32算法详细推导(2)

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

每天一点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,以便…

单硬盘上mac + win7双系统,GUID-GPT分区

首先,当然要介绍下我的环境了。 一、环境介绍 1. 主板是支持UEFI启动的,但是我感觉自己没用到。 2. 我有两个硬盘: hd0: 准备安装mac和win7_x64 hd1: GUID格式,GPT分区,已装有mac10.9.3环境,还有个FAT32的分区&a…

将clover安装到硬盘EFI分区, 解决root device uuid is ...问题

其实说白了,很简单,照着配置图来,一招搞定,但是当你不知道这些配置的时候,将可能耗费你好几天的时间,而且还不一定得到最优解。 附“Clover v2k r2703.pkg"下载地址: http://download.csdn.net/deta…

Silverlight 5 新特性

微软Silverlight 团队在12月9日早上低调的发布了Silverlight 第五个版本-Silverlight 5. Silverlight 5 Available is Here 这也可能是Silverlight最后一个官方主要版本. Silverlight 5 可能作为官方发布最后一个Silverlight 版本. 官方提供各方面支持直到2021年. 支持的时间相…

VMware10出现VMware Workstation 不可恢复错误: (vmx)

在我的VMware10中安装了Ubuntu12, 昨晚还正常关机的呢,今天早上一打开,竟然报错了,错误如图: 上网搜索了下,没有找到比较合适的方法,最后,我在没有卸载VMware的情况下,重…

DB2中ixf文件的导入导出

1. 导出数据 语法&#xff1a;EXPORT TO <文件路径>/文件名.IXF OF IXF SELECT * FROM 表名 2. 导入数据 语法&#xff1a;db2 IMPORT FROM <路径>/<文件名>.IXF OF IXF MODIFIED BY FORCECREATE COMMITCOUNT 10000 REPLACE_CREATE INTO <表名> 简单语…

Android新手入门2016(10)--GridView

本文来自肥宝传说之路&#xff0c;引用必须注明出处&#xff01; GridView跟ListView一样是多控件布局。实现九宫图是最方便的。 还是先看看图&#xff0c;没图说个鸡鸡是不是 如上图&#xff0c;是一种应用方式&#xff0c;在每个格子里面&#xff0c;放入应用图标&#xff0c…

《云计算核心技术剖析》读书笔记之一

http://book.douban.com/subject/6382788/ 通过2周的时间&#xff0c;阅读完了由吴朱华编著的《云计算核心技术剖析》一书。同时国内由CSDN协办的第四届云计算大会要开幕&#xff0c;我在这里把自己写下这本书的读书笔记。这本书是2011年出版&#xff0c;但是在这本书上对微软的…

第四周仿真作业

经过第四周关于交流电机的学习&#xff0c;我们通过对起调速特性的了解&#xff0c;进行仿真&#xff1a; 控制电机带重物上升&#xff0c;从静止加速到800r/min保持800r/min匀速运动0.5s&#xff0c;减速到静止&#xff0c;保持静止状态0.5s&#xff0c;带重物下降&#xff0c…

GVim中以十六进制方式打开文件

在windows下&#xff0c;有时我们想用GVim以十六进制形式来打开一个文件&#xff0c;下面就是不错的方法&#xff0c;将它作为一个右键菜单方式加入&#xff1a; 1. 将"GVim Hex"加入到右键菜单, 将以下内容添加到一个xxx.reg文件&#xff0c;再双击运行一次即可&am…

高性能的智能日志

【编者按】本文作者是 Archanaa Panda &#xff0c;从 2000 以来一直在软件开发&#xff08;构架、设计和编程&#xff09;团队担任 Java / JavaEE 构架师&#xff0c;目前立志于做一个与时俱进的独立的顾问架构师。在本篇文章中&#xff0c;作者通过多个方面为生产环节的日志提…

Android, WindowsPhone7, IOS ,vc2010平台40多套图片滤镜开源

历经三个多月开发&#xff0c;终于完成了这三个库的编码工作。用到的开发语言主要有使用了C&#xff08;含部分Object-c&#xff09;,JAVA,C#。经过检测&#xff0c;目前已正式投入到生产环境中。 为了实现三种语言一种命名方式&#xff0c;我采用了相同的类名&#xff0c;接口…

找到一个比较熟悉Go语言的国内博客

2019独角兽企业重金招聘Python工程师标准>>> 他写了一些不错的Go安装和使用的文章&#xff0c;还参与了一本Go语言书籍的翻译工作&#xff0c;对Go语言相当熟悉。博客地址&#xff1a; http://www.mikespook.com/category/golang-2/ 转载于:https://my.oschina.net/…