主要功能:
-
寻址和路由选择
-
建立和维护连接
-
差错和纠错功能
-
流量和拥塞控制
-
数据分片和重组技术
网络层协议
IP 协议
IPv4:32bits, a,b,c,d,0~255。有数字划分规范,ABCD类。
IPv6:128bits, 能解决IPv4网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。
网络(子网)掩码:它用来指明一个
类别 | 子网掩码的二进制数值 | 子网掩码的十进制数值 |
---|---|---|
A | 11111111 00000000 00000000 00000000 | 255.0.0.0 |
B | 11111111 11111111 00000000 00000000 | 255.255.0.0 |
C | 11111111 11111111 11111111 00000000 | 255.255.255.0 |
网络地址:子网掩码与IP地址按位与运算后的地址
CIDR划分法:用于给一些特定区域内的用户分配IP地址以及在互联网上有效地路由IP数据包的对IP地址进行归类的方法。用于弥补A类的浪费和BC的膨胀不足。
eg: 128.14.35.7/20 = 10000000 00001110 00100011 00000111
即前20位是网络前缀,后12位是主机号,那么我们通过令主机号分别为全0和全1就可以得到一个CIDR地址块的 最小地址和最大地址,即
最小地址是:128.14.32.0 = 10000000 00001110 00100000 00000000 最大地址是:128.14.47.255 = 10000000 00001110 00101111 11111111 子网掩码是:255.255.240.0 = 11111111 11111111 11110000 00000000
IP报头格式:
-
版本(Version):4bits ,有IPv4和IPv6这两个版本。
-
报头长度(Header Length):4bits ,表示 IP报文头部的长度,以32比特(4字节)为单位递增,该字段的最小值为5
-
服务类型(Type of Service):8bits。该字段指出应该如何处理数据报文。
-
总长度(Total Length):16bits,表示该IP报文的总大小,包括报头和携带的数据。
-
标识(Identification):16bits,唯一标识原始IPv4数据包的数据分片。
-
标志位(Flag):3bits,主要用于指出是否进行分片以及是否有更多分片。
-
分片偏移(Fragment Offset):13bits,当一个报文过大不能够在一个数据帧中传输时,可以使用分片和重组功能,这里主要是用于表示偏移量,即将一个报文分开封装,分别发出,到达目的地再根据偏移量进行重组。
-
存活时间(Time To Live,TTL):8bits,表示报文在网络中可以生存的时间,当计时器到期时该报文将被网络丢弃。
-
协议(Protocol):8bits,标识承载数据使用什么协议
-
报头校验和(Header Checksum):16bits,是对报头进行循环冗余校验(CRC)的结果
-
源 IP地址(Source Address):32bits,表示发送者的 IP地址
-
目的 IP地址(Destination Address):32bits,表示接收者的 IP地址
-
选项(Options):用于安全、测试等目的。
-
填充(Padding):长度可变。
地址解析协议(ARP):
前置:每台设备包括路由器都安装了独一对以太网卡。在经过路由器传输时涉及到两种网络,需要封装一层链路层上的网卡地址用于记录经过的路由器和操作状态等,作为硬件层面的标识。
以太网头部:
APR协议:
通过广播自己的地址,接受到的每个主机/路由器都会检查 ARP 请求包中的信息,如果 ARP 请求包中的目标 IP 地址
和自己的相同,就会将自己主机的 MAC 地址写入响应包返回主机 A。
PS:在Ipv6中已经被邻居发现协议(NDP)替代。
ICMP协议
主要功能:
-
确认IP包是否成功到达目标地址
-
通知在发送过程中IP包被丢弃的原因
DHCP协议