网络协议 网络层,万物归于IP 网络协议物理层地基是怎么练成的网络协议 数据链路层“帧”建立统一新秩序网络协议 网络层万物归于IP撰稿未来侦察班咨询aynaixibaba网络协议 网络层万物归于IP图片 | 华为技术社区TCP/IP是必修课物理层Phy、数据链路层、网络层、传输层、应用层五层... 本节接着聊网络层。1. 网络层从网络层开始彻底摆脱硬件强相关无论有线网、无线网、蓝牙PAN网络等都可以通过ip地址互联互通应用APP发包也只需要关心IP地址不用知道对方的MAC地址等信息。简单类比家里用的电无论是风力发电、太阳能、核能、或者火力发电底层发电技术各式各样物理层、数据链路层。但只要去了电网网络层然后通过特高压输电线运输层就可以在庞大的电网中将电力送到千家万户。用户不用关心是怎么发的电怎么运输过来的。2. 网络层详解2.1 核心作用网络层Network核心作用屏蔽物理层和数据链路层网络设备可以动态分配ip地址灵活组网。可以划分如下四个功能点逻辑寻址路由选择分组转发网络诊断2.2 协议数据单元TCP/IP5层的PDU都有自己专属名称网络层PDU称为数据包Packet。IP数据包目前两个版本的IPv4使用32位的4字节地址IPv6使用128位的16字节地址因此报文自然也不相同。一般场景下未明确描述的IP地址都是IPv4版本。IPv4格式网络层的协议数据单元PDU中IP头长度可变有效范围从20字节~60字节Version占用4bit位 4表示IPv4,6表示IPv6IHL(Internet Header Length)网络头长度控制IP报文包头长度最小5表示20字节最大15表示60字节。Type of Service简称TOS字段服务类型Total Length整个数据包的长度最大65535但不能超过最大传输单元MTUIdentification2字节标记数据包顺序到65535最大值后归零重新计数用于分片重组环节。Flags是否分片的标记bit0表示是否分片bit1表示是否是分片的最后一片。Fragment Offset 用于分片重组不受各分片接收顺序影响还原整个数据包。Time to Live即TTL 生命时间表示数据包在网络网络中可以经过路由器最大数减为0时丢弃。Protocal协议1字节表示ip数据包携带的数据单元使用什么协议解析如ping包使用ICMP解析使用协议号1。Header Checksum数据包首部校验Source Address和Destination Address源ip地址和目的ip地址IPv6格式v6包头长度固定40字节扩展头部不再严格限制长度也遵循TLVType Length Value格式更加灵活。Version版本4bit和IPv4用法相同Traffic class流量类型类似v4的type TOS字段Payload Length有效字段长度不包括头部Next Header没有扩展头是指协议类型即解析有效字段的类型和IPv4的protocol协议字段类似有扩展头时指向扩展头类型。Hop Limit跳数限制和v4的TTL类似使用跳数表示更为贴切。Source Address和Destination Address源ip地址和目的ip地址各自16个字节。2.3 IP地址ip地址版本IPv4、IPv6局域网设备依然沿用IPv4服务器地址已经悄悄支持ipv6版本。IPv4划分为ABCDE 5类地址子网掩码可以改变网络可见范围其长度32bit和ipv4地址长度相同也分为网络ID和主机ID两部分不同的ip地址类型使用不同的掩码格式和ip地址区别在于没有固定的字段局域网多使用255.255.255.0作为子网掩码。当然在局域网中也可以人为调整子网掩码划分改变网络大小比如10.0.0.x的A类地址路由器使用C类地址的子网掩码255.255.255.0。每个类型的地址内部都有对应的广播地址并且也可以使用有限广播地址255.255.255.255发送给本网络所有设备如DHCP协议动态分配ip地址。主机位同时也指明当前网络可以容纳的主机数量如常见的家用路由器C类地址局域网中最多支持254个设备。2.4 寻址寻址简单点就是找到对方设备的过程广域网靠ip地址逐跳搜索局域网最终靠mac地址上门签收。局域网寻址局域网设备各自都维护ARP表记录ip和mac地址对应关系特点是不仅可以通过ip找到对方也可以通过mac地址找到对方当A设备的arp表中已经保存B的ip和mac信息直接在帧头的目的MAC地址填充B的MAC信息发送数据当A设备的arp表未保存B信息先使用ARP协议在局域网中广播B的ip地址等待B回复自己的mac地址信息然后A更新自己的arp表最后再将B的mac地址填充到帧头发送数据。广域网寻址广域网寻址就不同MAC地址仅用于局域网内寻址数据包穿过路由器后MAC帧头的源mac地址会被替换成此路由器的MAC地址目的mac地址换成相邻的下一跳路由器MAC地址因为有规定网络设备收到的数据包中MAC地址必须是自己直接相邻的设备并且收到的帧中目的地址必须是自己否则丢弃。上海的电脑要访问美国的Apple官网无需知道它的mac地址只需要对方域名/解析IP地址即可中间会经过的很多路由器等设备而这部分的层层MAC地址转换用户也是感知不到的。特例路由器级联的情况属于局域网的范围但是寻址却和广域网类似每经过一个路由器需要替换原始的MAC源地址和目的地址信息。2.5 封装和拆包数据单元PDU传递的核心点在于每一层都有自己的特定的签名只是名字上不同而已如前导码、包头、帧头等等每层只检验自己层的签名。封装过程应用层和传输层PDU向下发送到网络层打上IP包头和包尾到数据链路层再打上MAC帧头和帧尾最后到达物理层加上前导码编码成模拟信号后最终发送出去。将上层的整个数据单元作为本层的数据部分“透明传输”给下层协议。拆包过程双绞线上的电信号和光纤上的光信号到达物理层后由模拟信号解码成数字信号去掉前导码和帧首界定符传递给MAC层后拆掉MAC的帧头帧尾传递给网络层拆掉IP层包头包尾到达更高层处理。类比物流运输场景生鲜符合要求发食品检验证高层协议然后装车物流卡车穿过高速公路需要高速收费卡网络层包头包尾而高速是不检查食品合格证到达目的地后才需要复查食品安全拆包数据校验毕竟运输过程中也可能变质丢包/干扰等现象。2.6 路由算法分为静态路由和动态路由静态路由依赖管理员手动配置指定下一跳的明确地址若网络拓扑改变需要重新配置。常见的动态路由算法距离矢量算法搜索邻居设备并交换邻居路由信息适用于小型网络链路状态算法基于链路状态的内部网关协议IGP每台路由器独立构建全网拓扑图并通过SPF算法计算无环路径。2.7 网络层协议家族网络层的以IPv4/IPv6协议为基础众多网络层协议可以分两类直接以数据链路层建立的如ARP和基于IP协议的如IGMP、ICMP等。ARP地址解析协议 将IP地址解析成MAC协议实际以MAC地址为基础arp请求使用广播帧相应使用单播帧。数据链路层的目的mac地址(Destination MAC地址)为全FF的广播地址网路层目标MAC地址Target MAC地址为全0地址。3. 网络诊断3.1 ICMP协议ICMP全称Internet Control Message Protocol网络控制消息协议传递网络状态信息和错误报告。常用的ping工具则是使用ICMP实现。ICMP是基于标准IP协议单独的ICMP报文格式如下包头固定的8字节其中消息字段为可变长度。3.2. 常见问题IP地址ping不通先检查双方的网络IP地址是否存在ifconfig和ip addr网卡是否有多组IP地址再检查系统防火墙策略是否拦截ping包tcpdump抓包检查mac地址是否合法尤其是自定义mac地址的设备。IP地址丢失检查物理链路状态如RJ45网口指示灯是否正常亮ifconfig查看网卡状态lower_up是否正常再网卡总线如lspcilsusb等确定是否存在。欢迎评论区再补充 ...