Linux — 网络基础三

本文主要介绍网络层和数据链路层的相关协议。网络层负责地址管理和路由选择,涉及IP协议、网段划分、CIDR等;数据链路层负责相邻设备数据帧传输,包含以太网协议、ARP协议等。此外,还介绍了DNS、ICMP协议及NAT技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网络层

负责地址管理和路由选择
通过对地址的管理,能够保证数据从一台主机发送到另一台主机,并且选择合适的路径进行传输。

IP协议

主机: 两端的PC
路由器: 实现中间数据转发的设备
节点: 网络中的每个设备都是一个节点
IP地址: 网络中唯一标识一台主机

地址管理: 因为现在大量的私网建立(通过DHCP/NAT技术实现全民上网),在复杂的网络中实现通信就要进行良好的地址管理,因此只有良好的地址管理才不会造成严重的IP冲突,才能进行路由选择。
为了避免网络IP地址的分配混乱导致二义性,无法实现数据传输,因此每个路由器在给自己组建的局域网地址中主机分配地址时都需要带有自己局域网的网络标识——网络号,而局域网中每个主机也需要拥有唯一的标识——主机号。

一个IP地址包含了两部分数据
网络号: 区分网络
主机号: 区分网络中的主机
相邻的网络不能使用相同的网络号,相邻的网络分配的IP地址就不会冲突了。
只有相邻的网络中网络号相同时,才会造成地址冲突,导致路由器不知道数据该怎么转发。

网段划分

同一个网段才能表示在同一个网络
早期的网段划分中将整个网络中的IP地址划分成了五类IP地址,因为早期网段划分方式太过于粗糙,浪费较多,因此被淘汰。
在这里插入图片描述

CIDR

子网掩码: 由一段连续的二进制1组成
功能
子网掩码与IP地址进行相与则得到网络号 net = ip & mask
子网掩码取反则可以得到最大的主机号(主机号范围) range = ~mask
IP地址与子网掩码做与运算可以得到网络号,主机号从全0到全1就是子网的地址范围

例: 路由器分配给主机的信息
子网掩码:255.255.255.0 net(网络号) = 192.168.122.0
IP地址:192.168.122.132 range(主机号范围):0~255
网关地址:192.168.112.1

例: 现在有一个网络的网段是192.168.122.0, 子网掩码是255.255.255.0,要将这个网络划平均分成为四个子网,每个子网的主机范围以及子网掩码是多少?

  1. 通过掩码得到的主机号个数:256
  2. 因为要平均划分四个子网,则每个子网的中主机号有:256/4 = 64
  3. 每个子网有64个主机号,~0.0.0.63 255.255.255.192 最大主机号取反,得到子网掩码
  4. 192.168.122.0~192.168.122.63
    192.168.122.64~192.168.122.127
    192.168.122.128~192.168.122.191
    192.168.122.192~192.168.122.255

在一个网络中不是所有的主机号都可以分配给主机
主机号全为0 ----网络号-标识网络,代表这个局域网
主机号全为1 ----广播地址(UDP),用于给同一个链路中相互连接的所有主机发送数据包

特殊的IP地址
127.0.0.1----本地回环网卡地址(虚拟网卡)–用于本地网路测试

公网与私网的IP地址划分
RFC1918规定了用于组建私网的网段
10. * . * . * 组建大型网段
172.16.* .* ~172.31.* .* 组建云服务器
192.168.* .*

动态分配IP地址: 只给接入网络的设备分配IP地址。因此同一个MAC地址的设备,每次接入互联网中,得到的IP地址不一定是相同的。

路由选择

路由的过程,就是一跳一跳(Hop by Hop) “问路” 的过程。所谓 “一跳” 就是数据链路层中的一个区间。具体在以太网中指从源MAC地址到目的MAC地址之间的帧传输区间。IP数据包的传输过程也和问路一样,当IP数据包到达路由器时,路由器会先查看目的IP,决定这个数据包是能直接发送给目标主机,还是需要发送给下一个路由器,依次反复,一直到达目标IP地址。
为了判定当前这个数据包该发送到哪里,就需要依靠每个节点内部维护一个路由表,路由表可以使用route命令查看,如果目的IP命中了路由表,就直接转发即可。路由表中的最后一行,主要由下一跳地址和发送接口两部分组成,当目的地址与路由表中其它行都不匹配时,就按缺省路由条目规定的接口发送到下一跳地址。

IP协议字段功能

在这里插入图片描述
4位协议版本: IPV4/IPV6
4位首部长度: IP长度最大60字节最小20字节
8位Tos字段: 最小延时、最大吞吐量、最高可靠性、最小成本
16位数据报长度: 决定了数据有多长=64k - iphdrlen - tcphdrlen/udphdrlen
数据分片相关: 链路层MTU:最大传输单元,若UDP数据大于MTU大小,将会在网络层进行分片
16位标识: 标识当前分片属于哪一个UDP数据包
3位标志: 是否禁止分片,以及分片的结束标记
13位片偏移: 标记分片在UDP数据报中的偏移量(有多少个8个字节)
8位TTL报文生存周期: TTL默认现在是128;每经过一个节点进行-1,为0时丢弃
8位上层协议: TCP/UDP,表示上层协议的类型
16位校验和: 使用CRC进行校验,来鉴别头部是否损坏
32位源地址/目标地址: 表示发送端和接收端
40字节选项数据

数据链路层

负责相邻设备之间的数据帧传输

MAC地址: 网卡上的物理地址(网卡的编号),定位相邻的两个设备,用来识别数据链路层中相连的节点。
类型: unit8_mac[6] 48bit(长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19))
MAC地址在网卡出厂时就确定了,不能修改。MAC地址通常是唯一的(虚拟机中的MAC地址不是真实的MAC地址,可能会冲突;也有些网卡支持用户配置MAC地址)。

以太网协议

在这里插入图片描述
eth字段信息: 源mac地址,目的mac地址,上层协议类型,数据,帧尾CRC

ARP协议

通过IP地址获取MAC地址------介于网络层与链路层之间的协议
在这里插入图片描述
通过全网广播一个ARP请求获取一个ARP响应,则确定目的MAC地址。ARP获取到对端的MAC地址后,会在本机上将IP地址与MAC地址的映射关系缓存一段时间(很短),防止对方在短时间内更换IP地址。

MTU

最大传输单元----限制了网卡在传输数据的时候,数据的最大长度(不包含以太网帧头帧尾)

MTU的影响

MSS: 最大数据段的大小—纯粹的应用层数据大小 MSS = MTU - IP - TCP/UDP
TCP的影响: TCP在传输层进行数据传输(在三次握手的时候)会双方协商MSS大小,在传输层自动进行数据分段,而这个MSS也取决于MTU大小,双方会选择较小的一方作为传输大小,因此TCP数据在网络层不会进行分片。
UDP的影响: UDP在数据传输的时候数据不大于64k - IPhdrlen - UDPhdrlen,都可以进行传输,但是若数据大小大于MTU大小则会在网络层进行数据分片。UDP数据若被分片,则任意一个分片丢失或出错就会造成分片重组失败,导致整个UDP数据报被丢弃;分片越多,危险越大。因此,UDP数据最好在应用层就将数据段大小分配合适。

其他重要协议/技术

DNS协议:domain name system域名系统

作用: 域名解析 通过域名获取到服务器IP地址
域名: 服务器IP地址的一种表示
发展
在这里插入图片描述

域名解析流程

在这里插入图片描述
浏览器中输入了url回车之后发生了什么?

  1. dns解析 获取IP地址
  2. 组织HTTP请求信息
  3. 建立tcp客户端发送HTTP请求
  4. 网络层ip协议
  5. 链路层的eth协议
    在这里插入图片描述

ICMP协议

控制报文协议----网络层协议
功能: 进行网络探测
ping: 通过ICMP协议实现----并不使用端口

NAT技术

地址转换技术
在本地建立NAPT映射关系,保证收到的回复数据,能够确认应该发送给内网的那个主机。

NAT和代理服务器的区别

  • NAT工作在网络层,进行地址转换,通常部署在网关设备上
  • 代理服务器是一个应用,可以部署在任何主机上
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值