5.基础网络协议

Ⅰ - IP地址基础

1.TCP/IP参考模型

TCP-IP参考模型

2.什么是IP地址

  • 作为通信节点的唯一标识。

  • 用于IP报文的寻址以及标记一个节点。

  • IPv4的地址一共有32位,使用点分十进制表示。

  • IPv6的地址一共有128位,用冒号分割的16进制组成

例子(IPv4):

172. 31. 1. 254
10101100 00011111 00000001 11111110

例子(IPv6):

1
2001:3CA1:010F:001A:121B:0000:0000:0010

3.IP地址分类

IP地址可以分为A、B、C、D、E五类,其中A、B、C三类地址如下表格所示在全球范围内统一分配,D、E类为特殊地址。

类别 最大网络数 IP地址范围 单个网段最大主机数 私有IP地址范围
A 126(2^7-2) 1.0.0.1-127.255.255.254 16777214 10.0.0.0-10.255.255.255
B 16384(2^14) 128.0.0.1-191.255.255.254 65534 172.16.0.0-172.31.255.255
C 2097152(2^21) 192.0.0.1-223.255.255.254 254 192.168.0.0-192.168.255.255
  • D类IP地址:

    D类IP地址是组播(多播)地址,地址范围是224.0.0.0 - 239.255.255.255。

  • E类IP地址:

    E类IP地址是保留地址,它的IP地址范围是240.0.0.0 - 247.255.255.255。

4.子网掩码

  • 子网掩码与IP地址搭配使用(是IP地址的好兄弟),用于描述IP地址的主机部分与网络部分。

  • 子网掩码同样一共32位,与IP地址的32位一一对应,掩码中二进制为1代表网络为,为0代表主机位。

  • 下方表格为A、B、C类地址的默认子网掩码:

类别 默认掩码 掩码位数
A类 255.0.0.0 /8
B类 255.255.0.0 /16
C类 255.255.255.0 /24

5.广播域与冲突域

  • 广播域与冲突域的产生:

    • 集线器本身是一个冲突域。

    • 交换机(二层)的每一个接口是一个冲突域。

    • 路由器的每一个接口是一个广播域。

    • 路由器与交换机连接的接口是一个冲突域。

    • 二层可以隔离冲突域,但不能隔离广播域(交换机)。

    • 三层可以隔离广播域,默认隔离冲突域(路由器)。

  • 广播域的特点:

    • 广播域其中的流量在整个网络中流动。

    • 广播域是指不使用路由器的可访问计算机系统的逻辑集。

    • 对于所有类型的IP广播,广播域均不限于特定的IP子网。

    • 广播域主要使用交换环境进行广播,因此不会发生冲突。

    • 交换机在广播域中永不中断。

    • 交换机或集线器上的所有端口可能位于同一广播域中。

  • 冲突域的特点:

    • 冲突域是一个网络部分,它允许流量向前和向后流动。

    • 冲突域是指可能发生数据包冲突的一组设备。这些设备可能包括其他IP子网的设备。

    • 当多个设备在单个有线链路上传输数据时,就会发生数据包冲突。

    • 交换机将在冲突域中中断。

    • 在冲突域中,路由器上的每个端口都在单独的广播域中。

6.IP网络通信类型

  • 单播:

    是指在计算机网络传输中,目的地址为单一目标的传输方式。

  • 组播:

    是指在计算机网络传输中,把信息传给一组目的地址,消息在每条链路上只需传递一次,只有在链路分叉时消息才会被复制。

  • 广播:

    是指在计算机网络传输中,目的地址为网络中的广播域内所有设备的一种传输方式。

7.IP地址类型

  • 网络地址:

    指代网络的地址,在网络的IPv4地址范围内,最小的地址保留为网络地址,网络地址的主机部分均为0。

  • 广播地址:

    广播地址是用于向网络中的所有主机发送数据的特殊地址,它使用该网络范围内的最大地址,即主机部分全为1的地址。

  • 主机地址:

    可以分配给网络中终端设备的地址。

Ⅱ - IPv6与过渡技术

1.IPv6地址

  • IPv6的地址一共有128位,用冒号分割的16进制组成

  • 每个字段前面的0可以省去,例如例子中的最后一段0010可以简写为10。

  • 一个或多个全0的字段,可以用一对冒号: :来代替。

  • IPv4兼容地址可以写为 : :192.168.1.1。

  • 有效0位不能简写,双冒号只能出现一次。

  • 例子(IPv6):

    1
    2001:3CA1:010F:001A:121B:0000:0000:0010

    综上所述,该地址可以简写为:

    1
    2001:3CA1:010F:001A:121B::10

2.IPv6地址分类

  • 单播地址:

    • 不确定地址:地址0:0:0:0:0:0:0:0 称为不确定地址,不能分配给任何节点。

    • 回环地址:地址0:0:0:0:0:0:0:1 称为回环地址。

  • 任意播地址:

    • 表示一组接口的标识符,通常是路由距离最近的接口。

    • 任意播地址不能用作源地址。

    • 任意播地址不能指定给IPv6主机,只能指定给IPv6路由器。

  • 组播地址:

    • 发往组播地址的分组被传送给该地址标识的所有接口。

    • IPv6中没有广播地址,它的功能已经被组播地址所代替。

  • 单播地址:

    • 可聚合全球单播地址:这种地址在全球范围内有效,相当千IPv4公用地址(前缀为001)。

    • 链路本地地址:用于同一链路的相邻节点间的通信(前缀为1111 1110 10) 结合MAC地址自动生成。

    • 站点本地地址:相当千IPv4 中的私网地址(前缀为1111 1110 11)。

    • 口诀:1聚2恋3占。

  • 组播地址:

    • IPv6 组播地址的格式前缀为 1111 1111。

3.IPv4和IPv6地址对比

IPv4地址 IPv6地址
点分十进制表示 带冒号的十六进制表示,0可以压缩
分为A、B、C、D、E 五类 不分类
组播地址224.0.0.0/4 组播地址FF00::/8
广播地址(主机部分全为1) 任意播(限于子网内部)
默认地址0.0.0.0 不确定地址::
回环地址127.0.0.1 回环地址::1
公共地址 可聚合全球单播地址FP=001
私有地址:
10.0.0.0/8;127.16.0.0/12;192.168.0.0/16
站点本地地址:FEC0::/48
自动专用IP地址:169.254.0.0/16 链路本地地址FE80::/48

4.IPv4到IPv6过渡技术

  • 隧道技术:

    解决IPv6节点之间通过IPv4网络进行通信。

  • 双栈技术:

    同时运行IPv4和IPv6。

  • 翻译技术:

    解决纯IPv6节点与纯IPv4节点之间进行通信。

Ⅲ - IP报文格式

1.IPv4报文格式

  • 头部长度(IHL):

    取值最小值是5,最大值为15,单位4字节。

  • TOS:

    为区分服务字段,用于区分服务类型,即QoS字段。

  • 总长度字段:

    是IPv4数据报的总长度。

  • 标识:

    标识主机发送的数据报,每次发送+1。

  • 生存期(TTL):

    用于设置一个数据包可经过的路由器数量上限,每经过一台路由器便会 -1。

  • 协议字段:

    包含一个数字,标识数据报有效载荷部分的数据类型,最常用的值为1(ICMP)、17(UDP)、6(TCP)。

  • 头部校验和字段仅计算IPv4头部。这意味着IP协议不检查IPv4数据报有效载荷部分的正确性,当TTL减一时,头部校验和必须改变。

IPv4报文格式

2.IPv6报文格式

  • 版本(4位):

    用0110代表IPv6。

  • 通信类型(8位):

    用于区分不同的IP分组,相当于IPv4中服务类型字段(实际不用)。

  • 流标记(20位):

    标识某些需要特别处理的分组(实际不用)。

  • 负载长度(16位):

    表示出了IPv6固定头部40个字节之外的负载长度,扩展头包含在负载长度之中。

  • 下一头部(8位):

    指明下一个头部类型,可能是IPv6扩展头部或高层协议的头部。

  • 跳数限制(8位):

    用于检测路由循环,类似TTL。

  • 源地址(128位):

    发送节点的地址。

  • 目的地址(128位):

    接收节点的地址。

    IPv6报文格式

Ⅳ - ICMP

1.ICMP协议

  • ICMP全称(Internet Control Message Protocol)Internet控制消息协议,是IP协议的辅助协议。

  • ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。

2.ICMP报文内容

Type Code 描述
0 0 Echo Replay
3 0 网络不可达
3 1 主机不可达
3 2 协议不可达
3 3 端口不可达
5 0 重定向
8 0 Echo Request

3.ICMP差错检测

  • ICMP Echo消息常用于诊断源和目的地之间的网络连通性,同时还可以提供其他信息,如往返时间等。

  • Ping命令:

    • Ping是网络设备、Windows、Unix、Linux平台上的一个命令,该命令基于ICMP协议。

    • Ping常用于检测网络的连通性。

1
2
3
4
5
6
7
8
9
10
11
12
PS C:\Users\Administrator> ping www.1024byteeeee.top

正在 Ping 1024-byteeeee.github.io [185.199.111.153] 具有 32 字节的数据:
来自 185.199.111.153 的回复: 字节=32 时间=78ms TTL=49
来自 185.199.111.153 的回复: 字节=32 时间=102ms TTL=49
来自 185.199.111.153 的回复: 字节=32 时间=76ms TTL=49
来自 185.199.111.153 的回复: 字节=32 时间=67ms TTL=49

185.199.111.153 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 67ms,最长 = 102ms,平均 = 80ms

4.ICMP错误报告

  • ICMP定义了各种错误消息,根据这些错误消息,我们可以判断数据传输失败的原因。

例子:

1
2
PS C:\Users\Administrator> tracert www.zheshiyigebucunzaidewangzhi.com
无法解析目标系统名称 www.zheshiyigebucunzaidewangzhi.com。
  • Tracert命令:

    Tracert命令基于报文头中的TTL值来逐跳跟踪报文的转发路径,Tracert是检测网络丢包和时延的有效手段,同时可以帮助管理员发现网络中的路由环路。

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
PS C:\Users\Administrator> tracert www.1024byteeeee.top

通过最多 30 个跃点跟踪
1024-byteeeee.github.io [185.199.109.153] 的路由:

1 <1 毫秒 <1 毫秒 <1 毫秒 192.168.0.1
2 1 ms 1 ms <1 毫秒 192.168.1.1
3 5 ms * 5 ms 100.64.0.1
4 * * * 请求超时。
5 6 ms * 5 ms 223.151.48.86
6 * * * 请求超时。
7 10 ms * * 61.137.8.173
8 * * * 请求超时。
9 * 18 ms 18 ms 202.97.89.202
10 * * * 请求超时。
11 108 ms 115 ms 109 ms 203.86.97.18
12 108 ms * 109 ms ae-3.r31.tokyjp05.jp.bb.gin.ntt.net [129.250.3.29]
13 108 ms 109 ms 108 ms ae-3.r00.tokyjp08.jp.bb.gin.ntt.net [129.250.6.129]
14 115 ms 114 ms 114 ms ae-1.fastly.tokyjp08.jp.bb.gin.ntt.net [61.200.82.50]
15 108 ms * 109 ms cdn-185-199-109-153.github.com [185.199.109.153]

跟踪完成。

Ⅴ - ARP和RARP

1.ARP的作用

  • ARP(Address Resolution Protocol)地址解析协议:

    用于实现从IP地址到MAC地址的映射,通过IP地址来查MAC地址,即询问目标IP对应的MAC地址

2.RARP的作用

  • RARP(Reverse Address Resolution Protocol)反向地址转换协议:

    根据MAC地址来查找IP地址,常用于无盘工作站,设备没有硬盘,无法记录IP,刚启动时发送一个广播,用MAC去2获取IP。需要一台RARP服务器,根据MAC地址查询服务器IP地址。

Ⅵ - TCP和UDP

1.传输层

  • TCP(传输控制协议)属于可靠面向连接的网络协议。

  • UDP(用户数据报协议)属于不可靠面向无连接的网络协议。

2.传输层协议

传输控制协议-TCP 用户数据报协议-UDP
面向连接 面向无连接
可靠传输 不可靠传输
流控及窗口机制 尽力而为的传输
适用TCP的应用
WEB浏览器,电子邮件,文件传输程序
适用UDP的应用
域名系统(DNS),视频应用,IP语音(VoIP)

3.TCP报文格式

TCP报文格式

4.UDP报文格式

UDP报文格式

5.端口号

  • 端口号用来区分不同的应用。

    协议 中文全称 默认端口号
    POP3 邮局协议版本v3 110
    SMTP 简单邮件传输协议 25
    Telnet 远程控制协议 23
    FTP 文件传输协议 21
    HTTP 超文本传输协议 80
    IMAP 因特网消息访问 143
    HTTPs HTTP安全协议 443
    DNS 域名解析 53
    DHCP 动态主机配置协议 67
    TFTP 简单文件传输协议 69
    SNMP 简单网络管理协议 161
    BGP 边界网关协议 179
    HSRP 热备份路由协议 1985
    RIP 距离矢量路由协议 520/521
    OSPF 开放最短路径优先 89
    IS-IS 中间系统到中间系统协议 124
    EGP 外部网关路由协议 8
    VRRP 虚拟路由冗余协议 112
    IGRP 动态距离矢量路由协议 9
    EIGRP 增强IGRP路由协议 88

6.TPC序列号及确认号

TCP序列号及确认号

7.TCP三次握手建立连接

TCP三次握手建立连接

8.TCP四次握手断开连接

TPC四次握手断开连接

9.TCP窗口机制

TCP窗口机制