网络层+数据链路层

网络层

IP协议

主机: 有IP,但不能进行路由控制
路由器: 有IP,也能进行路由控制
节点: 主机和路由器的统称

IP协议格式
在这里插入图片描述

网段划分:

网络号:标识两个互连的网段
主机号:同一网段内,主机之间网络号相同,主机号必须不同。

不同的子网就是把网络号相同的主机放在一起。

一般的路由器都带有DHCP技术,该技术自动给子网内新增主机分配IP

曾经有一种管理机制把所有的IP地址和网络号划分5类

A类 0+7位网络号+24位主机号
B类10+14位网络号+16位主机号
C类110+21位网络号+8位主机号
D类1110+28位多播组号
E类11110+27位 留待以后再用

由于以上方案会浪费掉大量的地址/主机号,针对这种情况提出了新的划分方案,称为CIDR划分子网。

  1. 引入一个额外的子网掩码来区分网络号和主机号
  2. 子网掩码也是一个32位的正整数,通常用一段0结尾
  3. 将IP地址和子网掩码进行按位与,得到的结果就是网络号= IP & 子网掩码
  4. 网络号和主机号的划分与IP地址类型无关
  5. 子网主机号位全0----全1范围之间

IP地址和子网掩码更简洁的表示方法:

140.255.20.68/24,表示IP地址位140.255.20.68
子网掩码高24位为全1,即255.255.255.0

特殊的IP地址

  1. 将IP地址的主机地址设为全0,就成了网络号,表示这个局域网
  2. 将IP地址的主机地址设为全1,就成了广播地址,用于向同一链路中所有主机发生数据。
  3. 127.*为环回测试地址 ,通常为127.0.0.1

私有IP和公网IP

10.* 前八位网络号,后24位Ip地址
172.16.*—172.31.*前12位网络号
192.168.*前16位网络号

  1. List item

一个路由器可以分配两个IP地址,一个WAN口IP,一个LAN口IP(子网IP)

  1. LAN口连接的主机,都属于到你跟前路由器的子网。
  2. 不同的路由器,子网IP都一样,192.168.1.1;子网内的主机IP地址不能重复,但子网之间的IP没什么联系
  3. 最外层WAN口IP就是一个公网IP,子网内的主机需要和外网进行通信时,路由器会把子网IP替换成WAN口IP ,这样层层替换,最终数据包中的Ip成为公网IP,这种技术称为NAT技术
  4. 我们希望自己实现的服务器程序,能够在外部的公网上访问,就必须有一个公网Ip,这个IP需要购买,因为IP地址短缺。

路由

路由的过程,就是一跳一跳问路的过程。

一跳:数据链路层的一个区间。在以太网中指从源MAC地址到达目的MAC地址之间数据帧的传输区间。

IP数据包的传输过程和问路相似。

1 当IP数据包到达路由器时,路由器先查看目的IP;
2 根据目的Ip 决定发送给下一个路由器还是目的主机
3 反复,直到发送给目的主机
这个过程需要查看路由表。

路由表可以用route命令查看,
在这里插入图片描述
若目的IP中了路由表,直接发送即可

数据链路层

MAC地址长度48位,2^48次方个,就用了吧。

一般用16进制 数字 + :的形式来表示。
eg: 08 : 00 : 27 : 03 : fb:19

Mac地址是通常是唯一的,有的也可以配置。
虚拟机中的MAC地址并不是真正的MAC地址

MTU:以太网中数据长度最小46字节,最大1500字节,数据不够长,就需要在后边补填充位eg:ARP数据包

最大值MTU称为以太网的最大传输单元,不同的网络类刑MTU不同。

如果数据大于MTU了 ,就会进行分片。

MTU会对IP协议产生影响。因为IP层不负责可靠传输。

MTU对UDP协议的影响:
一旦UDP携带的数据超过1472字节(1500 -20 IP -8 UDP)就会在网络层分成多个IP数据报;
丢失任意一个,在接收端口就会重组失败,如果在发送端网络层再分片,那么丢失数据的概率大大增加了。

MTU对TCP协议的影响:

TCP数据报也受制于MTU,TCP单个数据报最大消息长度称为MSS

TCP在建立连接的过程中,双方会进行MSS协商,

双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值,然后取最小的作为最终的MSS值。,MSS值在TCP首部的40字节选项中。kind=2;

即DATA = MSS

MTU 》= IP + MSS

ARP 协议

ARP协议介于数据链路层和网络层之间

ARP协议建立了主机IP地址和MAC地址映射关系

  1. 在网络通信时,应用程序必须直到目的主机的IP地址和端口号,却不知道目的主机的硬件地址MAC
  2. 数据包首先被网卡接收到,再去处理上层协议,如果接收到的数据包的硬件地址于本季不相符,则直接丢弃。
  3. 因此,通信前,必须知道目的主机的Mac 地址

ARP协议工作流程

1 源主机发出ARP请求,询问某个IP地址位的硬件地址,并将这个请求广播到本地网段,硬件地址填FF:FF:FF:FF:FF:FF表示广播,

2 当目的IP主机发现ARP请求时,就会将自己的Mac地址填写在应答包中。

3 每台主机都维护着一个ARP缓存表,可以用arp -a 命令查看,缓存表20分钟后过期。

DNS域名解析协议

因为IP+port 来确定一个主机上的一个程序,不好记忆。我们用一个字符串来描述主机名用hosts 文件描述主机名和IP地址关系

eg:www.baidu.com

.com :一级域名
baidu:二级域名
www:www只是一种习惯用法。来表示主机支持的协议

ICMP协议

网络层协议

ICMP功能:
1 确认IP包是否成功到达目的地址
2 通知发生IP包丢包的原因
3 ICMP只搭配IPv4 使用。IP v6 需要使用ICMP6

ICMP报文格式

类型 + 代码 + 校验和

ICMP分为两类报文
一类: 通知出错原因
二类:用于诊断查询

ping命令:
ping的是域名,而不是URL;域名可以通过DNS解析成IP

ping不仅能检查网络 ,还能统计响应时间和生存时间TTL

ping会先发送一个ICMP Echo Request给对端,
对端收到,回复一个ICMP Echo Reply

网络层不关注传输层的端口号

traceroute命令

基于ICMP协议实现,可以打印出可执行程序主机,一直到目标主机之前经历多少路由器。

NAT技术:
起因:解决Ipv4 不足;

方式,逐层更换IP为路由器IP,最终达到公网IP

NAT 技术缺陷;
1: 依赖路由表
2;无法从NAT外部向内部服务建立连接
3:转换表的生成和销毁都需要开销
4 通信过程一旦NA图设备异常,即使存在热备,所有TCP连接都会断开

发布了90 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44030580/article/details/104223965