网络原理(网络层、数据链路层)

本文详细探讨了网络层的IP协议,包括IP协议格式、IP地址的基础概念与不足、动态分配IP(DHCP)、NAT机制、IPv6的引入、特殊IP地址的使用,以及数据链路层的以太网协议和mac地址。还涉及了路由选择和MTU的概念。
摘要由CSDN通过智能技术生成

一、网络层 ---- IP协议

1.1 协议格式

在这里插入图片描述

  1. 4位版本号:指定IP协议的版本。目前有两种主流版本,Ipv4,Ipv6

  2. 4位首部长度:表示IP数据报里的报头长度,选项也是可有可不有,所以会变。单位为4字节

  3. 8位服务类型:说说是八位,但是有3位已经弃用,还有1位是保留位被定死了,所以只有4位才真正有效果。这四位相当于不同的且互斥的形态,可以切换。

    • 最小延时:传输一个数据报的时间尽量短
    • 最大吞吐量:一定时间内传输的数据量尽量多
    • 最高可靠性:在传输过程中最不容易触发丢包
    • 最小成本:在传输过程中小号的硬件资源最低
  4. 16位总长度:表示的是 IP报头 + 载荷的长度

    • 两个计算公式
      16位总长度 - 4位首部长度 = 载荷长度(TCP报文总长度)
      TCP报文总长度 - TCP报文长度 = TCP载荷长度

    • 长度限制问题
      16位最多只能有64KB,太小了。但IP协议,自身支持“拆包组包”机制,这里的64KB只是约束了一个IP数据报(UDP不支持拆包组包,所以需要手动实现)

      如果需要携带比较长的数据的时候,IP协议会自动的把一个数据报拆成多个数据报,接收方在进行分用的时候,也会把多个数据报合并成一个数据报

  5. 16位标识、3位标志位、13位片偏移:描述了整个IP数据报拆包组包的过程。

    • 16位标识:同一个包拆出来的,都相同
    • 13位片偏移:用于区分包的先后顺序,前一个包的片偏移要小,后面的要大
    • 3位标志位:一位不用,一位用于表示是否允许拆包(允许就是1,反之0),一位表示“结束标记”,表示当前的包是否是最后一个(是为0,反之为1)
    • 总结:首先会根据16位标识确定哪些包是一起的,需要拼在一起。再通过“片偏移”知道包的先后顺序,最后根据标志位判断当前是否拼完了
      当IP数据报要携带比较长的数据时
  6. 8位生存时间TTL:在网络上可以传输多少次
    (1)初始情况下TTL会有个数值(32/64/128),每次经过一个路由器转发,TTL就会 - 1,减到0后就会被丢弃。
    (2)正常来说TTL足以支持数据报到达网络的任意一个位置(每个结点都发动自己的人脉),如果出现0了,基本可以认为目标IP不可达。用次数进行限制,不让数据报无限转发。

  7. 8位协议:描述传输层使用的是哪种协议

  8. 16位首部校验和:因为载荷部分,传输层方面已经自己检验过自己了,所以这里只需要校验首部即可

  9. 32位源地址、32位目的地址:表示从哪来到哪去,具体数值上都是一个个IP地址。关于Ip地址的概念,详见【2.2】

1.2 IP地址

(1)基础概念

  1. 概念
    • 是什么:用来具体描述一个主机的所在位置
    • 具体表示:是一个32位的整数,但32位可读性差,故用【点分十进制】进行表示,即“使用三个点,把32位分成4个部分,每个部分8位,字节范围0~255(不带符号)”
    • 如何查看IP地址:cmd 调出命令行,输入 ipconfig 命令
    • 分配问题:如果是企业设备,网络环境十分复杂,就需要专业人士手动分配IP。而如果是家用设备,网络环境较为简单,仅需自动分配即可。

(2)IP地址不够用的问题及其解决方法

  • 场景:32位能表示的最大数量在42亿9千万,那么理论上能提供的IP数量就是这个数,但是世界上光人口就已经远远超过这个数,更不用提设备了,所以IP地址面临不够用的问题。
  • 解决方法:动态分配IP、NAT机制、IPv6
动态分配IP(DHCP)

需要IP时才分配,不需要则不分配

世界上并不是每台设备都在无时无刻上网,比如家用笔记本,使用时间往往取决于用户醒着的期间。由于时差,当世界上一半人处于黑夜睡梦中时,计算机一般是不用了的,此时IP就可以不给分配了,另一半人则处于白天,同理。

NAT机制(网络地址转换)
❤️内网IP VS 外网IP 与通信

IP地址被分为了内网IP和外网IP

  1. 内网IP
    • 概念
      (1)局域网网络地址,10.*,172.16. * ~ 172.31. *,192.168. *之类的IP都是内网IP。

      (2)不同局域网内的设备,内网IP可以重复,同一个局域网内的设备,内网IP不能重复

      (3)此时,在不同局域网内,大量设备可以使用相同的IP,实现了IP的复用。

    • 关于通信
      (1)局域网内部通信:内网IP唯一,可以轻松访问

      (2)A局域网设备与B局域网设备通信:IP不唯一,禁止访问。需要一个带有外网IP的设备进行中转,比如服务器。

      (3)局域网内部设备访问带有外网IP的设备

      发送数据时,利用外网设备能访问外网设备的原理,不断替换IP,进行中转。
      返回数据时,通过查映射表把数据发回正确的一方。

在这里插入图片描述

在这里插入图片描述

  1. 外网IP
    运营商提供的设备以及服务器都有外网IP,电脑手机之类的则只有内网IP。
❤️优缺点
  1. 优点:目前主流的技术,因为是一个“纯软件实现”的方案【只需要路由器开发商开发出新版本的软件(路由器固件),升级软件即可】,性价比高
  2. 缺点:效率不高,繁琐,不方便直接访问局域网内的设备。且只是提高了IP地址的“利用率”,并没有从根本上解决IP地址不够用的问题。
Ipv6
  1. 概念:通过提高了bit位个数,引入了更多的地址,从根本上解决了IP地址不够用的问题。有16个字节,即128位表示IP地址,数字极大,完全够用。
  2. 现状:并不主流。因为Ipv6 和 IPv4 不兼容,需要更换路由器设备,成本高。且 IPv6 并不能带来网络性能上的提升,性价比低,所以发展缓慢。

(3)特殊的 IP 地址

私设:下面例子的子网掩码都为 255.255.255.0

  1. 将IP地址中的主机地址全部设为0,就成为了网络号,代表这个局域网,比如 192.168.0.0
  2. 将IP地址中的主机地址全部设为1,就成为了广播地址,用于给同一个链路中相互连接的所有主机发送数据包。比如192.168.0.255,往这个IP上发送数据报,这个数据就会被转发给局域网中的所有设备
  3. 127.* 的IP地址用于本机环回(loop back)测试,我们通常使用 127.0.0.1
    • 本机环回主要用于本机到本机的网络通信
    • localhost 是一个“域名”,会被解析成 127.0.0.1, 所以也可以表示本机。从使用层面,双方等价,但localhost 有时会出问题,故更建议使用 127.0.0.1

(4)子网掩码

  1. 需求介绍
    • NAT机制里介绍,IP地址被分为了 内网IP 和 外网IP。事实上,IP地址有多种分法,比如还可以从网段的角度,将IP分为网络号和主机号,网络号用来标识局域网
    • 路由器连接局域网设备时,要求设备在同一个网段
    • 我们是通过子网掩码来识别网络号和主机号
    • 下图的子网掩码是255.255.255.0,即前3个4位表示网络号,最后一个表示主机号。

在这里插入图片描述
2. 类别

  • 4字节32位整数表示:要求左侧必须是连续的1,右边是连续的0。1表示的范围表示 “ IP地址的哪些位置是网络号”,0的范围则是对应了主机号。如 子网掩码 255.255.255.0 表示IP地址前28位是网络号,最后4位是主机号。
  • ABCD类表示法:已经被淘汰了,但是会考。

(5)路由选择

场景介绍:由于互联网十分庞大,路由器只知道相邻设备的网络情况,无法像【高德地图】一样,输入目的地和出发地,就能规划出最优方案。所以,数据报在IP协议下是 “问路式” 传输

如何问路
每个路由器内部,都有一个 “路由表” ,数据报到达路由器的时候,就会查询路由器(问路)

  • 查到了:直接按照提供的方法继续转发即可,数据能到达
  • 没查到(常态),路由器会给一个默认的方向(下一跳地址),沿着默认的方向走(往往是走到了上级路由器这里),直到遇到一个真正知道怎么走的路由器为止。

二、数据链路层 ---- 以太网

2.1 概念

  • “以太”指的是介质。
  • “以太网” 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容。例如:规定了网络拓扑结构,访问控制方式,传输速率,网线要求等;

2.2 协议格式

在这里插入图片描述

  1. 目的地址、源地址:mac地址(物理地址),长度为6个字节
  2. 类型:以太网数据帧载荷可有多种形式,由选项决定,共有3种情况
    • 第一种:载荷是完整的IP数据报,帧尾是校验和
    • 第二种:载荷是 ARP 请求 / 应答,帧尾是PAD
    • 第三种:载荷是 RARP 请求 / 应答,帧尾是PAD
  3. IP数据报
    • 一个以太网数据帧的 body部分,最大长度是1500,也就是1KB左右,这是受限于于硬件的(对于以太网来说,对应的硬件设备只能支持这么大)。所以,因为传输层/应用层数据报往往因为太大,在数据链路层被切分成多个。IP数据报一般分包不是自身的长度达到了64K,而是MTU。
    • 如果要改变这个最大值,就需要换硬件,此时也就需要搭配其他的数据链路层协议了。
    • 这个最大值称为 MTU

mac地址

  1. 是什么
    • 和IP地址一样,可以用来表示主机地址,区分不同的主机。
    • 二者的侧重点不同,IP地址主要负责网络层的转发(依靠路由选择进行整体的路线规划),mac地址则是负责数据链路层转发(相邻设备转发过程,通过光纤/网线/WIFI无线传输)
  2. 如何表示
    • 长度为6个字节,字节之间使用 - 或 : 进行分割
    • 一般是使用十六进制数字来表示
  3. 使用
    • 由于有6个字节,地址完全够用, 所以mac地址都是网卡出厂的时候,就写死了。
    • 也就是说,每个设备的网卡都有独立的mac地址,即mac成为了互联网上的进行身份标识的一种方式。(根据记录这个网卡是谁买的,找到人)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值