IP协议详解之头部结构
IP头部信息:
出现在每个IP数据报中,用于指定IP通信的源端IP地址,目的端IP地址,指导IP分片和重组,以及指定部分通信行为。
IP数据报的路由和转发:
发生在除目标机器之外的所有主机和路由器上。它们决定数据报是否应该转发以及如何转发。
IP服务的特点
IP协议是TCP/IP协议族的动力,他为上层协议提供无状态、无连接、不可靠的服务。
无状态:
是指IP通信双方不同步传输数据的状态信息,因此所有IP数据报的发送、传输和接受都是相互独立的、没有上下文关系的。
缺点是无法处理乱序的和重复的IP数据报。接收端只负责将其数据部分交给上层协议,比如TCP协议,由它处理乱序的、
重复的数据。
虽然IP数据报头部提供了一个标识字段用以唯一标识一个IP数据报,但它是被用来处理IP分片和重组的,
而不是用来指示接收顺序的。
优点是简单高效。无需为保持通信状态分配内核资源,也无需每次传输数据时都携带状态信息。
无连接:
是指IP通信双方都不长久地维持对方的任何信息。所以上层协议发送数据时,都必须明确指定对方的IP地址。
不可靠:
是指IP协议不能保证IP数据报准确地到达接受端,他只是承诺尽最大努力。就是说,发生任何意外导致IP数据报发送失败,
它就通知上层协议发送失败,因此,使用IP服务的上层协议需要自己实现数据确认、超时重传等机制以达到可靠传输的目
的。
IPv4头部结构
长度通常为20字节,除非有可变长的选项部分。
横着一行为32个bit,为四个字节。
4位版本号
指定IP协议的版本。对IPv4来说,为4。
4位头部长度
标识该IP头部有多少个32bit(即多少行),四位最大表示15,所以IP头部最长为60字节。
8位服务类型
包括一个三位的优先权字段(现在已忽略)四位的TOS字段和一位保留字段(保留需置0).四位的TOS字段分别表示:最小延时,
最大吞吐量,最高可靠性和最小费用。这四位中最多只有一位置1。应用程序根据需要设置(比如ssh需要最小延时,ftp需要
最大吞吐量)。
16位总长度
是指整个IP数据报的长度,以字节为单位,因此IP数据报最大长度为65535-1字节。但由于MTU的限制,长度超过MTU的
数据报都将被分片传输,所以实际传输的IP数据报的长度都远远没有达到最大值。
16位标识:
唯一地标识主机发送的每一个数据报。其初始值由系统随机生成,每发送一个数据报,其值就加一。该值在数据报分片时被
复制到每个分片中,因此同一个数据报的所有分片都具有相同的标识符。
3位标志字段:
第一位保留。第二位标识禁止分片。设置后,IP将不对该数据报分片,当该数据报长度超过MTU时,IP模块将丢弃该数据包
并返回一个ICMP差错报文。第三位表示更多分片。除了数据报的最后一个分片外,其他分片都要把该位置1.
13位分片偏移
是分片相对原始IP数据报开始处(仅指数据部分)的偏移。实际的偏移值是该值左移三位(乘8)后得到的。因此,每个IP分片的
数据部分的长度必须是8的整数倍。
8位生存时间TTL(time to live):
是数据报到达目的地之前允许经过的路由器跳数。发送端设置(通常是64)。数据报每经过一次路由,该值就被路由器减一,
为零时,路由器将丢弃该数据报,并向源端发送一个ICMP差错报文。TTL可以防止数据报陷入路由循环。
8位协议:
用来区分上层协议。/etc/protocols文件定义了所有上层协议对应的字段的数值。例如,ICMP是1,TCP是6,UDP是17。
16位头部校验和:
由发送端填充,接收端对其使用CRC算法检验头部在数据传输过程中是否损坏。
32位源端IP地址:
用来表示IP数据报的发送端
32位目的端IP地址:
用来表示IP数据报的接收端
选项字段:
是可变长的可选信息。最多包含40字节,可用的选项有:
记录路由:将途径的路由器的ip地址填入选项部分,用于跟踪数据报的传递路径。
时间戳:告诉每个路由器将数据报被转发的时间(或时间与IP地址对)填入IP头部的选项部分,这样就可以测量途径路由
之间数据报传输的时间。
松散路由选择:指定路由IP地址列表,数据包发送过程必须经过其中所有路由器。
严格路由选择:数据报只能经过被指定的路由器。
IP协议详解之头部结构相关推荐
- 《TCP IP协议 详解》思考总结 · 三
前言 这一篇文章主要围绕了IP协议,ICMP协议和UDP协议展开,希望可以在这里大概做一个总结,将<TCP/IP协议详解 卷一>书中TCP相关章节前面的内容做一个结束,在下一篇文章专心的去 ...
- SOME/IP协议详解「总目录」
SOME/IP协议详解「总目录」 欢迎大家来到雪云飞星的<SOME/IP协议详解>,开始前博主先列出本专栏学习的大纲,同时这也可以作为大家学习SOME/IP协议知识点的参考.下面蓝字都是传 ...
- TCP /IP协议详解【转】
转自:https://www.jianshu.com/p/0cf648510bce?utm_campaign=maleskine&utm_content=note&utm_medium ...
- IP协议详解及IPv4与IPv6协议的区别
IP协议是在TCP/IP协议模型中的重要组成部分,目前我们使用最多的是IPv4协议,IPv6协议的用户量也在慢慢增加,苹果在几年之前就已经开始支持IPv6协议了.我们先来了解一下IPv4和IPv6协议 ...
- TCP/IP协议详解---概述
工作之后,才发现以前在学校里学的东西忘得太快太干净了,现在需要一点点地捡起来了,要不然写几行程序会闹很多笑话会出现很多bug的.从今天开始,翻一翻<TCP/IP协议详解 卷1>这本书,希望 ...
- TCP/IP协议详解、TCP三次握手
TCP/IP协议详解:TCP/IP协议详解_王佳斌-CSDN博客_tcp/ip协议认识HTTP协议它是互联网协议(Internet Protocol Suite),一个网络通信模型,是互联网的一个基本 ...
- SOME/IP协议详解「2.0·服务化通信概述」
SOME/IP协议详解「2.0·服务化通信概述」 点击返回雪云飞星的SOME/IP协议详解「总目录」 SOME/IP协议详解「2.0·服务化通信概述」 1 SOME/IP服务的组成 2 Method| ...
- TCP/IP协议详解卷一:Chapter21 笔记
TCP/IP协议详解卷一:Chapter21 笔记 Chapter 21 TCP的超时与重传 21.3 往返时间测量 21.5 拥塞举例 21.6 拥塞避免算法 21.7 快速重传与快速恢复算法 21 ...
- SOME/IP协议详解「3.1.1·服务发现报文的格式」
SOME/IP协议详解「3.1.1·服务发现报文的格式」 点击返回雪云飞星的SOME/IP协议详解「总目录」 SOME/IP协议详解「3.1.1·服务发现报文的格式」 1 SD的SOME/IP格式头 ...
最新文章
- 自定义PHP错误报告处理方式
- jbpm知识点——tasknode
- 如何辨别二逼、文艺互联网公司?
- ES内存持续上升问题定位
- 华为路由器 android,华为智能路由器亮相 Android系统很强大
- 苹果cms10的php.ini目录列表,[苹果cmsV10]常见问题整理官方版
- LeetCode 01. 两数之和
- ls 显示目录下的内容和文件相关属性信息
- 高通LCD的pwm背光驱动
- 算法高级(4)-遗传算法(Genetic Algorithm)简介
- sql删除表中某个字段的重复数据,取较大者
- html5在线拍照 源码,html5拍照功能实现代码(htm5上传文件)
- 高漫数位板驱动下载安装
- elasticsearch单机版安装及安装过程踩的坑整理
- Agile实践之Kanban工具: Wekan
- 短信验证码平台哪家速度快又稳定,推荐下?
- 产品经理就业喜报:沉舟侧畔终迎万木春
- 图片心理性格测试
- 多文件批量下载打包成.zip
- Django基础(33): 中间件(middleware)的工作原理和应用场景举例
热门文章
- 计蒜客 联想专卖店大促销
- 钉钉视频下载方法地瓜网络钉钉视频下载器
- 【百练】护林员盖房子
- idea报错:fatal: –author ‘user@mail.com’ is not ‘Name ’ and matches no existing author
- 迅雷极速版服务器未响应,迅雷极速版频繁崩溃,求大神帮忙
- arm汇编语言中bne 1b的意思
- win10开机内存占用过高
- java二进制保存图片_Java中如何把图片转换成二进制流
- 【ISP】浅析Lens Shading
- YouTube和Twitch上的流媒体之间有何区别?