IP协议:

基本概念
主机:配有IP地址,也要进⾏路由控制的设备;
路由器:即配有IP地址,⼜能进⾏路由控制;
节点:主机和路由器的统称
协议头格式

固定部分(20字节)
| 字段名 | 位数 | 含义 |
|---|---|---|
| 版本(Version) | 4位 | IP协议版本,IPv4为 4。 |
| 首部长度(IHL, Internet Header Length) | 4位 | 表示IP首部的长度,单位为4字节。最小值为5(即20字节),最大值为15(即60字节)。 |
| 区分服务(DS, Differentiated Services) | 8位 | 用于服务质量(QoS),如优先级、延迟、吞吐量等。也叫TOS(Type of Service)。 |
| 总长度(Total Length) | 16位 | 整个IP数据报的总长度(首部 + 数据),单位为字节。最大为65535字节。 |
分片相关字段(用于IP分片)
| 字段名 | 位数 | 含义 |
|---|---|---|
| 标识(Identification) | 16位 | 每个数据报的唯一标识符,用于分片重组。同一原始数据报的所有分片标识相同。 |
| 标志(Flags) | 3位 | 控制是否允许分片。各位含义如下: – 第1位:保留(必须为0) – 第2位:DF(Don’t Fragment,禁止分片) – 第3位:MF(More Fragments,后面还有分片) |
| 片偏移(Fragment Offset) | 13位 | 表示当前分片在原始数据报中的位置,单位为8字节。用于重组分片。 |
生存与校验字段:
| 字段名 | 位数 | 含义 |
|---|---|---|
| 生存时间(TTL, Time to Live) | 8位 | 数据报在网络中最多可经过的路由器跳数,每经过一个路由器减1,为0时丢弃,防止循环。 |
| 协议(Protocol) | 8位 | 指示上层协议类型,如: – 1:ICMP – 6:TCP – 17:UDP |
| 首部检验和(Header Checksum) | 16位 | 仅对IP首部进行差错检测,不包括数据部分。每经过一个路由器都要重新计算。 |
地址字段
| 字段名 | 位数 | 含义 |
|---|---|---|
| 源地址(Source Address) | 32位 | 发送方的IP地址。 |
| 目的地址(Destination Address) | 32位 | 接收方的IP地址。 |
可变部分(可选字段)
| 字段名 | 位数 | 含义 |
|---|---|---|
| 选项(Options) | 可变 | 可选字段,用于扩展功能,如记录路由、时间戳、安全选项等。很少使用。 |
| 填充(Padding) | 可变 | 用于确保首部长度为32位的整数倍(即4字节对齐)。 |
数据部分
| 字段名 | 含义 |
|---|---|
| 数据(Data) | 上层协议的数据(如TCP、UDP、ICMP等)。 |
⽹段划分
IP地址分为两个部分,⽹络号和主机号
⽹络号:保证相互连接的两个⽹段具有不同的标识;
主机号:同⼀⽹段内,主机之间具有相同的⽹络号,但是必须有不同的主机号

1.不同的⼦⽹其实就是把⽹络号相同的主机放到⼀起.
2.如果在⼦⽹中新增⼀台主机,则这台主机的⽹络号和这个⼦⽹的⽹络号⼀致,但是主机号必须不能和⼦⽹中的其他主机重复
过去曾经提出⼀种划分⽹络号和主机号的⽅案,把所有IP地址分为五类

A类0.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
随着Internet的⻜速发展,这种划分⽅案的局限性很快显现出来,⼤多数组织都申请B类⽹络地址,导致B类地址很快就分配完了,⽽A类却浪费了⼤量地址
例如,申请了⼀个B类地址,理论上⼀个⼦⽹内能允许6万5千多个主机.A类地址的⼦⽹内的主机数更多
然⽽实际⽹络架设中,不会存在⼀个⼦⽹内有这么多的情况.因此⼤量的IP地址都被浪费掉了
针对这种情况提出了新的划分⽅案,称为CIDR(ClasslessInterdomainRouting)
引⼊⼀个额外的⼦⽹掩码(subnetmask)来区分⽹络号和主机号;
⼦⽹掩码也是⼀个32位的正整数.通常⽤⼀串”0″来结尾;
将IP地址和⼦⽹掩码进⾏”按位与”操作,得到的结果就是⽹络号;
⽹络号和主机号的划分与这个IP地址是A类、B类还是C类⽆关

ip地址为192.168.10.215
子网掩码为 11111111 11111111 11111111 00000000
进行逻辑与,所以网络号就变成了192.128.10.0
广播地址为192.168.10.0,网络号为192.128.10.0
所以子网地址范围(可用主机地址)为:192.168.10.1 ~ 192.168.10.254,一共2^8-2个
IP地址的数量限制
我们知道,IP地址(IPv4)是⼀个4字节32位的正整数.那么⼀共只有2的32次⽅个IP地址,⼤概是43亿左右.⽽TCP/IP协议规定,每个主机都需要有⼀个IP地址.这意味着,⼀共只有43亿台主机能接⼊⽹络么?
实际上,由于⼀些特殊的IP地址的存在,数量远不⾜43亿;另外IP地址并⾮是按照主机台数来配置的,⽽是每⼀个⽹卡都需要配置⼀个或多个IP地址.
CIDR在⼀定程度上缓解了IP地址不够⽤的问题(提⾼了利⽤率,减少了浪费,但是IP地址的绝对上限并没有增加),仍然不是很够⽤.这时候有三种⽅式来解决
1.动态分配IP地址:只给接⼊⽹络的设备分配IP地址.因此同⼀个MAC地址的设备,每次接⼊互联⽹中,得到的IP地址不⼀定是相同的;
2.NAT技术
3.IPv6:IPv6并不是IPv4的简单升级版.这是互不相⼲的两个协议,彼此并不兼容;IPv6⽤16字节128位来表⽰⼀个IP地址;但是⽬前IPv6还没有普及
私有IP地址和公⽹IP地址
如果⼀个组织内部组建局域⽹,IP地址只⽤于局域⽹内的通信,⽽不直接连到Internet上,理论上使⽤任意的IP地址都可以,但是RFC1918规定了⽤于组建局域⽹的私有IP地址
10.*,前8位是⽹络号,共16,777,216个地址
172.16.到172.31.,前12位是⽹络号,共1,048,576个地址
192.168.*,前16位是⽹络号,共65,536个地址
包含在这个范围中的,都成为私有IP,其余的则称为全局IP(或公⽹IP)

- ⼀个路由器可以配置两个IP地址,⼀个是WAN⼝IP,⼀个是LAN⼝IP(⼦⽹IP).
路由器LAN⼝连接的主机,都从属于当前这个路由器的⼦⽹中. - 不同的路由器,⼦⽹IP其实都是⼀样的(通常都是192.168.1.1).⼦⽹内的主机IP地址不能重复.但是⼦⽹之间的IP地址就可以重复了.
- 每⼀个家⽤路由器,其实⼜作为运营商路由器的⼦⽹中的⼀个节点.这样的运营商路由器可能会有=很多级,最外层的运营商路由器,WAN⼝IP就是⼀个公⽹IP了.
- ⼦⽹内的主机需要和外⽹进⾏通信时,路由器将IP⾸部中的IP地址进⾏替换(替换成WAN⼝IP),这样逐级替换,最终数据包中的IP地址成为⼀个公⽹IP.这种技术称为NAT(NetworkAddressTranslation,⽹络地址转换).
- 如果希望我们⾃⼰实现的服务器程序,能够在公⽹上被访问到,就需要把程序部署在⼀台具有外⽹IP的服务器上.这样的服务器可以在阿⾥云/腾讯云上进⾏购买
路由
在复杂的⽹络结构中,找出⼀条通往终点的路线
IP数据包的传输过程也和问路⼀样.
1.当IP数据包,到达路由器时,路由器会先查看⽬的IP;
2.路由器决定这个数据包是能直接发送给⽬标主机,还是需要发送给下⼀个路由器;
3.依次反复,⼀直到达⽬标IP地址

路由表可以使⽤route命令查看
如果⽬的IP命中了路由表,就直接转发即可;
路由表中的最后⼀⾏,主要由下⼀跳地址和发送接⼝两部分组成,当⽬的地址与路由表中其它⾏都不匹配时,就按缺省路由条⽬规定的接⼝发送到下⼀跳地址。
今天的更新就到这里,如有错误欢迎评论区指出!!!
评论
还没有任何评论,你来说两句吧!