`
t225com
  • 浏览: 662865 次
文章分类
社区版块
存档分类
最新评论

TCP/IP网络编程(5)

 
阅读更多

IP数据报的分片与重组

最大传输单元:不同的网络由于链路层和介质的物理特性不同,因此在进行数据传输时,对数据帧的最大长度都有一个限制,这个限制值叫最大传输单元(Maximum Transmission Unit, MTU)。如果两台主机之间的通信要通过多个具有不同MTU值的网络,那么重要的不是两台主机所在网络的MTU值,而是两台通信主机路径上最小的MTU值,它被称作路径MTU。

网络名称 MTU(单位:Byte)
以太网 1500
IEEE 802.3/802.2 1492
FDDI 4352
ATM(信元) 48
X.25 576
点到点(低延时) 296
令牌环网(IBM 16MB/s) 17914
令牌环网(IEEE 802.5 IBM 16MB/s) 4464

分片

当一个IP数据报要通过链路层进行传输时,如果IP数据报的长度比链路层MTU的值大,那么IP层就需要对将要发送的IP数据报进行分片,把一个IP数据报分成若干个长度小于或等于链路层的MTU的IP数据报,才能经过链路层进行传输。这种为了适合网络传输而把一个数据报分成多个数据报的过程,叫分片(fragmentation)。分片后的各个IP数据报,可能经过不同的路径到达目标主机。

IP数据报头

注:分片后的IP数据报,数据区所示的原IP数据报数据区的一个连续部分。头部是原IP数据报头区的复制,但与原来未分片的IP数据报头部有以下两点不同:

(1)标志。在IP数据报的头部,有一个叫标志的字段,用3位二进制数表示。

未用 不分片(DF) 片未完(MF)

不分片(Do Not Fragment , DF)标志如果被置1,则数据报在传输工程中不能被分片。

片未完(More Fragment , MF)标志被置1时,说明该数据报不是分片后的第一个数据报,最后一个数据报的该位被置0.

(2)片偏移

IP数据报被分成3片之后,各片数据区在原来IP数据区中的位置用13位片偏移表示。假设标志域返回1,则此域包括本片数据在原IP数据报数据区中的偏移量。

(3)重组

当分了片的IP数据报被传输到最终目标主机时,目标主机要对收到的各分片重新进行组装,以恢复成源主机发送时的IP数据报,这个过程叫做IP数据报的重组。

IP数据报选项

IP数据报选项主要由两大功能:一是可以用来实现对数据报传输过程的控制。二是进行网络测试。

IP选择域共分4大类:

选项类 用途 选项号 长度 功能
0类 数据报或网络控制 0 - IP数据报头中的任选项域结束
1 - 无操作
2 11Byte 安全和处理限制(用于军事领域)
3 可变 设置宽松源路由选择
7 可变 记录数据报经过的路由
9 可变 设置严格源路由选择
1类 -
2类 调试和测量 可变 记录Internet时戳
3类 未用

IP数据报选择由3部分组成:选项码,选项长度和选项数据。选项码和选项长度各占一个字节,选项长度用于确定选项部分的长度。

选项码 选项长度 选项数据
复制 选项类 选项号

(1)复制:占一位,用来控制一个带有选项的IP数据报被分片时,分片后对选项的处理方式。如果该位被置1,将选项复制到所有分片中;被置0,将选项仅复制到第一个分片中。

(2)选项类和选项号:选项类占两位,选项号占5位,用于确定该选项是哪类选项中的哪个选项,其实就是用于确定该项的功能。

分享到:
评论

相关推荐

    《TCP/IP网络编程》尹圣雨 例程源码

    《TCP/IP网络编程》尹圣雨 例程源码

    TCP/IP高效编程(Effective TCP/IP Programming)

    《tcp/ip高效编程:改善网络程序的44个技巧》是tcp/ip 领域的经典著作,对tcp/ip 网络编程中存在的各种问题进行了全面解析,旨在帮助读者深入透彻地理解tcp/ip 网络编程。本书组织方式比较特别,正文部分包括4 章,将...

    《TCP/IP网络编程》尹圣雨-各章节代码汇总

    内容概要:主要收录了《TCP/IP网络编程》这本书每个章节内容所用到的代码,可以直接运行(是C语言文件,最好在Linux系统中运行使用) 适合人群:有一定编程语言基础,网络编程方面零基础也可学习 能学到什么:结合...

    TCP/IP网络编程课件

    TCP/IP网络编程课件,关于网络编程的详细介绍。

    tcp/ip网络编程课件

    详细讲解tcp/ip技术及底层网络编程技术,还包括一些示例代码

    基于VC的TCP/IP网络编程

    基于VC的TCP/IP网络编程,实现基本的接收功能。

    tcp/ip协议与网络编程

    1.1 Internet中的“世界语”——TCP/IP协议 1.2 TCP/IP协议的体系结构 1.3 TCP/IP协议的工作过程 习题

    tcp/ip网络环境编程ppt

    tcp/ip网络环境编程ppt,某所大学课程。

    基于TCP/IP的socket编程

    实现了服务器与客户端功能的合二为一,客户端启动后,连接三次服务器,如果失败,则自己自动变为服务器。

    TCP/IP SOCKET 网络编程

    TCP/IP SOCKET 网络编程 多模式I/O网络开发

    TCP/IP高效编程: 改善网络程序的44个技巧 (高清带书签)

    TCP/IP高效编程: 改善网络程序的44个技巧 (高清带书签)

    TCP/IP详解(卷一)

    W.Richard Stevens(1951-1999)是一位非常受人尊敬的专家,除了《TCP/IP详解》三卷本外,他还有其他两部最为畅销的作品:《UNIX环境高级编程》和《UNIX网络编程》(两卷本)。 目录 译者序 前言 第1章 概述 1 ...

    TCP/IP网络编程基础知识

    网络编程的本质是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机。数据传递本身没有多大的难度,不就是把一个设备中的数据发送给另外一个设备,然后接受另外一个设备反馈的数据。现在的网络编程...

    基于TCP/IP协议的网络编程

    基于TCP_IP协议的网络编程 C++ 调用windows api函数

    Java TCP IP Socket编程(原书第2版).

    《Java TCP/IP Socket编程(原书第2版)》基于TCP/IP Socket相关原理,对如何在Java中进行Socket...《Java TCP/IP Socket编程(原书第2版)》适合作为Java Socket编程的入门教程,也可供从事网络相关专业的技术人员参考。

    TCP/IP java 编程

    TCP/IP网络中最常用的传输协议TCP和UDP。传输层通常以TCP和UDP协议来控制端点到端点的通信。Socket定义了通信的端点,是由IP地址和端口号组成。JAVA语言已经成为现今网络应用中最广泛的语言,本文就是介绍JAVA中的...

    TCP/IP网络编程 带书签目录 完整版.zip

    本书以通俗易懂的语言详细介绍了TCP/IP及其工作原理,以简单明了的编程实例全面介绍了基于Winsock的网络程序设计技术

    TCP/IP协议与网络编程技术

    上篇主要介绍TCP/IP协议簇中的常用协议,下篇专门介绍网络编程知识与技能。 (2)具体在编写每一节的内容时将原理知识与实用技能融为一体。以方便读者学习。 (3)考虑到TCP/IP协议比较抽象,学习起来有一定的难度,...

    TCP/IP网络基础

    利用TCP/IP进行网络间通信,利用客户端给服务器端发数据,服务器端进行处理并返回处理结果

Global site tag (gtag.js) - Google Analytics