网络层&&IP协议的基本原理 数据链路层&&ARP协议 域名解析以及一些重要技术

本文详细介绍了网络层的关键概念,包括IP协议的头格式、分片原理、网络地址划分以及DHCP和CIDR技术。同时,讨论了数据链路层的以太网帧格式、MTU对IP、UDP、TCP协议的影响,以及ARP协议的工作过程。此外,还涵盖了DNS域名解析和NAT技术,以及ICMP协议的作用。

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

1 网络层

网络层作用:在复杂的网络环境中确定一个合适的路径。

tcp/ip协议,tcp解决可靠性与效率,ip提供在网络中传输的能力。

传输层决定了单次向下交付数据包的大小。

IP协议

IP(Internet Protocol)协议是一种网络层协议,用于在互联网上进行数据传输。它定义了数据如何在网络中进行分组、寻址和路由。IP协议是互联网的核心协议之一,它为互联网上的每个设备分配一个唯一的IP地址,以便进行数据交换。

主机: 配有IP地址, 但是一般不进行路由控制的设备

路由器: 即配有IP地址, 又能进行路由控制

节点: 主机和路由器的统称

协议头格式

封装和解包:定长报头+自描述字段

如何交付(分用):报头的8位协议:udp or tcp

image-20230722145013994

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

  • 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位总长度(total length): IP数据报整体占多少个字节.
  • 16位标识(id): 唯一的标识主机发送的报文. 如果IP报文在数据链路层被分片了, 那么每一个片里面的这个
    id都是相同的.

  • 3位标志字段:

    • 第一位保留(保留的意思是现在不用, 但是还没想好说不定以后要用到)

    • 第二位置为1表示禁止分片, 这时候如果报文长度超过MTU, IP模块就会丢弃报文.(比如配合管理工作做MTU的大小探索时)

    • 第三位表示"更多分片", 如果分片了的话,最后一个分片置为1, 其他是0. 类似于一个结束标记.

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

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

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

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

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

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

链路层由于物理特征的原因,一般无法转发太大的数据,链路层有一次可以转发到网络的报文大小的限制(默认1500字节,MTU,最大传输单元)。

image-20230723185134802

分片:将一个比较大的ip报文,拆分成为多个小的,满足条件的报文。分片的行为是网络层做的,同样组装的行为也必须由对方的网络层做。

为什么要组装?

对方给自己的网络层是一个完整的TCP报文,接收方,在网络层向上交付也必须是一个完整的报文。协议的一致性,也减少了协议编写和维护的成本。IP分片和组装的行为TCP是不知道也不关心的。

分片是如何做到的?

在网络层中,分片是通过IP协议来实现的。IP协议定义了将数据包分割成较小的片段并在网络上进行传输的机制。 以下是分片的工作过程:

  1. 数据包分割:发送端将较大的数据包分割成较小的片段,每个片段称为分片。每个分片都包含IP头部和一部分数据。

  2. 分片标识:每个分片都被赋予一个唯一的标识号,以便接收端能够将它们重新组装成原始的数据包。这个标识号存储在IP头部的标识字段中。

  3. 分片偏移:每个分片还包含一个分片偏移字段,指示该分片在原始数据包中的位置。这个偏移值用于确定分片的顺序以及它们在重新组装时的位置。

  4. 分片大小:每个分片都有一个最大长度限制,这是由网络的最大传输单元(MTU)决定的。如果数据包的大小超过了MTU的限制,就需要进行分片。

  5. 分片传输:分片被单独发送到目的地,通过网络传输。每个分片都独立地经过路由器和其他网络设备,可能会采取不同的路径到达目的地。

  6. 分片重组:接收端收到分片后,根据IP头部的标识号和分片偏移字段,将它们重新组装成原始的数据包。接收端使用这些信息确定分片的顺序和位置,以正确地重建原始数据包。

需要注意的是,由于网络的不可靠性,分片的丢失或延迟可能会导致数据包无法正确重组。因此,网络层的分片机制需要依赖上层的传输层协议(如TCP)来确保数据的可靠传输。

分片严重不推荐,分片的坏处:

  • 丢包是有概率的,分片会增大丢包的概率

网段划分

每个国家的IP地址,在开始的时候,就已经被划分好了,国际上的路由器都有自己的路由表,可以进行国家和国家的转发。

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

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

image-20230724101338033

  • 不同的子网其实就是把网络号相同的主机放到一起
  • 如果在子网中新增一台主机,则这台主机的网络号和这个子网的网络号一致,但是主机号必须不能和子网中其他主机重复。

划分原因

  1. 便于定位
  2. 提高查找效率

DHCP

通过合理的设置主机号和网络号,就可以保证在相互连接的网络中,每台主机的IP地址都不相同。

手动管理子网内的IP,是一个相当麻烦的事情。

有一种技术叫做DHCP,能够自动的给子网内新增主机节点分配IP地址,避免了手动管理IP的不便

一般的路由器都带有DHCP的功能,因此路由器也可以看做一个DHCP服务器

CIDR:基于子网掩码的划分方式

过去曾经提出一种划分网络和主机号的方案,把所有IP地址分为五类。分类划分法:

image-20230726171954537

  • A类 0.0.0.0到127.255.255.255
  • B类 128.0.0.0到191.255.255.25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值