文章目录
导学
- 网络层是通信子网的最高层,解决的是数据在网络中传输路径的问题(数据路由)
- 本篇主要从IP协议入手,逐步深入分析网络层的功能实现
虚拟互连网络
- 实际的网络连接是很复杂的,数据可能经过WiFi、电缆的多次传递
- IP协议提出了虚拟互连网络的概念,使得网络层可以屏蔽底层细节而专注于网络层数据转发
- 准确的说,是IP协议的实现,让用户实现了虚拟互连,你只管入网,其他交给IP
- 因此,IP协议的任务就是:解决虚拟网络中数据报传输路径的问题
IP协议
- IP地址
- 物理层有MAC地址,每台电脑都有一个全球唯一的不可变的MAC Address
- IP地址使用点分十进制表示(192.168.6.6),32位(IPV4),最多可表示232个
- 物理层有MAC地址,每台电脑都有一个全球唯一的不可变的MAC Address
- 帧数据格式
- 从帧数据中拆出IP数据报(注意这个叫法):
- IP数据报内又包含首部+数据部分(传输层报文)
- 从帧数据中拆出IP数据报(注意这个叫法):
- 首部详解(要考)
- 总长度,首部+数据长度;最大数值位65536,但如果超过MTU,要进行分片
- 标识:分片后组装时使用的序号,这个序号是存储器维护的一个计数器的值(当然,无连接服务不存在按序接收的问题)
- 标志:
- 最低位为MF(More Fragment),MF=1即表示后面还有分片,MF=0表示这已是若干数据报片中的最后一片
- 中间的一位为DF(Don’t Fragment),意思是“不能分片”,只有当DF=0时才允许分片
- 最高位没用到
- 片偏移:某片在原分组中的相对位置(相对此分组头)
- 即标识和片偏移还原分组
- TTL:此报文在网络中的寿命(避免无限传输),每经过一个设备-1
- 协议:表示IP数据所携带的具体数据是什么协议的(指明这个报文是干嘛的)
- ICMP就是报告错误的,TCP/UDP就是上面传来通信的…
数据报转发流程
- 在网络接口层有MAC地址表,回顾他的转发流程:
- 这个流程很重要,也涉及到使用ARP协议
- 路由表
- 类似的,计算机和路由器都拥有路由表:
- 此时跨域访问,数链层就无能为力了
- 类似的,计算机和路由器都拥有路由表:
- 转发流程
- A给数据帧到本网路由器(忽略物理层比特流传输)
- 每一次传递MAC地址都会变化:
- IP地址始终不变
- A给数据帧到本网路由器(忽略物理层比特流传输)
- 理清这两个流程很重要!!!
ARP协议
- 上面两个流程中,内网转发要查MAC表,外网要改MAC地址到下一跳,都要用到MAC
- 如果找不到MAC地址呢?这就要用到地址解析协议(Address Resolution Protocol)
- 先说正常情况下,查找ARP缓存表: