IP协议
来源:互联网 发布:2017盒子看电影软件 编辑:程序博客网 时间:2024/04/28 03:08
IPv4
IPv4地址分类及特征
IP地址按作用范围可分成两类,一类是在大网使用的公共IP地址,另一类是只在内网使用的私有地址。
2、地址范围:1.0.0.1—126.255.255.254
3、10.X.X.X是私有地址,范围从10.0.0.0-10.255.255.255
4、127.X.X.X是保留地址,用做环回测试。 B类地址 前两位为10 1、第1字节和第2字节为网络地址,后2个字节为主机地址
2、地址范围:128.0.0.1—191.255.255.254
3、私有地址范围:172.16.0.0—172.31.255.255
4、保留地址:169.254.X.X C类地址 前三位为110 1、前三个字节为网络地址,最后字节为主机地址
2、地址范围:192.0.0.1—223.255.255.254
3、私有地址:192.168.X.X,范围从192.168.0.0-192.168.255.255 D类地址 前四位为1110 1、不分网络地址和主机地址。
2、地址范围:224.0.0.1—239.255.255.254 E类地址 前五位为11110 1、不分网络地址和主机地址
2、地址范围:240.0.0.1—255.255.255.254
特殊IP地址:
- 0.0.0.0只能做源地址
- 255.255.255.255是广播地址
- 127.x.x.x为环回地址,本机使用
专用地址:
* 10/8 地址范围:10.0.0.0——10.255.255.255,
* 172.16/12 地址范围:172.16.0.0——172.31.255.255,
* 192.168/16地址范围:192.168.0.0——192.168.255.255。
IPv4数据报的格式
版本
版本(Version)由4bit构成,标识IP首部的版本号。IPv4的版本号即为4,在这字段上的值也为4。
报头长度
报头长度(IHL:Internet Header Length)由4bit构成,表明IP首部的大小,单位为4字节(32比特)。对于没有可选项的IP包,首部长度则设置为5,即没有可选项的IP包,首部长度为20字节(4*5=20)
服务类型
服务类型(TOS:Type Of Service)由8比特构成,用来表示服务质量。每一位的具体含义如下:
这个值通常由应用指定。现在也鼓励这种结合应用的特性设定TOS的方法。
总长度
总长度(Total Length),表示IP首部与数据部分合起来的总字节数。该字段长为16bit。因此IP包的最大长度为65535(=2^16)字节。
标识
标识(ID:Identification),由16bit构成,用于分片重组。同一个分片的标识值相同,不同分片的标识值不同。通常,每发送一个IP包,它的值也逐渐递增。此外,即使ID相同,如果目标地址、源地址或协议不同的话,也会被认为是不同的分片。
标志
标志(Flags),由3bit构成,表示包被分片的相关信息。每一位的具体含义如下表所示。
0- 可以分片
1- 不能分片 2 包被分片的情况下,表示是否为最后一个包(more fragment).
0- 最后一个分片的包
1- 分片中段的包
片偏移
片偏移(FO:Fragment Offset),由13bit构成,用来标识被分片的每一个分段相对于原始数据的位置。第一个分片对于的值为0.由于FO占13位,因此最多可以表示8192(=2^13)个相对位置。单位为8字节,因此最大可以表示原始数据8*8192=65535字节的位置。
生存周期
生存周期(TTL:Time To Live),由8bit构成,它最初的意思是以秒为单位记录当前包在网络上应该生存的期限。实际中它指可以中转多少个路由器的意思。每经过一个路由器,TTL会减少1,只至变成0则丢弃该包。
协议
协议(Protocol),由8bit构成,表示IP首部的下一个首部隶属于哪个协议。常见的协议编号如下:
头部校验和
头部校验和(Header Checksum),由16bit构成,也叫IP首部校验和。该字段只校验数据报的首部,不校验数据部分。它主要用来确保IP数据报不被破坏。校验和的计算过程:首先要将该校验和的所有位置设置为0,然后以16比特为单位划分IP首部,并用1补数计算所有16位字的和。最后将所得到这个和的1补数赋给首部校验和字段。
源IP地址
源IP地址(Source Address),由32比特构成,表示发送端IP地址。
目标IP地址
目标IP地址(Destination Address),由32比特构成,表示接收端IP地址。
选项
选项(Options),长度可变,通常只在进行实验或诊断时使用。该字段包含如下几点信息:
* 安全级别
* 源路径
* 路径记录
* 时间戳
填充
填充(Padding),也称做填充物。在有可选项的情况下,首部长度可能不是32bit的整数倍。为此,通过向字段填充0,调整为32bit的整数倍。
数据
数据(Data),存入数据。将IP上层协议的首部也作为数据进行处理。
IPv6
IPv6地址结构
IPv6地址 = 前缀 + 接口标识
前缀:相当于v4地址中的网络ID
接口标识:相当于v4地址中的主机ID
例如:2001:A304:6101:1::E0:F726:4E58
IPv6地址表示方法
- 用十六进制表示,如: FE08:….
- 4位一组,中间用“:”隔开,如: 2001:12FC:….
- 若以零开头可以省略,全零的组可用“::”表示,如: 1:2::ACDR:….
- 地址前缀长度用“/xx”来表示,如: 1::1/64
IPv6地址分类
特殊地址
IPv6数据报的格式
版本
版本(Version)由4bit构成,标识IP首部的版本号。IPv6的版本号即为6,在这字段上的值也为6。同IPv4。
通信量类
通信量类(Traffic Class),相当于IPv4的TOS(Type Of Service)字段,也由8bit构成。
流标号
流标号(Flow Label),由20bit构成,准备用于服务质量(QoS:Quality Of Service)控制。不使用QoS时每一位可以全部设置为0。
在进行服务质量控制时,将流标号设置为一个随机数,然后利用一种可以设置流的协议RSVP(Resource Reservation Protocol)在路由器上进行QoS设置。当某个包在发送途中需要QoS时,需要附上RSVP预想的流标号。路由器接收到这样的IP包后先将流标号作为查找关键字,迅速从服务质量控制信息中查找并做相应处理。只有流标号、源地址以及目标地址三项完全一致时,才被认为是一个流。
有效载荷长度
有效载荷长度(Payload Length),有效载荷是指包的数据部分。IPv4的TL(Total Length)是指包首部在内的所有长度。然而IPv6中的这个Playload Length不包括首部,只表示数据部分的长度。由于IPv6的可选是指连接IPv6首部的数据,因此当有可选项时,此处包含可选项数据的所有长度就是Playload Length。
下一个报头
下一个报头(Next Header),相当于IPv4中的协议字段。由8bit构成。通常表示IP的上一层协议是TCP或者UDP。不过在有IPv6扩展首部的情况下,该字段表示后面第一个扩展首部的协议类型。
跳数限制
跳数限制(Hop Limit),由8bit构成。与IPv4中的TTL意思相同。为了强调“可通过路由器个数”,故将改为“Hop Limit”。数据每经过一次路由器就减1,减到0则丢弃数据。
源地址
由128bit(8个16位字节)构成。表示发送端IP地址。
目标地址
由128bit(8个16位字节)构成。表示接收端IP地址。
IPv6扩展首部
IPv6的首部长度固定,无法将可选项加入其中。取而代之的是通过扩展首部对功能进行有效扩展。扩展首部通常介于IPv6首部与TCP/UDP首部中间。在IPv4中可选项长度固定为40字节,但在IPv6中没有这个限制。
IP协议相关技术
DNS
DNS(Domain Name System)是维护一个用来表示组织内部主机名和IP地址之间对应关系的数据库。
ARP
ARP(Address Resolution Protocol)是一种解决地址问题的协议。以目标地址为线索,用来定位下一个应该接收数据分包的网络设备对应的MAC地址。
RARP(Reverse Address Resolution Protocol)是将ARP反过来,从MAC地址定位IP地址的一种协议。
ICMP
ICMP的主要功能包括,确认IP包是否成功送达目标地址,通知在发送过程中IP包被废弃的具体原因,改善网络设置等。
ICMP消息类型
DHCP
DHCP(Dynamic Host Configuration Protocol)
DHCP在分配IP地址有两种方法:一种是由DHCP服务器在特定的IP地址中自动选出一个进行分配;另一种方法是针对MAC地址分配一个固定的IP地址。而且这两种方法可以并用。
NAT
NAT(Network Address Translator)是用于在本地网络中使用私有地址,在连接互联网时转而使用全局IP地址的技术。除转换IP地址外,还出现了可以转化TCP、UDP端口号的NATP(Network Address Ports Translator)技术,由此可以实现用一个全局IP地址与多个主机的通信。
NAT的潜在问题
由于NAT(NATP)都依赖于自己的转换表,因此会有如下几点限制:
* 无法从NAT的外部向内部服务器建立连接
* 转换表的生成与装换操作都会产生一定的开销
* 通信过程中一单NAT遇到异常需要重启时,所有的TCP连接都将被重置
* 即使备置两台NAT做容灾备份,TCP连接还是会被断开
- IP协议
- IP协议
- IP协议
- IP协议
- IP协议
- IP协议
- IP协议
- IP协议
- IP协议
- IP协议
- IP协议
- IP协议
- IP协议
- IP协议
- IP协议
- IP协议
- IP协议
- IP协议
- 操作系统为什么要分用户态和内核态
- ImageView之scaleType属性
- [Java Concurrency in Practice]第十一章 性能与可伸缩性
- 独立思考的重要性
- leetcode: (104) Maximum Depth of Binary Tree
- IP协议
- 我知道你最爱说的就是【以后有空】
- 1061. Dating (20)
- arm9挂载nfs命令
- django数据库表结构自动迁移
- 九度OJ 题目1154:Jungle Roads
- Nginx+PHP-FPM优化技巧总结
- redis学习记录(redis的持久化操作、基于java的jedis操作)
- php yii框架 目录说明