IP协议

IP协议是TCP/IP协议族的核心协议,其主要包含两个方面:
IP头部信息。IP头部信息出现在每个IP数据报中,用于指定IP通信的源端IP地址、目的端IP地址,指导IP分片和重组,以及指定部分通信行为。
IP数据报的路由和转发。IP数据报的路由和转发发生在除目标机器之外的所有主机和路由器上。它们决定数据报是否应该转发以及如何转发。

IP服务的特点

IP协议是TCP/IP协议族的动力,它为上层协议提供无状态、无连接、不可靠的服务。
无状态是指IP通信双方不同步传输数据的状态信息,因此所有IP数据报的发送、传输和接收都是相互独立、没有上下文关系的。这种服务最大的缺点就是无法处理乱序和重复的IP数据报。面向连接的协议,比如TCP协议,能够自己处理乱序的、重复的报文段,它递交给上层协议的内容绝对是有序的、正确的。无状态服务的优点也很明显:简单、高效。我们无需为保持通信的状态而分配一些内核资源,也无需每次传输数据时都携带状态信息。
无连接是指IP通信双方都不长久地维持对方的任何信息。这样上层协议每次发送数据的时候,都必须明确指定对方的IP地址。
不可靠是指IP协议不能保证IP数据报准确地到达接收端,它只是承诺尽最大努力。很多情况都可以导致IP数据报发送失败。比如,某个中转路由器发现IP数据报在网络上存活地时间太长,那么它将丢弃该报文,并返回一个ICMP错误消息给发送端。因此,使用IP服务地上层协议需要自己实现数据确认、超时重传等机制以达到可靠传输的目的。

IPv4协议头

网际协议第4版(Internet Protocol version4,IPv4)是TCP/IP协议使用的数据报传输机制。数据报是一个可变长分组,有两部分组成:头部和数据。头部长度可由20~60个字节组成,该部分包含有与路由选择和传输有关的重要信息。头部各字段意义按顺序如下:
(1)版本(4位):该字段定义IP协议版本,负责向处理机所运行的IP软件指明此IP数据报是哪个版本,所有字段都要按照此版本的协议来解释。如果计算机使用其他版本,则丢弃数据报。
(2)头部长度(4位):该字段定义数据报协议头长度,表示协议头部具有32位字长的数量。协议头最小值为5,最大值为15。
(3)服务(8位):该字段定义上层协议对处理当前数据报所期望的服务质量,并对数据报按照重要性级别进行分配。前3位成为优先位,后面4位成为服务类型,最后1位没有定义。这些8位字段用于分配优先级、延迟、吞吐量以及可靠性。
(4)总长度(16位):该字段定义整个IP数据报的字节长度,包括协议头部和数据。其最大值为65535字节。以太网协议对能够封装在一个帧中的数据有最小值和最大值的限制(46~1500个字节)。
(5)标识(16位):该字段包含一个整数,用于识别当前数据报。当数据报分段时,标识字段的值被复制到所有的分段之中。该字段由发送端分配帮助接收端集中数据报分段。
(6)标记(3位):该字段由3位字段构成,其中最低位(MF)控制分段,存在下一个分段置为1,否则置0代表该分段是最后一个分段。中间位(DF)指出数据报是否可进行分段,如果为1则机器不能将该数据报进行分段。第三位即最高位保留不使用,值为0。
(7)分段偏移(13位):该字段指出分段数据在源数据报中的相对位置,支持目标IP适当重建源数据。
(8)生存时间(8位):该字段是一种计数器,在丢弃数据报的每个点值依次减1直至减少为0。这样确保数据报拥有有限的环路过程(即TTL),限制了数据报的寿命。
(9)协议(8位):该字段指出在IP处理过程完成之后,有哪种上层协议接收导入数据报。这个字段的值对接收方的网络层了解数据属于哪个协议很有帮助。
(10)头部校验和(16位):该字段帮助确保IP协议头的完整性。由于某些协议头字段的改变,这就需要对每个点重新计算和检验。计算过程是先将校验和字段置为0,然后将整个头部每16位划分为一部分,将个部分相加,再将计算结果取反码,插入到校验和字段中。
(11)源地址(32位):源主机IP地址,该字段在IPv4数据报从源主机到目的主机传输期间必须保持不变。
(12)目的地址(32位):目标主机IP地址,该字段在IPv4数据报从源主机到目的主机传输期间同样必须保持不变。

IPv6协议头

自从1970年代IPv4问世以来,数据通信技术日新月异有了很大发展。虽然IPv4设计得很好,但其缺点也逐渐显露出来:①虽说借助子网化、无类寻址和NAT技术可以提高IP地址使用效率,因特网中IP地址的耗尽仍然是一个没有彻底解决的问题;②IPv4没有提供对实时音频和视频传输这种要求传输最小时延的策略和预留资源支持;③IPv4不能对某些有数据加密和鉴别要求的应用提供支持。为了克服这些缺点,IPv6(Internet working Protocol version6)被提了出来。在IPv6中,IP地址格式和分组长度以及分组的格式都改变了。IPv6每个分组由必须的基本头部和其后的有效载荷组成。有效载荷由可选的扩展头部和来自上层的数据组成。基本头部占用40字节,有效载荷可以包含65535字节数据。IPv6头部各字段意义按顺序如下:
(1)版本(4位):该字段定义IPv6协议版本,其值为6,负责向处理机所运行的IP软件指明此IP数据报是IPv6版本。
(2)优先级(4位):该字段定义当发生通信拥塞时的分组的优先级。
(3)流标号(24位):该字段用来对特殊的数据流提供专门处理。
(4)有效载荷长度(16位):该字段定义整个IPv6数据报的字节长度,包括基本头部和有效载荷。其最大值为65,535字节。
(5)下一个头部(8位):该字段定义了数据报中跟随在基本头部之后的头部。下一个头部可以是IP所使用的可选扩展头部,也可以是上层协议的头部。
(6)条数限制(8位):该字段与IPv4中生存时间(TTL)字段一样是一种计数器,在丢弃数据报的每个点值依次减1直至减少为0。
(7)源地址(128位):源主机IP地址,该字段在IPv4数据报从源主机到目的主机传输期间必须保持不变。
(8)目的地址(128位):目标主机IP地址,该字段在IPv4数据报从源主机到目的主机传输期间同样必须保持不变。
(9)扩展头部:该字段包含6个可选类型,包括逐跳选项、源路由选择、分段、鉴别、加密的安全有效载荷、目的端选项。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇