目录
网络层IP协议
协议头格式(了解)
- 4位版本号(version): 指定IP协议的版本。对于IPv4就是4
- 4位头部长度: IP头部的长度是多少个32bit, 也就是 length * 4 的字节数.。4bit表示最大的数字是15, 因此IP头部最大长度是60字节
- 8位服务类型: 3位优先权字段(已弃用),4位TOS字段, 和1位保留字段(必须置为0)。4位 TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性,最小成本(应用层协议需要不同的安全、效率需求,此时可以通过设置服务类型来满足). 这四者相互冲突, 只能选择一个. 对于 ssh/telnet这样的应用程序, 最小延时比较重要; 对于ftp这样的程序, 最大吞吐量比较重要
- 16位总长度: IP数据报整体占多少个字节
- 16位标识(id)--(与数据链路层MTU相关): 唯一的标识主机发送的报文. 如果IP报文在数据链路层被分片了, 那么每一个片里面的这个id 都是相同的.
- 3位标志字段--(与数据链路层MTU相关): 第一位保留(保留的意思是现在不用, 但是还没想好说不定以后要用到). 第二位置为1表示禁 止分片, 这时候如果报文长度超过MTU, IP模块就会丢弃报文. 第三位表示"更多分片", 如果分片了的话, 最 后一个分片置为1, 其他是0. 类似于一个结束标记.
- 13位分片偏移--(与数据链路层MTU相关,这三个字段的目的是基于MTU拆分为多个数据报之后,接收端分用到网络之前,需要先还原再分用): 是分片相对于原始IP报文开始处的偏移. 其实就是在表示当前分片在 原报文中处在哪个位置. 实际偏移的字节数是这个值 * 8 得到的. 因此, 除了最后一个报文之外, 其他报文的 长度必须是8的整数倍(否则报文就不连续了).
- 8位生存时间: 数据报到达目的地的最大报文跳数。一般是64,每次经过一个路由, TTL -= 1, 一直减到0还没到达, 那么就丢弃了, 这个字段主要是用来防止出现路由循环
- 8位协议: 表示上层协议的类型
- 16位头部校验和: 使用CRC进行校验, 来鉴别头部是否损坏.
- 32位源地址和32位目标地址: 表示发送端和接收端 (IP地址)
- 选项字段(不定长, 最多40字节)
MTU
封装后的数据报超长,需要拆分为多个数据报发送
网段划分
格式:XXX.XXX.XXX.XXX
- 四个部分组成,每个部分的范围为0-255
- 网络号:前三个部分组成(标识网段)
- 主机号:最后一个部分(标识主机)
网络号相同处于同一个网段 主机号标识唯一主机
局域网内(局域IP):网段唯一,同一个网段主机唯一
公网(公网IP):公网IP唯一
【注】不同的子网其实就是把网络号相同的主机放到一起
【注】如果在子网中新增一台主机
,
则这台主机的网络号和这个子网的网络号一致
,
但是主机号必须不能和子网中的其他主机重复
IP地址的分类

其中私有IP地址:
- A类:10.*,前8位是网络号
- B类:172.16.----172.31.,前12位是网络号
- C类: 192.168.*,前16位是网络号
但是随着
Internet
的飞速发展,
这种划分方案的局限性很快显现出来,
大多数组织都申请
B
类网络地址
,
导致
B类地址很快就分配完了,
而
A类却浪费了大量地址,于是提出了新的划分方案----
CIDR
- 引入子网掩码来区分网络号和主机号
- 子网掩码也是一个32位的正整数,通常用一串 "0" 来结尾
- 将IP地址和子网掩码进行 "按位与" 操作, 得到的结果就是网络号,主机号从全0到全1就是子网的地址范围
- 网络号和主机号的划分与这个IP地址是A类、B类还是C类无关

- IP地址和子网掩码表示方法:140.252.20.68/24,表示IP地址为140.252.20.68, 子网掩码的高24位是1,也就是255.255.255.0,网络号即为140.252.20.0
特殊的IP地址
- 将IP地址中的主机地址全部设为0, 就成为了网络号, 代表这个局域网
- 将IP地址中的主机地址全部设为1, 就成为了广播地址, 用于给同一个链路中相互连接的所有主机发送数据包
- 127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1
IP
地址的数量限制问题
- 动态分配IP地址: 只给接入网络的设备分配IP地址, 因此同一个MAC地址的设备,每次接入互联网中,得到的IP地址不一定是相同的
- NAT技术
- IPv6: 目前IPv6还没有普及
数据链路层协议
MAC地址
- 和网卡硬件绑定 全球唯一
- 作用:网络数据传输定位网卡硬件位置,一个主机可能有多个网卡
- 电脑硬件定位数据发送的目的位置只能使用MAC
MAC与IP对比:
- IP地址描述的是路途总体的 起点 和 终点(给人用的,网络主机的逻辑地址)
- MAC地址描述的是路途上的每一个区间的起点和终点;(给电脑硬件用的,网络主机的物理地址)
网络传输都存在以下特性:
- IP,MAC起作用
- 封装分用
- 结合IP,MAC理解网络传输----本质上是一跳一跳的
【注】接收数据报的主机可能在一些情况下(广播、转发),目的MAC不是我,我也能收到
MTU
封装后的数据报超长,需要拆分为多个数据报发送
ARP
ARP:IP找MAC
RARP:MAC找IP
应用层协议DNS
DNS:域名找IP(从下往上找)
NAT:局域网IP转为公网IP
NAPT:私网IP+端口号转为公网IP+端口号