计算机网络——网络层协议

TCP/IP的心脏是网络层。这一层主要由IP和ICMP协议组成。

IP

IP即网际协议。
IP协议主要完成终端节点之间的通信。(配有ip地址的设备叫做主机,配有ip地址还有路由转发功能的叫做路由器,节点时主机和路由器的统称)。
IP大致可分为三个模块,寻址、路由、IP分包和组包。
网络层地址:IP地址。
路由的功能可以简单叙述为根据目的IP地址和路由表找到下一跳IP地址。
源主机到目标主机之间会有很多路由器,通过路由器进行一站一站的转发ip数据包。

IP地址

IPv4由32位二进制的正整数表示,每8位分为一组,分成四组,再将每组数转换为十进制数。
IP地址由网络号和主机号构成。
网络号在数据链路的每个段都要配置不同的值,同一个段中的主机地址要不同。通过子网掩码来区分网络号和主机号。
IP地址分类
IP地址分为四个级别,分别为A、B、C、D、E类。
A类:前一位为0,0.0.0.0-127.255.255,前8位为网络地址,其中段0和127不可用
B类:前两位为10,128.0.0.0-191.255.255.255,前16位为网络地址
C类:前三位为110,192.0.0.0-223.255.255.255,前24位为网络地址
D类:前四位为1110,224.0.0.0-239.255.255.255,前32位为网络地址,不过1110后是多播组号,D类地址往往用来组播
E类:前,五位为11110,240.0.0.0-255.255.255.255,其中段255不可用,为保留地址
广播地址
把主机号的位置都改成1那么就是广播地址。例如网段192.168.0.0/24的广播地址是192.168.0.255
本地广播的消息只能在同一个逻辑子网内广播,路由器可以隔绝本地广播。

子网掩码

网络号相同的计算机要存在同一链路中。一个B类的网络中链路中允许存在6万5千多台计算机,但是事实上是不可能的,直接使用ABC确实非常浪费。同时当出现广播后再同一条链路内会充斥着大量的数据帧,引起网络拥堵。所以利用子网掩码对IP地址进行更细致的划分,形成细粒度更小的网络。

IP首部

这里写图片描述
版本:4bit构成,如果是ipv4就是4
首部长度:长度为4bit,单位为4字节。
区分服务:由8bit构成,用来表名服务质量。但是现在网络几乎会忽视这个字段,不过有人提出将TOS字段划分成DSCP和ECN。ECN来通告网络拥堵。
总长度:首部和数据的长度,16比特,所以ip包最长65535字节
标识:用于分片重组id
标志:表示被分片的相关信息
片偏移:表示分片的每一个分段相对于原始数据的偏移位置
生存时间TTL:可以中转多少个路由器,每中转一次减一
协议:上层协议类型
首部校验和:只校验ip数据包首部
源地址:发送端IP地址
目标地址:接收端IP地址
可选项:长度可变通常在进行实验和诊断时用
填充
数据

路由控制

IP协议始终认为路由表是正确的,IP协议建立在路由表的基础上工作。
IP协议根据ip地址和路由表查询到下一个跳的ip。如果是直连路由,就说明目的在路由器某个接口的同一链路上,那么下一跳地址则是目的ip地址。
取得下一跳的ip地址后再交由地址解析协议和链路层处理。然后转发到下一跳的位置。
在进行路由表匹配路由时,选择最吻合的路由条目。
默认路由
0.0.0.0/0则是默认路由,如果在路由表中找不到匹配的路由信息,就按默认路由进行转发。
环回地址
127.0.0.1是环回地址,就是指的本节点。
路由表聚合
当几条路由信息都转发到同样的节点,那么对这几条路由表进行聚合。
例如下面两条路由信息:
192.168.2.0/25 路由器A
192.168.2.128/25 路由器A
则可以聚合成一条
192.168.2.0/24 路由器A

IP报文分片和重组

MTU称为数据链路层的最大传输单元。每种数据链路层的MTU都不尽相同。
例如以太网的MTU为1500,而IP数据报的大小为4320,那么就要分成三片,路由器只做分片但不做重组,重组由目标主机进行。

路径MTU发现

分片会增加路由器的处理负载,但是由于链路层的限制不得不进行分片。一旦某个分片丢失,会造成整段数据的报废,所以尽量做到不分片。路径MTU则是从发送端主机到接收端主机不需要分片的最大MTU的大小。
路径MTU发现主要利用了IP首部中的标志位,标志成不进行分片,当遇到比该包小的MTU时,那么通过ICMP返回大可达消息,同时将该MTU返回,然后将数据包进行分片,知道不用分片,那么以后发送端就用这个MTU进行分片,中间的路由器就不用进行分片操作,这是针对UDP的操作,如果是tcp协议,在传输层就将MSS设置成路径MTU,那么IP层就不需要进行分片。

ARP

ARP称为地址解析协议,在网络层是根据ip进行寻址路由。在底层数据链路层则需要根据MAC地址进行寻址。
ARP协议根据目标IP地址定位下一个设备的MAC地址。
ARP只适合IPv4,而IPv6中采用ICMPv6来代替ARP发送邻居带锁消息。
工作机制
主机通过广播发送一个arp请求包。
广播的包被链路层的所有节点拿到并拆封得到目标ip地址。如果目标ip地址与自己的一致,那么就将自己的MAC地址塞入arp响应返回给原主机。这样就获取到了下一跳的mac地址。
ip和mac地址的映射会被节点缓存起来,防止大量arp包在网络泛洪,同时这个缓存也有过期时间,防止mac地址和ip地址对应关系发生变化。

ICMP

ICMP叫做互联网控制消息协议。
ICMP功能包括确认IP包是否成功送达目标地址,通知发送过程ip包被丢弃的原因,改善网络设置等。
在IP通信中如果某一个ip包应为某种原因未能到达目标地址,那么这个具体的原因将由ICMP负责通知。

DHCP

DHCP是为了自动设置IP地址、统一管理IP地址分配。在使用DHCP之前需要架设一台DHCP服务器,将DHCP所需要设置的IP地址设置到服务器上,以及子网掩码、路由控制信息等。当客户端向服务器发起DHCP请求,服务器响应DHCP包给客户端分配ip地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值