TCP/IP协议通常分为四层:应用层,传输层,网络层,网络接口层
网络接口层的传输单位是帧,网络层的传输单位是包,传输层的传输单位是段,应用层的传输单位是报文
1、应用层:HTTP、DNS、FTP
(应用层工作在操作系统中的用户态,其他层在内核态)
2、传输层:TCP、UDP
3、网络层:IP
iPv4协议,IP的地址为32位,分成4段,每段8位。同时IP地址还分为网络号与主机号,网络号用于区分IP地址属于哪个子网,
主机号为为了区分属于哪个子网下的哪个主机。
网络号:将IP地址与子网掩码进行按位与的操作,即可得到网络号;
主机号:将子网掩码取反,然后与IP地址按位与操作,即可得到主机号。
如何获取IP地址?
首先访问本地缓存,查找域名对应的IP地址,如果没有则查询本地的DNS服务器,如果还没有就询问根域服务器,依次查询COM或者CN服务器。
4、网络接口层
会给数据包加上MAC地址,MAC地址包含48位接收方地址和48位的发送方地址,和16位的协议类型
协议类型为:0800IP协议和0806ARP协议
4.1 MAC 发送方和接收方地址如何确认?
发送方的MAC地址在网卡上的ROM里,直接读取即可
接收方的MAC地址通过ARP协议在以太网中广播,同时操作系统会把查询结果放到ARP缓存的内存空间中
Linux 查询ARP缓存: arp -a
5、网卡
网卡驱动获取数据包后会将数据包复制到网卡的缓存区,并在数据包的首尾加上报头和校验序列
报头用来标记数据包的的起始位置,校验序列用来检测错误
然后网卡将数字信号转换为电信号发送出去
6、交换机
交换机将电信号转换为数字信号,并对数据包末尾的校验序列进行校验错误
然后查询交换机本身的MAC地址表,查询是否有接收方MAC地址。
MAC地址表包含MAC地址和端口号,当交换机接收到数据包时,MAC地址表会记录发送方MAC地址和接收的端口号。
当查询到对应的MAC地址时,则从对应的端口号将数据包发送出去。
如果没有查询到,交换机会将数据包发送到除了源端口的所有端口
MAC 地址中的 FF:FF:FF:FF:FF:FF
IP 地址中的 255.255.255.255
7、交换机与路由器的区别
交换机是二层网络设备,基于以太网设计的,交换机的端口没有MAC地址
路由器是三层网络设备,基于IP设计的,路由器的每个端口都有MAC地址
8、路由器
路由器将收到的电信号转换为数字信号,看是否是发给自己的,如果是则保存到缓存区,不是则丢掉。
路由器去掉MAC地址,对照路由表,路由表中的子网掩码与,目标IP地址进行与操作。
查询对应的网关,如果为空则到达终点;如果有IP地址,则继续通过ARP协议查询MAC地址,并进行转发操作