网络原理之网络层、数据链路层

发布于:2025-03-21 ⋅ 阅读:(19) ⋅ 点赞:(0)

1. 网络层

1.1 IP协议

在这里插入图片描述

1.1.1 基本概念

  • 主机: 配有IP地址,但是不进⾏路由控制的设备
  • 路由器: 即配有IP地址,⼜能进⾏路由控制
  • 节点: 主机和路由器的统称

1.1.2 协议头格式

在这里插入图片描述

说明:

  • 4位版本号(version): 指定IP协议的版本,对于IPv4来说,就是4,对于IPv6来说,就是6

  • 4位头部长度(header length): IP头部的长度是多少个32bit,也就是length*4的字节数.4bit表示最大的数字是15,因此IP头部最大长度是60字节.

  • 8位服务类型(Type Of Service): 3位优先权字段(已经弃用),4位TOS字段,和1位保留字段(必须置为0). 4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本.这四者相互冲突,只能选择⼀个.对于ssh/telnet这样的应用程序,最小延时比较重要,对于ftp这样的程序,最大吞吐量比较重要.

  • 16位总长度(totallength): IP数据报整体占多少个字节.

  • 16位标识(id): 唯⼀的标识主机发送的报文.如果IP报文在数据链路层被分片了,那么每⼀个片里面的这个id都是相同的.

  • 3位标志字段:
    第⼀位保留(保留的意思是现在不用,但是还没想好说不定以后要用到).
    第⼆位 置为1表示禁止分片,这时候如果报文长度超过MTU
    在这里插入图片描述
    IP模块就会丢弃报文.第三位表示"更多分片",如果分片了的话,最后⼀个分片置为1,其他是0.类似于⼀个结束标记.

  • 13位分片偏移(framegamentoffset): 是分片相对于原始IP报文开始处的偏移.其实就是在表示当前分片在原报文中处在哪个位置.实际偏移的字节数是这个值*8得到的.因此,除了最后⼀个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了).

  • 8位生存时间(TimeToLive,TTL): 数据报到达目的地的最大报文跳数(⼀般是64),每次经过⼀个路由,TTL-=1,⼀直减到0还没到达,那么就丢弃了.这个字段主要是用来防止出现路由循环
    在这里插入图片描述

  • 8位协议: 表示上层协议的类型

  • 16位头部校验和: 使用CRC进行校验,来鉴别头部是否损坏

  • 32位源地址和32位目标地址: 表示发送端和接收端

  • 选项字段(不定长,最多40字节):

  • 数据: 传输层传来的数据载荷

1.2 地址管理

1.2.1 IP地址

IP地址(Internet ProtocolAddress)是指互联网协议地址,又译为网际协议地址。

IPv4最多可以43亿个IP地址,但是现在上网的设备越来越多,在前文中,我们讨论过使用IPv6的方法,但是由于现在的网络中的主流协议还是IPv4,那么我怎么处理不够用的问题呢??
此时有两种方法

  1. 动态分配置:只给接入网络的设备分配IP地址.因此同⼀个MAC地址的设备,每次接入互联网中,得到的IP地址不⼀定是相同的
  2. NAT技术:见目录下1.2.3介绍

1.2.2 网段划分

IP地址分为两个部分,网络号主机号

  • 网络号: 保证相互连接的两个网段具有不同的标识
  • 主机号: 同⼀网段内,主机之间具有相同的网络号,但是必须有不同的主机号

1.2.3私有IP地址和公网IP地址

如果⼀个组织内部组建局域网,IP地址只用于局域网内的通信,而不直接连到Internet上,理论上使用任意的IP地址都可以,但是RFC 1918规定了用于组建局域网的私有IP地址

  • 10.*,前8位是网络号,共16,777,216个地址
  • 172.16.到172.31.,前12位是网络号,共1,048,576个地址
  • 192.168.*,前16位是网络号,共65,536个地址

包含在这个范围中的,都成为私有IP,其余的则称为全局IP(或公网IP)

在这里插入图片描述
在这里插入图片描述

  • 从生活常识中,我们也知道路由器WAN口是插着运营商给定宽带的(光猫),LAN口连接着电脑和其他网络设备
  • ⼀个路由器可以配置两个IP地址,⼀个是WAN口IP,⼀个是LAN口IP(子网IP).
  • 路由器LAN口连接的主机,都从属于当前这个路由器的子网中.
  • 不同的路由器,子网IP其实都是⼀样的(通常都是192.168.1.1).子网内的主机IP地址不能重复.但是子网之间的IP地址就可以重复.
  • 每⼀个家用路由器,其实又作为运营商路由器的子网中的⼀个节点.这样的运营商路由器可能会有很多级,最外层的运营商路由器,WAN口IP就是⼀个公网IP了.
  • 子网内的主机需要和外网进行通信时,路由器将IP首部中的IP地址进行替换(替换成WAN⼝IP),这样逐级替换,最终数据包中的IP地址成为⼀个公网IP.这种技术称为NAT(NetworkAddressTranslation,网络地址转换).
  • 如果希望我们自己实现的服务器程序,能够在公网上被访问到,就需要把程序部署在⼀台具有外网IP的服务器上.这样的服务器可以在阿里云/腾讯云上进行购买

2. 数据链路层

2.1 认识以太网

  • "以太网"不是⼀种具体的网络,而是⼀种技术标准;既包含了数据链路层的内容,也包含了⼀些物理层的内容.例如:规定了网络拓扑结构,访问控制方式,传输速率等
  • 例如以太网中的网线必须使用双绞线;传输速率有10M,100M,1000M等
  • 以太网是当前应用最广泛的局域网技术;和以太网并列的还有令牌环网,⽆线LAN等

2.2 以太网帧格式

以太网的帧格式如下所示:

在这里插入图片描述

  • 源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的
  • 帧协议类型字段有三种值,分别对应IP、ARP、RARP
  • 帧末尾是CRC校验码

2.3 认识MAC地址

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

3. 重要应用层协议DNS(Domain Name System)

概念:域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射
作用: 原来访问一个网络信息,需要知道对方的IP和端口号,很不方便,但是DNS将IP地址和端口号和域名绑定在了一起,直接搜索网址即可
例如:当访问一个京东网页时,我们需要知道csdn的IP和端口号,有那么多网页,很难记住那么多网页的,此时就需要DNS,我们只要访问www.csdn.com即可
在这里插入图片描述