您的问题似乎不完整,您是想询问关于C语言编程的某个具体问题吗?比如C语言的语法、编程技巧、项目开发等。请提供更具体的信息,这样我才能给出更准确的回答。
摘要:网络层协议 网络层(Network Layer) 的主要功能是实现主机之间的逻辑寻址、路由选择和分组转发,确保数据在不同网络(如局域网、广域网)之间的传输 协议类别 核心协议 路由协议 辅助协议 扩展协议 功能 逻辑寻址、分组转发 路径计算
网络层协议
网络层(Network Layer) 的主要功能是实现主机之间的逻辑寻址、路由选择和分组转发,确保数据在不同网络(如局域网、广域网)之间的传输
协议类别
核心协议
路由协议
辅助协议
扩展协议
功能
逻辑寻址、分组转发
路径计算与路由表维护
地址解析、错误控制、组播管理
安全、NAT、QoS等
典型协议
IPv4/IPv6、IPSec
OSPF、BGP、RIP
ARP、ICMP、IGMP
NAT、GRE、DiffServ
IP
IP(Internet Protocol),是分配给连接到计算机网络的每个设备唯一标识符,用于在网络中通信。IP地址使数据包能够在网络上找到其位置,将数据从源主机路送到目的主机,跨越多个中间网络设备(路由器),屏蔽底层网络差异(如以太网、Wi-Fi、广域网)。
但IP协议有点类似渣男,秉承着不主动,不拒绝,不负责原则:
无连接
不预先建立建立,直接发送数据包(Packet)。
不可靠
不保证数据一定到达,不检查错误,不重传丢失的数据
它来鹅城只做三件事:
编址与标识(寻址)
每个连接到网络的设备,都会有一个IP地址。IP协议使用这个地址来表示源地址与目标地址。
路由与转发
每个数据包携带源IP与目IP,路由器根据"路由表"选择最佳转发路径。
路由表通过静态配置或动态协议(如 BGP、OSPF)生成,核心依据是 “最长前缀匹配” 原则
分片与重组(仅接收端)
当数据包超过链路层的MTU时(如以太网MTU为1500字节),IP层将数据包拆分为多个分片(Fragment),每个分片包含独立的IP头。
接收端会根据分布信息将这些片段重新组装成完整的数据包。
IP数据包格式
字段
长度
说明
版本
4位
IPv4(值为4)或IPv6(值为6)
首部长度
4位
以32位字为单位,最小5(20字节),最大60字节(含可选字段)
区分服务
8位
旧称TOS(服务类型),用于QoS(服务质量),如优先级、延迟、吞吐量配置
总长度
16位
数据报总字节数(首部+数据),最大65535字节
标识
16位
唯一标识同一原始数据报的分片,用于重组
标志
3位
包括“保留位”、“不分片(DF)”、“更多分片(MF)”标志
片偏移
13位
分片数据在原始数据报中的偏移量(以8字节为单位)
生存时间(TTL)
8位
数据报最大跳数(每经一个路由器减1,为0时丢弃,防止环路)
协议
8位
上层协议类型(如TCP=6,UDP=17,ICMP=1)
首部校验和
16位
仅校验IP首部,不校验数据(提高效率,可靠性由上层协议处理)
源IP地址
32位
发送方IP
目的IP地址
32位
接收方IP
可选字段
0-40字节
用于调试、安全等(如记录路由、时间戳),较少使用
IP的分类
IPv4
最早和最常用的IP协议版本,使用32位地址,范围从0.0.0.0到255.255.255.255。约为43亿个,由于互联网的增长,已经快枯竭了。
IPv6
为了解决IPv4地址枯竭,而设计的新一代IP协议。使用128位地址,提供海量的IP池。比如:fe80::a00e:9ff2:c15f:e833%21
IPv4地址已经快枯竭了,但依旧是互联网的主流。因为还有DHCP,CIDR,NAT为它续命。
看过<三体>的小伙伴一定对647号小宇宙不陌生,路由器就是为IPv4构建了一个又一个的小宇宙,不至于枯竭。
特性
IPv4
IPv6
地址长度
32位(约43亿地址)
128位(足够为每粒沙子分配地址)
地址空间
分类严格(A/B/C类),浪费严重
无类别(CIDR),地址分配灵活
首部长度
可变(20~60字节),处理复杂
固定40字节,效率更高
安全性
依赖IPsec(可选)
强制支持IPsec(加密与认证)
移动性
需额外协议(如MIP)
内置移动性支持(家乡地址)
分片
源主机和路由器均可分片
仅源主机分片,路由器不处理
兼容性
与IPv6不直接兼容
支持双栈(同时运行IPv4/IPv6)
IP地址分类
根据作用范围,IP地址可以分为两种
私有IP地址
用于局域网内部(LAN),不能在互联网中传输
10.0.0.0-10.255.255.255
172.16.0.0-172.31.255.255
192.168.0.0-192.168.255.255
公有IP地址
有互联网服务商分配,可以在全球互联网中识别。
根据是否可以更改
静态IP地址
手动分配,不会改变。适合用于长期保持相同IP的设备,比如服务器。
