精华内容
下载资源
问答
  • IP数据报

    2020-07-25 15:14:00
    IP 数据报IP 协议单元使用的数据单元,它的格式可以分为报头区和数据区两大部分,其中数据区包括 高层需要传输的数据,而报头区是为了正确传输高层数据而增加的控制信息。 ⚫ 报头区主要包括:版本与协议类型...

    ⚫ IP 数据报是 IP 协议单元使用的数据单元,它的格式可以分为报头区和数据区两大部分,其中数据区包括
    高层需要传输的数据,而报头区是为了正确传输高层数据而增加的控制信息。
    ⚫ 报头区主要包括:版本与协议类型域、长度域、服务类型域、生存周期域、头部校验和域、地址域、选项
    +填充域。其中报头长度域以 32 位的双字为单位;
    ⚫ 生存周期(TTL)域用于防止数据报在 Internet 中无休止地传递;
    ⚫ 头部校验和域用来保证 IP 数据报报头的完整性;
    ⚫ 选项域主要用于控制和测试两大目的。
    ⚫ 报头中有两个表示长度的字段,一个为报头长度,一个为总长度。报头长度以 32b 双字为单位,指
    出该报头区的长度。在没有选项和填充的情况下,该值为“5”。一个含有选项的报头长度则取决于选项
    域的长度。但是,报头长度应当是 32b 的整数倍,如不是,需在填充域加 0 凑齐。
    ⚫ 总长度以 8b 字节为单位,表示整个 IP 数据报的长度(其中包含头部长度和数据区长度)。

     

    应用计算举例:

    展开全文
  • 网际协议(Ipv4) : 转发IP数据报 引言 在网络的世界里,数据报转发可以分为两种类型:直接交付和间接交付。 直接交付 直接交付是指把数据报从一台机器通过物理网络直接传输到另外一台机器,这是所有互联网通信的基础...

    网际协议(Ipv4) : 转发IP数据报

    引言

    在网络的世界里,数据报转发可以分为两种类型:直接交付间接交付

    直接交付

    直接交付是指把数据报从一台机器通过物理网络直接传输到另外一台机器,这是所有互联网通信的基础。
    只有当两台主机位于同一个物理网络时,才会发生直接交付。

    当然,还有几个小问题没有解决。

    Q1: 直接交付具体怎么交付?
    A1:先用ARP协议解析得到目标站点的MAC地址,然后,知道了MAC地址就直接将数据报封装成帧发送过去。

    Q2:如果每次都用ARP协议解析得到对方MAC地址,会不会效率太低了?
    A2:当然,不一定要解析,每一次进行ARP解析之前,都会去检查ARP缓存有没有以往解析的记录。若有,直接取出记录即可发送。

    Q3:如何判断对方网络是不是跟我处于在一个网段?
    A3:直接取出对方IP地址的网络号部分和我方IP地址的网络号进行比对。若网络号相同,则说明处在同一物理网络。

    间接交付

    简介交付是指,当两个主机不处于同一个物理网络,也即两个主机之间间隔了至少一个路由器时,一台主机要给另外一个主机发送数据报,则这台主机会将这个数据报发送给最近的路由器,通过路由器之间的互相传递,最终将数据报交给目标主机。

    这个概念在《用TCP/IP进行网际互连》有一段精辟的总结:

    TCP/IP互联网中的路由器形成一个互相协作的互联结构。数据报从一个路由器传递到下一个路由器,直到抵达一个可直接交付的路由器。

    表驱动的IP转发

    虽然已经知道了数据报会经过路由器序列一级一级转发从而到达路由器,但是,还有一个关键问题没有解决:当一个数据报抵达一个路由器时,它是怎么知道应该转发到哪一个路由器上的?

    为了解决这个问题,需要引入一个数据结构—路由表。路由表又称网际协议路由表(Internet Protocol Routing table)IP路由表(IP Routing Table)。这个表看成是一个Key-Value的数组,数组的每一个元素都是一个键值对(Key-Value),其中存储着可能的IP到路由器出口(路由器至少有两个IP地址,一个IP地址视为一个出口)的配对信息。

    也许你会想,路由器如果需要存储所有可能的IP到路由器出口配对信息,那路由器内存岂不是会爆炸(笑)!

    这时候IP协议的优越性就体现出来了:路由器连接了多个物理网络,它需要将某一个目的地IP是a.b.c.d(这里假设a.b.c是网络号部分,d是主机号部分)的数据报转发出去,那既然每个物理网络的网络号都不同,那么可以将目的IP地址中的网络号提取出来,与对应的出口配对(a.b.c,出口1)存入路由表就行了!

    下次我需要转发目的地址是a.b.c.e的数据报,那么我提取网络号出来(a.b.c),在路由表里查询到出口是出口1,那么我就可以直接将这个数据报从出口1转发出去!

    上述转发过程同样在《用TCP/IP进行网际互连》也有一段精辟的总结:

    为了隐藏信息,应该保持路由表较小并使转发决策效率更高,IP转发软件保存的只是有关目的网络地址的信息,而不是有关个体主机地址的信息

    上述Key-value 的专业术语应该为(N,R),N代表目的网络,R是通往网络N的路径的“下一个”路由器地址以及对应的网络接口!

    通常,可直接交付的路由器之间两两相连,若A路由器需要发送数据报给路由器B,那么路由器A不仅需要知道路由器B的的IP地址(直接交付的两个路由器处于同一个物理网络,其IP地址(专指用于路由器之间互相通信的网络的IP地址)的网络号相同)),还要知道对应的网络接口(路由器可能不止安装了一个物理接口)。

    路由器R称为下一跳(Next Hop),这种转发方法称之为下一跳路由选择(Next-Hop Routing)下一跳转发(Next-Hop Forwarding)

    此外,尽管我们知道所有的转发都是基于网络而不是基于特定主机的,但是大多数IP转发软件都允许指明某个特定的主机的路由作为特例,这么做的理由可能有为了安全、为了更好的通信质量、为了调试通信,等等等。

    默认路由

    如果有一个数据报到来但是上述的转发表里面没有包含这个数据报的IP地址的转发信息,且存在一个默认路由,那么主机就会将这个数据报转发到默认路由去。默认路由在转发表里的目的网络N(网络部分)一般是0.0.0.0/0(假定是Ipv4转发表),前面的0.0.0.0代表目的网络IP地址,后面的0代表网络号部分长度为0,说明当若前面记录没有满足的跳转条件而导致扫描到这条记录时,无论什么目的IP地址的网络号时什么都会通过这条记录转发出去。

    IP转发算法

    基于上面的讨论,我们可以得出IP软件的转发算法的原型算法的伪代码如下:

    从数据报中抽取目的IP地址D;
    IF 表中含有D的特定主机路由:
    	把数据报发送到表中指明的下一跳,然后退出;
    计算地址D的网络前缀N;
    IF N与任何一个直接相连的网络地址匹配:
    	通过该网络把数据报直接交付给目的站D;
    ELSE IF 表中包含一个针对网络N的路由:
    	把数据报发送到表中指明的下一跳;
    ELSE IF 表中包含一个默认路由:
    	把数据报发送到表中指明的默认路由器;
    ELSE 声明一个转发出错;(见ICMP相关内容)
    

    (摘自《用TCP/IP进行网际互连》)

    还有说明没提到?

    上述虽然讨论了怎么使用路由表,但是没有说明系统如何初始化路由表,以及如何根据网络的更新动态更新路由表。这些主题更为复杂,将在之后的文章里讨论。

    展开全文
  • IP数据报格式及如何判断报文类型

    千次阅读 2017-10-23 16:54:07
    IP数据报 TCP/IP协议定义了一个在因特网上传输的包,称为IP数据包。IP数据报(IP Datagram) 由首部和数据两部分组成,首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些...

    1. IP数据报

    TCP/IP协议定义了一个在因特网上传输的包,称为IP数据包。IP数据报(IP Datagram) 由首部和数据两部分组成,首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。

    这里写图片描述
    版本—4bit,IP协议的版本(如IPv4,IPv6)。
    首部长度—4bit,占4位。即从0000~~~~1111,可表示的最大十进制数字是15,首部单位长度为4个字节。当“首部长度”表示为0001时,首部的长度是1(4字节)。首部最大长度为60字节。
    服务类型(区分服务)—8bit,旧标准中叫做服务类型。
    总长度—16bit,总长度指首部和数据之和的长度,单位为字节。
    标识—16bit,它是一个计数器,用来产生数据报的标识。
    标志—3bit,最低位为MF(More Fragment) ,当MF=1,表示后面还在传输数据报的分片。 MF=0,最后一个报文段。中间位DF(Don’t Fragment),DF=0,表示能分片。
    片偏移—12bit,分片后,某片在原来分组中的相对位置。片偏移以8个字节为偏移单位。这就是说,除了最后一个分片,每个分片的长度一定是8字节(64位)的整数倍。
    生存时间(TTL)—8bit,(Time To Live),表明是数据报在网络中的寿命,单位为秒。
    协议—8bit,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。网络层以上的高层协议有TCP,UDP,OSPF,EGP,IGMP,ICMP等。
    首部校验和—18bit,校验数据报的首部。
    源地址—4bit,源主机的IP地址。
    目的地址—4bit,目的IP地址。

    2. 协议字段对应关系

    如何判断报文类型?

    ICMP(Internet Control Message Protocol)——网际控制报文协议——– 1
    IGMP(Internet Group Management Protocol)——网际组管理协议——-2
    TCP(Transmission Control Protocol )————–传输控制协议———- 6
    UDP(User Datagram Protocol)———————用户数据报协议——- 17
    OSPF(Open Shortest Path First)————-开放式最短路径优先——— 89


    其他协议对应请参考该链接:
    http://blog.chinaunix.net/uid-21556133-id-118207.html

    展开全文
  • IP数据报格式

    2019-11-02 18:16:43
    指示期望获得哪种类型服务(数据报的优先级等等) 总长度 首部+数据,单位 1B 生存时间 IP 分组的保质期,经过一个路由器-1,变成0则丢弃(防止数据报在网络兜圈子) 协议 数据部分的协议 如下: ...

    TCP/IP 协议栈

    image

    IP 数据报格式

    image
    首部的格式
    image

    • 版本( version )
      • IPV4/IPV6
    • 首部长度
      • 单位是 4B ,最小为 5
    • 区分服务
      • 指示期望获得哪种类型服务(数据报的优先级等等)
    • 总长度
      • 首部+数据,单位 1B
    • 生存时间
      • IP 分组的保质期,经过一个路由器-1,变成0则丢弃(防止数据报在网络兜圈子)
    • 协议
      • 数据部分的协议
      • 如下:
    协议名 ICMP IGMP TCP EGP IGP UDP IPV6 ESP OSPF
    字节 1 2 6 8 9 17 41 50 89
    • 首部检验和
      • 只检验首部,在检验首部用的方法
    • 源地址
      • 32 位
    • 目的地址
      • 32 位
    • 可选字段
      • 0~40B,用来支持排错,测量及安全等措施。
    • 填充
      • 全 0 ,把首部补成 4B 的整数倍。

    IP 数据报分片

    最大传送单元 MTU

    链路层数据帧可封装数据的上限
    以太网的 MTU 是 1500 字节

    image
    上面是一个 IP分组,也叫 IP数据报,它分为首部和数据部分,然后经过封装,形成链路层的数据帧,封装就是加头加尾。然后 IP 分组就成了数据帧的数据部分,那么这个数据部分就有最大要求值(MTU

    如果传送的数据超过了这个 MTU 值,怎么办?

    解决方法就是 分片,当然,要看分组是否也许,如果分组不也许,那么将不能在往下传,返回一个差错报文

    那么分片怎么理解,这要结合 IP 数据报的格式中的“标识”,“标志”,“片偏移

    字段解释

    • 标识
      • 同一数据报的分片,使用同一标识
    • 标志
      • 一共又三位,只有中间那位和最低位有意义 x _ _
      • 中间为 DFDon’t Fragment
        • DF = 1 , 禁止分片
        • DF = 0 ,也许分片
      • 最低位 MFMore Fragment
        • MF = 1,后面“还有分片”
        • MF = 0,代表最后一片/没分片
    • 片偏移
      • 指出较长的分组分片后,某片在原分组中的相对位置,以 8B 字节为单位
        • 我们知道,片偏移是 13 位,如果它数值是 0…1 ,代表十进制 1,那么它的位置在原来分组或者数据报的相对位置,1 * 8B = 8B ,也就是在原来位置的第 8B 字节开始的位置
      • 出了最后一个分片,每个分片的长度一定是 8B 的整数倍

    例题

    image

    如图,这里 MTU1420B,数据部分和首部加起来 3820B ,超过了最大,需要分片。

    其中 20B 是要作为首部的,剩下的 1400B 才能作为数据部分。分片之后,如图:
    image

    那么每个数据报片的片偏移是多少?

    首先我们规定刚开始还没被分的数据部分,第一个字节成为 0 字节,依次类推。

    第一数据报片,它拿出来 1400B ,从 0B~1399B 被取出,那么它的偏移量是多少?也就是距离原来的数据报的最开始的位置有多远。其实是 0 ,因为它从 0B 开始拿,相对于原来数据报开始位置没有距离的。

    第二数据分片,它从 1400B~2799B,最后的部分是原来数据部分的 2799B,那么偏移量多少?我们,假设放回去,从 1400B 开始,距离开始位置 1400B,然后 除以 81400/8=175,那么它的片偏移量为 175。那么首部字段片偏移为 175。

    第三数据分片,它的数据部分只剩 1000B,它从 2800B~3799B,最后的部分是原来数据部分的 3799B,那么偏移量多少? 我们假设放回去,从 2800B 开始,距离开始位置 2800B,用这个分片的第一个启示字节也就是 2800B,然后除以 82800/8=350,那么它的片偏移量为 350。那么首部字段片偏移为 350。

    最后总结如下图

    temp 总长度 标识 MF DF 片偏移
    原始数据报 3820 12345 0 0 0
    数据报片1 1420 12345 1 0 0
    数据报片2 1420 12345 1 0 175
    数据报片3 1020 12345 0 0 350

    注意
    这里的每个数据报片都要随原来的包含首部,数据部分根据 MTU 分片。最后一个剩多少就是多少

    总结

    对应IP数据报的格式中,首部长度,总长度,片偏移

    • 总长度单位 1B
    • 片偏移单位是 8B
    • 首部长度单位是 4B

    这里单位是什么意思?用总长度来说,也就是总长度是 16 位,它的字段值为 0…1 ,前面 15 个0,后面 1个1,然后用总长度字段的值乘以 1B1x1B=1B,总长度就是 1B(当然这里只是假设,总长度不会那么小)

    展开全文
  • 二、IP数据报格式 记忆方法: TCP是面向连接的服务,面向连接就非常6。而UDP是不面向连接的,数据就非常容易被“遗弃”(17)。因为如果不建立连接,这个链路是不太可靠的,所以数据会经常产生丢包现象,也就是被...
  • IP数据报首部

    2021-05-22 22:02:45
    一般IP数据报首部为20byte,即160bit(“一般”指不带选项的首部) 依顺序各个位置含义如下: • 4bit:协议版本号,目前广泛使用的为IPv4 • 4bit:首部长度除以32(单位为bit),如160bit是32bit的5倍,则为5 • 8...
  • 如图3所示,IP数据报中依次包括以下信息:  1、Version=4,表示IP协议的版本号为4。该部分占4个BIT位。  2、Header Length=20 Bytes,表示IP包头的总长度为20个字节。该部分占4个BIT位,单位为4个字节,因此,...
  • IP数据报由报

    2013-12-19 20:46:17
    IP数据报由报头和数据两部分组成。报头部分包含了目的地址和源地址,数据的类型等信息。IP报头格式如图1.2所示。 图1.2 IP报头格式 下面解释各字段的含义: (1) 版本字段:记录数据报文符合协议的哪一个版本协议...
  • 用户数据报协议,即UDP,是一个面向数据报的简单运输层协议:进程的每次输出操作只产生一个UDP数据报,从而发送 一个IP数据报。 进程通过创建一个Internet域内的SOCK_DGRAM类型的插口,来访问UDP。该类型插口默认地...
  • IP数据报格式简述

    2011-06-20 16:45:00
    数据报在因特网中起着非常重要的作用,为了提高网络编程的内功,对IP数据报加深了解很有必要。 版本号:这4位表明了数据报采用的协议...服务类型:服务类型使不同类型IP数据报能互相区分开来。如:将实时数据报...
  • IP数据报的格式总结

    2017-07-14 11:42:34
    IP数据报的格式(没有严格对应数据长度)版本号首部长度服务类型总长度标识标志位片偏移TTL协议首部检验和源IP目标IP选项字段填充数据 转载于:https://blog.51cto.com/12594906/1947466...
  • IP数据报格式和分片

    2020-05-02 16:23:50
    IP数据报格式 版本:IPv4/IPv6 ? 首部长度:单位是4B,最小为5. 区分服务:指示期望获得哪种类型的服务 总长度:首部+数据,单位是1B; 生存时间(TTL):IP分组的保质期。经过一个路由器-1,变成0则丢弃。 协议:...
  • 第5章 Internet原理与技术1. 分类的IP地址IP 地址中的网络号字段和主机号字段点分十进制记法常用的三种类型IP地址例题2. IP地址的分配与使用3. IP分组的格式4. 因特网地址到物理地址的映射(ARP协议)5. 差错与...
  • IP数据报报头详解

    千次阅读 2014-06-21 10:56:15
    IP数据包的报头至少为20个字节,其中包括版本号,报头长度,服务类型数据报总长度,标识,标志,片偏移,生存时间,协议和头部校验和,源,目的IP地址,先项。引入IP报头字段的目的是为网络实体提供互联机制,IP...
  • MAC帧格式: 以太网帧格式由5个字段组成,前两个字段分别是6字节长的目的地址和源地址字段...例如,当类型字段的值是0X0800时,就表示上层使用的是IP数据报。第四个字段是数据字段,其长度在46~1500字节之间。最后一...
  • 一、IP数据报格式 IP数据报格式如下: 版本 IP协议版本号,长度为4位,IPv4此字段值为4,IPv6此字段值为6 首部长度 以32位的字为单位,该字段长度为4位,最小值为5,即不带任何选项的IP首部20个字节;最大值为15...
  • IP数据报格式及分片

    2019-10-29 04:10:41
    IP数据报格式 下面是首部的结构: 这里的长度单位都是位(比特位) 1、版本4位版本号(version):指定IP协议的版本,对于IPv4来说,就是4 2、首部长度4位头部长度(header length):IP头部的长度,单位是4比特,最小...
  • IP数据报格式 IP数据报的格式如下(这里只讨论IPv4) 图 36.8. IP数据报格式 看图说话:数据报格式介绍 版本号4B 首部长度4B 服务类型(TOS)8B 总长度(字节数)16B 标志位16 标志3B 片偏移13B 生存时间...
  • 实验6用户数据报协议(UDP) 一、实验背景 【实验目的】: 掌握UDP协议的报文格式 掌握UDP协议校验和的计算方法 理解UDP协议的优缺点 理解协议栈对UDP协议的处理方法 理解UDP上层接口应满足的条件 二、实验主要...
  • ip数据报分首部和数据两部分组成: 首部分为固定部分和可变部分 版本——占 4 位,指 IP 协议的版本 目前的 IP 协议版本号为 4 (即 IPv4) 首部长度——占 4 位,可表示的最大数值 是 15 个单位(一个单位为 4 字节...
  •  其实在IP协议的报头中,除了TTL字段,还有几个字段是非常重要的,这就是我们今天要讨论的标识符、标志位以及偏移量,这3个字段在IP数据报的分片与重组中,是非常重要的字段。  我们都知道,不同类型的网络,其...
  • IP协议

    2015-11-22 19:42:00
    IP协议的简介 IP负责IP数据报的传输...3)IP数据报在传输的过程中,IP数据报的IP地址不会发生变化,但链路层协议的物理地址会发生变化 IP数据报的组成。 版本|首部长度 服务类型 数据报长...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,121
精华内容 448
关键字:

ip数据报协议类型