计算机网络(二)网络层IP层

1 引入原因

2 IP数据报

    版本号:4位,IPv4或IPv6; 首部长度:4位,单位是“32位”,就是我这个IP数据报的首部是多少个32位,最大(2^4-1)×32位=1548位=60字节; 服务类型:过程字段、延迟字段、流量字段、可靠性字段等等,不关心; 总长度:IP数据报的总长度,最大长度为65535字节,由于数据链路层最长1500个字节,所以如果一个IP数据包超长了,就需要对其进行分片; 标识:每一个IP封包都有一个16位的唯一识别码,超长分片组合的时候用; 标志位:能否分片,标识分片相关; 片偏移:分片后重组时候需要按照顺序来拼接; 生存时间(Time To Live,TTL):生存时间字段设置了数据报可以经过的最多路由器数,表示数据包在网络上生存多久。每经过路由器就减一,为0就丢弃;避免无限传输; 协议:表明数据是按照什么协议编码的,TCP、UDP、ICMP、IGMP、OSPF、IP(可以封装IP数据报); 首部校验和:校验首部是否出错; 源IP地址:32位; 目的地址:32位; 选项(Options)+填充(Padding):这两个选项较少使用,只有某些特殊的封包需要特定的控制才会利用到。共32位。这些选项通常包括:安全和处理限制、记录路径、时间戳、宽松的源; 数据:按照协议字段定义的数据内容;

3 ARP协议

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。沟通IP层和数据链路层。

路由器ARP缓存表需要维护一张地址表【IP地址,MAC地址】;

4 子网划分

4.1 私有IP

    A: 10.0.0.0~10.255.255.255 即10.0.0.0/8 B:172.16.0.0~172.31.255.255即172.16.0.0/12 C:192.168.0.0~192.168.255.255 即192.168.0.0/16

4.2 划分

    一般使用会将IP地址分为网络号+主机号,用子网掩码来处理; 主机号全0,表示当前网络段,不可以分配特定主机; 主机号全1,表示广播,不可以分配特定主机; 全0的网络号表示特殊网络; 127.0.0.1 通常被用作本地回环地址,测试本地网络;

5 NAT

NAT(Network Address Translation,网络地址转换),多个主机通过一个公有IP访问公网资源;

6 ICMP

ICMP(Internet Control Message Protocol)Internet控制报文协议。

ICMP协议可以报告错误信息或者异常情况;ICMP报文是封装在IP数据报的数据部分;

    Ping应用:测试IP连通性; traceroute 应用:数据包走的路径;

7 路由表相关

7.1 路由表

计算机和路由器需要维护一个路由表:【目的IP地址,下一跳IP地址】;

7.2 内部网关协议RIP协议

每一个节点使用两个向量D和S,D描述当前节点到别的节点的距离,S描述当前节点到别的节点的下一个节点;RIP协议就是每一个节点都维护这样的一个向量,就得到了路由表;

7.3 内部网关协议OSPF协议

OSPF(Open Shortest Path First开放式最短路径优先);核心是使用迪杰斯特拉算法求最短路径;

7.4 外部网关协议BGP协议

边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。互联网规模太大了,如果还是使用内部网关协议,那么数据量和计算量将会是巨大的。BGP不要求找到最好的一条路由,能找到比较好的一条路由即可;

8 总结

一个路由器需要维护三个表:

经验分享 程序员 微信小程序 职场和发展