互联网的IP服务被定义成不可靠的、尽力而为、无连接分组交付系统。目前有两个版本的 IP 协议在使用:
IP4 [RFC 791]
IP6 [RFC 2460;RFC 4291]
一、IPv4
1、IPv4数据报格式
首部 20 字节
- 版本(号)——占 4 bit,指IP协议的版本,目前的 IP 协议版本号为 4 (即 IPv4)。
- 首部长度——占 4 bit,可表示的最大数值是 15 个单位(一个单位为 4 字节)因此 IP 的首部长度的最大值是60字节。
- 服务类型——占 8 bit,用来获得更好的服务。(这个字段以前一直没有被人们使用 )
- 总长度——占 16 bit,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度一般不超过最大传送单元 MTU。
- 标识、标志、片偏移——分别占 16、3、13 bit,用于IP分片功能。
- 生存时间(TTL,Time-To-Live)——占 8 bit,每经过一个路由器,该字段减1,TTL为0时,则丢弃该数据报。
- 协议——占 8 bit,字段指出此数据报携带的数据使用何种协议以便目的主机的 IP 层将数据部分上交给哪个处理过程
TCP—6 UDP—17 - 首部检验和——占 16 bit,字段只检验数据报的首部不包括数据部分。
- 源地址和目的地址——各占 32 bit
- 选项——占 32 bit,允许IP首部被扩展,但是很少用。
- 数据(有效载荷)——传递数据。
2、IPv4数据报分片和重装
(1)网络链路有MTU (最大传输长度) – 最大可能的链路级帧
- 不同的链路类型及MTU
(2)在网络中,大IP 数据报被分割(“分段”)
- 一个数据报 变为几个数据报
- “重新装配”仅在最后目的地
- IP首部比特用于标识、排序相关段
3、IP编址概述
(1)IP地址: 对主机、路由器接口的32-bit 标识符
(2)接口: 在主机/路由器和物理链路之间的连接
- 路由器通常具有多个接口
- 主机可能具有多个接口
- IP编址与每个接口相联系
4、子网
(1)两级IP地址
- 子网部分,网络号,网络前缀
- 主机部分,主机号,可变部分
(2)子网 定义
- IP地址具有相同的子网部分的设备接口(具有共同的IP地址前缀)
- 无需通过路由器就能够物理上互相到达
(3)判断方法
- 为了决定子网,从其主机或路由器分离每个接口,生成孤立网络的岛。每个孤立的网络被称为一个子网
(4)子网的表示方法
- 子网掩码:用从最高位开始的连续1表示IP地址中的子网号部分
- 前缀/长度:223.1.1.0/24,表示前24位为子网号部分
5、分类IP编址
(1)网络数
- A类:27-2;B类:214 ;C类:221
- 网络号不能为全0;127.X.X.X为循环测试保留地址
(2)主机数
- A类:224-2;B类:216-2 ;C类:28-2
- 主机号全0代表网络本身;主机号全1代表本子网的广播地址
(3)地址范围(包括网络地址本身,广播地址,私有地址等)
- A类:1.0.0.0 ~ 127.255.255.255
- B类:128.0.0.0 ~ 191.255.255.255
- C类:192.0.0.0 ~ 223.255.255.255
- D类:224.0.0.0 ~ 239.255.255.255
- E类:240.0.0.0 ~ 247.255.255.255
6、私有地址
在互联网中不使用,仅在局域网中使用的IP地址
- 10.X.X.X (A类)
- 172.16.0.0~172.31.255.255 (B类)
- 192.168.X.X (C类)
7、CIDR(无类域间路由)
无类型域间选路(Classless InterDomain Routing, CIDR)
- 不分类编址
- 子网为连续地址的地址块
- 由网络前缀(如/25)确定网络部分的比特长度
- (地址块,主机地址)格式: a.b.c.d/x
例子:
(1)某地址块为200.23.16.0/23,则其
子网掩码为:255.255.254.0 或 /23
网络地址为:200.23.16.0 (主机比特全0)
可用主机地址为:200.23.16.1~200.23.17.254
广播地址为:200.23.17.255 (主机比特全1)
(2)某地址块为200.23.16.0/25,则其
子网掩码为:255.255.255.128 或 /25
网络地址为:200.23.16.0
可用主机地址为:200.23.16.1~200.23.16.126
广播地址为:200.23.16.127
8、获取IP
(1)主机获取IP地址
- 由系统管理员配置静态地址
- 动态主机配置协议(Dynamic Host Configuration Protocol DHCP): 动态地从服务器得到地址(“即插即用” )
DHCP 服务器发现: 0.0.0.0——>255.255.255.255
DHCP 服务器提供: a.b.c.d——>255.255.255.255
DHCP 请求
DHCP ACK
(2)网络得到IP地址的子网部分
- 从它的ISP的地址空间得到分配的部分
ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20
Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23
Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23
Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23
... ….. …. ….
Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23
9、等级编址
(1)路由聚合(route aggregation)
(2)ISPs-R-Us
二、网络地址转换NAT
NAT技术(地址代理技术),提供内部私有地址与共有地址的转换,支持内网与公网的通信
(1)16-bit 端口号字段
- 用一个LAN侧地址支持60,000 并行连接!
(2)NAT 引起争议
- 路由器的处理上升为第三层
- 违反了端到端原则:应用设计者必须要考虑 NAT可能性,如 P2P应用程序
- 地址短缺应当由IPv6来解决
三、ICMP
1、互联网控制报文协议——ICMP
(1)IP网络是尽力而为(不可靠)的,ICMP通过差错报文和询问报文来辅助IP网络的功能
(2)由主机和路由器用于网络级信息的通信
- 差错报告:不可达主机,网络,端口, 协议
- 回声请求/回答 (由 ping使用)
(3)与IP的关系:
2、tracerroute使用ICMP停止规则
(1)UDP段最终到达目的地主机
(2)目的地返回ICMP “端口不可达”分组
(3)当源得到该ICMP, 停止
四、IPv6
1、初始动机: 32bit地址空间耗尽
2、 IPv6的特点:
- 大地址空间,地址128bit
- 更简洁的报文头, 首部 40 字节
- 更好的QoS支持
- 更好的安全性
3、IPv6数据报格式
- 版本(号)——占 4 bit,指IP协议的版本,目前的 IP 协议版本号为 6 (即 IPv6)。
- 流量类型——占 8 bit。
- 流标签——占 20 bit,标识一条数据报的流,能够给某些数据报给出优先权。
- 有效载荷长度——占 16 bit,无符号整数,给出40字节首部后面的字节数量。
- 跳限制——占 8 bit,转发数据报的每台路由器将对该字段的内容减 1。如果跳限制计数到达 0,则将该数据报丢弃。
- 源地址和目的地址——各占 128 bit。
- 数据(有效载荷)——传递数据。