zoukankan      html  css  js  c++  java
  • Internet上的网络层


     

    TCP/IP协议栈第三层是网络层,网络层的目的是实现两个系统之间的数据透明传送,具体功能包括寻址和路由选择、连接和建立、保持和终止等。

    TCP/IP协议给internet上的每台主机和路由分配一个地址,数据在internet中的传输主要就是依据一个个的IP地址来寻迹,最终把数据传送到要传送的目的主机上。

    IP协议在TCP/IP协议栈的位置

    无需连接:

    跨域多个异构物理网,IP协议独立的对待要传输的数据报,在传输前不建立连接,传输数据报需要经过不同的路径。

    不可靠性:

    可靠性问题交由高层协议解决,数据在传输过程中可能出现丢失,延迟和无序情况。

    最大努力传输:

    IP尽最大的努力来交付数据报,不轻易放弃数据报。

    互联网把它最基本的传输单元称为数据报,与物理网络帧类似,数据报分为首部和数据区,如下图:

     

     

    IP不规定数据区的格式,可用来传输任意数据。


     

    IP首部:


    版本:占4位,指IP协议的版本,目前是IPv4或IPv6。无论主机还是路由器,在收到一个IP数据报时,首先要检查版本字段,以便选择相应的IP协议模块来进行处理。

    首部长度:占4位,可表示最大数值是15个单位(一个单位4个字节(32位)),取值5-15,因此IP首部长度范围是20-60字节。

    服务类型:占8位。该分组所期望的服务质量。(通用)

       bir0             bit1           bit2              bit3             bit4          bit5               bit6          bit7

    precedence:低3位,指示对分组进行处理(排队或丢弃)的优先权,值从0(普通优先级)到7(网络控制)。

    D、T、R:该分组所希望的路由转发服务类型,不能同时设置。

    D:minimize delay

    T:maximize reliability

    R:maximize throughput

    最高两位为保留位。

    在RFC1349文件中多出一个C:minimize cost

    在RFC2474文件中:

    DSCP:differentiated services code point,区分服务编码点

    CU:currently unused

    服务类型:

    bit0    bit1       bit2                bit3           bit4          bit5    bit6         bit7

    D(delay)延迟,T(throughput)吞吐量,R(reliable)可靠性,M(monetary cost花费,开销,U(unused)未使用。

    优先级有种:

    111-Network Control(网络控制)

    110-Internetwork Control(网间控制)

    101-CRITIC/ECP(关键)

    100-Flash override(疾速)

     011-Flash(闪速)

     010-Immediate(快速)

     001-Priority(优先)

     000-Routine(普通)

    优先级6和7一般保留给网络控制数据使用,如路由。

    优先级5推荐给语音数据使用。

    优先级4由视频会议和视频流使用。

    优先级3给语音控制数据使用。

    优先级1和2给数据业务使用。

    优先级0为默认标记值。

    在标记数据时,既可以使用数值,也可以使用名称(英文名称)。

    第3到6比特的含义如下:

    0000--normal service;

    1000--minimize delay;

    0100--maximize throughput;

    0010--maximize reliability;

    0001--minimize monetary cost。

    服务类型功能:指定本数据报的处理方式,TOS不是必须实现的。

    区分服务编码点(DSCP):

                 bit0 --- bit5                                                           bit6-bit7

    利用已使用的6比特和未使用的2比特,通过编码值来区分优先级。

    DSCP 使用6个bit,DSCP的值得范围为0~63。

    DSCP 是“IP 优先”和“服务类型”字段的组合。为了利用只支持“IP 优先”的旧路由器,会使用 DSCP 值,因为 DSCP 值与“IP 优先”字段兼容。

    用通俗一点的语言解释,其实DSCP就是为了保证通信的QoS,在数据包IP头部的8个标识字节进行编码,来划分服务类别,区分服务的优先级。

    每一个DSCP编码值都被映射到一个已定义的PHB(Per-Hop-Behavior)标识码。

    通过键入DSCP值,电话、Windows客户和服务器等终端设备也可对流量进行标识。如果有兴趣,可以用Wireshark软件抓包看看数据。

    总长度(total lenght):占16位,指首部和数据的总长度,单位以字节为单位,数据报最大长度为65535字节。


     

    标识字段(identification):占16位,让目的主机确定一个新到达的分断属于哪一个数据报,源站每发送一个分组,标识值+1。

    标志字段(flags):

     

    第一位不使用,第二位为DF(Don't Fragment)位,DF位设为1时表明路由器不能对该上层数据包分段。如果一个上层数据包无法在不分段的情况下进行转发,则路由器会丢弃该上层数据包并返回一个错误信息。第三位为MF(More Fragments)位,当路由器对一个上层数据包分段,则路由器会在除了最后一个分段的IP包的包头中将MF位设为1。

    分段偏移(Fragmentation offset):占13位,表示该IP包在该组分片包中位置,接收端靠此来组装还原IP包。以8字节为单位。

    MTU,最大传输单元,当一个数据报较大,无法用一帧数据传输时(以太网一帧数据通常为64-1518字节),IP模块要把它分成较小的片,并为各个分片构造一个单独的IP数据报。

    当同一个数据报的各个分片到达目的主机后,IP模块要将其重组,然后才能向上层交付。

    生存时间(TTL):占8位,描述在一个数据包在计算机和网络设备间传送的时候, 在它可以被丢弃之前, 可以经历的设备的数目的一个极限值。TTL是由数据包的发送者设置的,在前往目的地的过程中,每经过一台主机或设备, 这个值就要减少一点.(通常为1)。如果在数据包到达目的地前,TTL值被减到了0,那么这个包将作为一个ICMP错误的数据包被丢弃。

    TTL可以防止无法到达目的地的数据包在网络中无限制地传递, 形成"不死包"。主要用来限制数据报在网络中的存活时间。

    在路由器收到数据报时,TTL值为t1,处理时延为t2(通常为1),计算t=t1-t2,如果t<0,丢弃数据报,否则将t置为新的TTL值,并转发数据报。


     

    协议(protocol):占8位,指出此数据报携带的数据使用何种协议,以便目的主机的IP层知道将数据部分上交给哪个处理过程。

    1:ICMP  2:IGMP      6:TCP     17:UDP    88:IGRP    89:OSPF

    首部校验和:占16位,只校验数据报首部,数据部分不校验。

    源地址:源主机的IP地址。

    目的地址:目的主机的IP地址。

    可选项(Options):这是一个可变长的字段。该字段属于可选项,主要用于测试,由起源设备根据需要改写。可选项目包含以下内容:
        松散源路由(Loose source routing):给出一连串路由器接口的IP地址。IP包必须沿着这些IP地址传送,但是允许在相继的两个IP地址之间跳过多个路由器。
        严格源路由(Strict source routing):给出一连串路由器接口的IP地址。IP包必须沿着这些IP地址传送,如果下一跳不在IP地址表中则表示发生错误。
        路由记录(Record route):当IP包离开每个路由器的时候记录路由器的出站接口的IP地址。
        时间戳(Timestamps):当IP包离开每个路由器的时候记录时间。
    填充(Padding):因为IP包头长度(Header Length)部分的单位为32bit,所以IP包头的长度必须为32bit的整数倍。因此,在可选项后面,IP协议会填充若干个0,以达到32bit的整数倍。

    关于可选项部分详解,请关注http://bbs.alifpga.com/

    数据部分:IP报文数据。IP数据包报的数据部分通常情况下是传输层数据报(TCP或UDP)。

    首部校验和的计算:IP首部校验和算法同之前讲过的ICMP校验和算法是一样的。这里不再赘述。


     

    版权所有权归卿萃科技,转载请注明出处  

     

    作者:卿萃科技ALIFPGA  

     

    原文地址:卿萃科技FPGA极客空间 微信公众号

     


     

     

     

    扫描二维码关注卿萃科技FPGA极客空间

     


     

     

  • 相关阅读:
    ireport字体无效处理
    java web调用打印机打印pdf文件
    Extjs中如何在一行textfield后面增加文字提示
    java 压缩文件
    filter加载springbean
    Elasticsearch问题记录
    dubbo管控台的安装记录及dubbo开发调试记录
    mysql索引整理
    fastdfs集群搭建3
    fastdfs集群搭建2
  • 原文地址:https://www.cnblogs.com/alifpga/p/7660657.html
Copyright © 2011-2022 走看看