zoukankan      html  css  js  c++  java
  • IP协议

    首先IP协议是一种不可靠的协议,它提供的不可靠的通信服务称为数据包服务。主要负责对数据分组的寻址和路由。

    IP协议

    IP协议的核心是IP地址,在IP网络中为每一个主机都分配了一个IP地址。准确的说IP地址不是分配给主机的,而是分配给主机的网络接口卡(即网卡)。也就是说如果一个电脑有多个网卡,并且为每个网卡分配一个唯一的IP,这台主机就有多个IP地址。网络接口卡是主机与底层物理通信信道的连接,因此IP协议的数据传输过程如下:

    IP分组

    图1-IP分组在网络中的传输过程

    IP地址是一个32位二进制数,分为网络号和主机号两部分。网络号很重要,路由器在转发分组时主要根据目的主机IP地址中的网络号进行转发。网路号的长度不定,一般有子网掩码来决定网络号的长度。子网掩码是一个有若干个连续的1和若干个连续的0组成的32为二进制数。路由器通过将分组中目的IP地址与子网掩码做逻辑与运算来获得目的网络号。不同网络之间的通信必须经过路由器。

    IP分组

    一个IP分组由首部和数据两部分组成。首部的前一部分长度是固定的20字节,固定部分的后面是一些可选字段,其长度是可变的,但是首部长度必须为4字节的整数倍,如果不满4字节的着整数倍需要进行填充。

    IPv4数据报格式

    接下来对IP数据报格式中的各个字段进行详解。

    字段 长度 取值 描述 备注
    版本 4bit 0100 表示IPv4  
    首部长度 4bit 最大15 首部长度最大为60字节  
    服务类型 8bit   区分服务  
    总长度 16bit 最大65535 IP数据报最大长度为65535字节(首部+数据)  
    标识 16bit   当数据包需要分片时,标识标记属于同一数据包的所有分片。  
    标志 3bit   目前只有两位使用,
    第一位MF,
    MF=1,表示后面还有数据分片,MF=0,表示最后一个数据分片。
    第二位DF,
    DF=1,数据不能分片,
    DF=0,数据可以分片。
     
    片位移 13bit   某片数据相对用户数据起始字段的相对位置,以8个字节为单位,即每个分片的数据长度都是8字节的整数倍。  
    生存时间 8bit 32/64,scapy默认64 TTL,数据报在网络中的寿命。以秒为单位。每经过一个路由器就减去在路由器所花费的时间,不足1秒,当1秒计算。当TTL减为0,丢弃数据报。  
    协议 8bit 6-TCP,
    17-UDP
    由上层协议填充。  
    首部检验和 16bit   只检查首部,不检查数据部分  
    源地址 32bit   IP地址  
    目的地址 32bit   IP地址  
    选项部分 可变(0~40字节)   基本用不到  
    数据部分 可变(0~65515字节)   用户自定义  
  • 相关阅读:
    【Codevs 2630】宝库通道
    【Codevs 2115】数集分割
    【HDU2037】今年暑假不AC
    【Codeforces】Round #376 (Div. 2)
    【Dairy】2016.10.17-1 OIer最悲剧的事情
    【Codevs 3115】高精度练习之减法
    【Codevs1080】质数环
    【T^T 1871】获取敌情
    【Codevs3151】交通管制I
    【Codeforces】716D Complete The Graph
  • 原文地址:https://www.cnblogs.com/wanhuan/p/5424231.html
Copyright © 2011-2022 走看看