网络协议——IP协议

一、IPv4

1、IPv4:TCP/IP协议规定,IPv4地址使用32位的二进制表示,也就是4个字节,为了方便使用,IPv4地址被写成十进制形式,中间用"."分开。 【点分十进制表示法】

2、IPv4地址分类

2.1 私有地址在互联网上不使用,只在局域网内使用的地址。

2.2 127.X.X.X,环回(Loopback)地址(常用127.0.0.1),向自己发送,不会离开设备。主要用于本地回环测试(测试和调试网络应用程序,诊断网络连接问题‌)。

2.3 169.254.X.X,APIPA(Automatic Private IP Addressing)地址,当设备无法通过DHCP(动态主机配置协议)服务器获得有效的IP地址时,操作系统会自动分配169.254.X.X地址,确保基本的计算机网络连接性。‌

3、子网掩码:用于区分网络地址、主机地址、广播地址。网络号部分全1,主机号部分全0。

网关:转发不同网段之间的数据包。

4、可变长子网掩码(VariableLength Subnet Masking,VLSM):对子网再次进行子网划分。(大网分解成小网)

4.1节约IP地址,IP地址利用率更高,寻址效率更高。

5、无类别域间路由(Classless Inter-Domain Routing,CIDR):对IP地址进行归类。(小网合并成大网)

5.1提高了IPv4的可扩展性和效率,减小路由表的大小,提高路由器的查找效率。

6、IPv4报文格式

6.1版本号:4位,标识数据报的IP版本号,值为二进制0100,则表示IPv4。

6.2头部长度(Internet Header Length,IHL):4位,常用的值是5,也是可取的最小值,表示报头为20字节;可取的最大值是15,表示报头为60字节。

6.3服务类型(Type of Service,ToS):8位,指定特殊数据处理方式。该字段分为两部分:优先权和ToS。

【后来该字段被IETF改名为区分服务(Differentiated Services,DS)。前6位构成了区分代码点(DiffServ Code Point,DSCP):定义64个不同服务类别;后2位为显式拥塞通知(Explicit Congestion Notification,ECN):通知拥塞。】

6.4总长度(Total Length):16位,首部加上据之和,数据报最长为216-1=65535字节,超过1500字节需要分段。

【最大传输单元(Maximum Transmission Unit,MTU)限制:以太网单个IP数据报不能超过1500字节。】

6.5标识符(Identifier):16位,同一数据报分段后,标识符一致,便于重装。

6.6标记字段(Flag):3位,第1位不使用;第2位不分段(DF)位(1不能分片,0允许分片);第3位更多分片(MF)位(1还有分片,0最后分片)

6.7段偏置值(Fragment Offset):13位,标识所分片的分组(分片后再原数据报中的位置)。单位8字节,每个分片长度是8字节的整数倍。

6.8生存期(Time to Live,TTL):8位,最多可以经过的路由器数,每经过一个路由器减1,为0丢弃。

6.9协议(Protocol):8位,IP层所封装的上层协议。【ICMP(1),IGMP(2),TCP(6),UDP(17)】

6.10头部校验和(Header Checksum):16位,根据IP头部计算得到校验和码。【不对IP报头后面数据校验。】

6.11源地址(Source Address):32位,发送IP数据报的源主机地址

6.12目的地址(Destination Address):32位,接收IP数据报的目的主机地址

6.13任选数据(Options):长度可变,长度必须是32位(4字节)的整数倍,不够填充0。

二、IPv6

1、IPv6:互联网工程任务组(IETF)设计替代现行IPv4的下一代IP协议,IPv6地址使用128位二进制,通常分8组,每组4个十六进制数的形式,中间用":"分开。

2、IPv6书写规则

2.1起始的0可以忽略不写【末尾不能忽略】

2.2全0组成的1个或多个段可以用"::"表示【只能使用一次】

如:2024:0000:0000:0000:0000:0000:0020:0000 可以简写成:2024::20:0

2.3IPv4兼容地址::192.168.10.1

【IPv6没有广播地址,组播地址代替。

任播地址是IPv6协议特有的地址类型,适合于一对一组中的一个(One to One of Many)的通信需求。

任意播地址不能作为源地址,只能作为目的地址,不能指定给IPv6主机,只能指定给IPv6路由器。】

3、IPv6报文格式

3.1版本:4位,标识数据报的IP版本号,值为二进制0110,则表示IPv6。

3.2通信类型:8位,区分不同的IP分组。

3.3流标记:20位,标识某些需要特别处理的分组。

3.4负载长度:16位,表示除了IPv6固定头部40个字节之外的负载长度,扩展头包含在负载长度之中。

3.5下一头部:8位,指明报头后接的报文头部的类型,若存在扩展头,表示第一个扩展头的类型,否则表示其上层协议的类型,IPv6各种功能的核心实现方法。

3.6跳数限制:8位,用于检测路由循环,类似TTL。

3.7源地址:128位,发送IP数据报的源主机地址。

3.8目标地址:128位,接收IP数据报的目的主机地址。

相关推荐
写bug的小屁孩1 小时前
websocket身份验证
开发语言·网络·c++·qt·websocket·网络协议·qt6.3
鸿·蒙1 小时前
【计算机网络】【传输层】【习题】
计算机网络·传输层
不会编程的懒洋洋1 小时前
Spring Cloud Eureka 服务注册与发现
java·笔记·后端·学习·spring·spring cloud·eureka
垂杨有暮鸦⊙_⊙2 小时前
阅读2020-2023年《国外军用无人机装备技术发展综述》笔记_技术趋势
笔记·学习·无人机
Xiao Fei Xiangζั͡ޓއއ3 小时前
一觉睡醒,全世界计算机水平下降100倍,而我却精通C语言——scanf函数
c语言·开发语言·笔记·程序人生·面试·蓝桥杯·学习方法
想成为高手4993 小时前
网络基础概念与应用:深入理解计算机网络
网络·计算机网络
baijin_cha3 小时前
机器学习基础04_朴素贝叶斯分类&决策树分类
笔记·决策树·机器学习·分类
专注VB编程开发20年3 小时前
WebSocket和HTTP协议的性能比较与选择
websocket·网络协议·http
波克比QWQ3 小时前
rust逆向初探
笔记·rust逆向
LuckyLay3 小时前
Spring学习笔记_36——@RequestMapping
java·spring boot·笔记·spring·mapping