IP协议详解

IP协议详解

IP协议是TCP/IP协议族里面的核心协议,也是socket网络编程的基础之一。

  1. IP的头部信息。IP头信息出现你在每个IP数据报中,用于指定IP通信的源端IP地址,目的端IP地址,指导IP分片和重组,以及部分通信行为。
  2. IP数据包的路由和转发。IP数据包的路由和转发发生在除目标机器之外的所有主机和路由上。他们决定数据报的转发。

IP服务的特点

IP协议是TCP/IP协议族的动力,他为上层提供无状态、无连接、不可靠的服务。

  1. 无状态:指IP通信双方不同步传输数据的状态信息,因此所有IP数据报的发送、传输和接受都是相互独立的、没有上下文关系。这种服务最大的缺点就是无法处理乱序和重复的IP数据报。
    虽然IP数据包头部中提供一个标识字段用以表示唯一一个IP数据报,但是它是被用来处理IP分组和重组的,而不是用来只是顺序的。
    优点:简单、高效。无需时刻保持通讯状态所需要的一些内核资源。
  2. 无连接:指IP双方通信都步长久维持对方的任何信息。这样,上层协议每次发送数据的时候,都必须知名对方的IP地址。
  3. 不可靠:指IP协议不能保证IP数据报准确到达接收端,他只是尽最大努力。

IPv4的头部结构

在这里插入图片描述

  1. 4位版本号:指定IP协议的版本。对于IPv4来说位4。
  2. 4位首部长度:标识改IP头部有多少个32bit字。因为4位最大能表示15,所以IP头部最长位60个字节。
  3. 8位服务类型:包括一个3位的优先权字段(现已被忽略),4位的TOS字段和1位保留字段(必须为0)。4位TOS字段分别表示:最小延时、最大延时、最高可靠性和最小费用。其中最多有一个置为1,应用程序根据需要来设置。
  4. 16位总长度:指整个IP数据报的长度,以字节为单位,因此IP数据报的最大长度为(65535)2**16-1个字节。但是由于MTU限制,长度超过MTU的IP数据报要被分片传输。
  5. 16位标识:唯一标识主机发送的每一个IP数据报。其初始值右系统随机生成;没法送一个数据报,其指加1.该值在数据报分片时候被复制到每个分片中,因此同一个数据报的所有分片都具有相同的标识值。
  6. 3位标志:第二位(dont fragment,DF)表示禁止分片。在这种情况下,如果必须要分片又设置这个值,则丢弃改IP数据报并返回一个ICMp差错报文。第三位(more fragment,MF)表示更多分片。除了分片的最后一个报文外,其他分片报文此位都为1。
  7. 13位分片偏移:是分片相对原始IP数据报开始处的偏移。实际的偏移值应该是该值的左移3位后得到。由于这个原因,除了最后一个IP分片外,每个IP分片数据部分的长度必须是8的整数倍。
  8. 8位生存时间:是数据报到达目的之前允许经过的路由器跳数。
  9. 8位协议用来区分上层协议。ICMP为1,TCP为6,UDP为17。
  10. 16位头部校验和:有发送端填充,接收端对其使用CRC算法以检验IP数据报头部在传输过程中是否损坏。
  11. 32位源IP地址和目的端IP地址:标识数据报的发送端和接收端。
  12. 可选信息字段:记录路由、时间戳、松散源路由选择、严格路由选择。

IP分片

当IP数据报的长度超过帧的MTU是,它将被分片传输。

  1. 同一个IP数据报的分片,标识位相同,标志位即为偏移量。
  2. 3位标识除了最后一个分片外,设置为MF=1。

IP重组

根据16位标识位来和偏移量进行重组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值