网络层:网络层完成了路由选择和地址管理 也就是说网络层决定了数据包在网络中如何路由,如何到达对端主机,以及ip地址管理
ip协议格式
- 数据链路层最大传输长度为MTU,如果网络层交付给链路层的 数据长度+ip头>MTU;
- 链路层会将数据分割成多个分片在网络中传输;
- 多个分片在网络中传输时,到达对端次序任意,
- ip协议通过协议字段中的,16位标识、3位标志、13位片偏移确定到达的数据是分片,还是完整的数据包;
udp数据有可能需要网络层ip协议进行分片传输
- udp是将整条数据交付给网络层;
- udp协议最大传输数据大小是2^16,有可能udp递交给网络层的数据超过MTU
- 如果数据>MTU,则网络层需要对udp数据进行分片传输,将udp数据分片进行传输;
- 如果数据<MTU,则不需要分片
tcp数据不需要网络层ip协议进行分片传输
- tcp在三次握手时就协商了最大报文长度MSS,采用最小的MSS;
- MSS+tcp头+ip头 <= MTU;
- tcp在传递数据到网络层时严格按照MSS传输,所以传输到网络层的数据一定<MTU;
丢失一个分片,由应用层将所有数据重新发送,因为udp和ip是不可靠的;
ip地址管理
ipv4版本的ip地址
- 本质是无符号32位整数
- ip地址 = 网络号 + 主机号
网络号:可以在网络中标识一个子网,一个子网中有多个ip地址; 主机号:一个子网中标识一个主机
ip地址分配方式:CIDR方式
1.想要完成的事:
- 更加精细化划分子网,一个子网中的ip地址可以比C类ip地址少,可以定义子网中的ip地址数量;
2.引入子网掩码:
- 本质是32位无符号整数,子网掩码总最高位到最低位需要有连续的1存在;
- 网络号 = 子网掩码 & ip地址;
- 子网掩码取反 = 当前子网的主机(ip地址)数量;
取反后有多少位为1,则标识主机号使用多少个比特位;
现在的ip地址都是经过CIDR方式分配的,不存在A类B类C类ip地址的说法(这是以前的分配方式); ip地址是路由设备给连接上的设备分配的; 分配ip地址时,会分配上子网掩码;
特殊ip地址:
- 0.0.0.0:代表本地机器所有网卡地址;
- 127.0.0.1:代表本地回环网卡地址;
- 主机号全为0:称之为子网的网络号,可以表示当前子网;
- 主机号全为1:称之为子网的广播号;
路由选择
1.路由选择是在为网络数据选择合适的设备进行转发;
2.路由器上的设备口:WAN / LAN;
- WAN:是当前路由器连接上级路由器的LAN口
- LAN:是子网内机器连接本路由器的网口
网络层是在选数据发送的路,不管数据怎样从本机器到对方机器的传输
|