- 交换机
- 作用: 组建局域网, 对以太网帧(frame)进行高速而透明的交换转发
- 定位: 第二层
- 特点: 用于同一网络内部数据的快速传输, 转发不需要修改数据帧, 工作简单,直接使用硬件处理
- MAC地址表: 一张记录着局域网主机端口MAC地址与交换机端口对应的表, 接收到数据帧以后,首先会记录数据帧中的源MAC地址和对应的到达端口到MAC表中(自学习)
- 工作过程:
- 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上
- 再去读取包头中的目的MAC地址,并在地址表中查找相应的端口
- 如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上
- 如果表中没有记录, 就广播出去, 所有与该交换机相连的交换机都能收到该数据帧, 匹配不成功依次广播…..匹配成功响应该数据帧并回复源MAC地址为自己的数据帧(不同于ARP协议)
- 对于单播帧, 将数据帧转发给对应的端口, 对于广播帧, 转发给所有端口
- 广播风暴: 原因是交换机成环, 同一个交换机上的两个端口直连. 以太交换机对广播包的处理,是不管从哪个端口收到广播包,都完整地复制一份转发到其他端口(除接收到的端口外)
- 路由器
- 定义: 路由器是一种具有多个输入端口和多个输出端口的专用计算机, 其任务是转发分组/数据包(packet)
- 作用:
- 抽象地说: 将由交换机组好的局域网相互连接起来, 或者接入Internet, 可以分割广播域, 此外交换机能做的,路由都能做
- 具体来说: 1.路由功能:收集网络拓扑信息并动态形成路由表. 2. 转发功能:根据转发表(FIB)转发IP数据包
- 定位: 第三层, 路由器的每个端口都有MAC地址,每个端口都可以配IP地址
- 特点: 转发需要修改 TTL ,IP 头部校验和需要重新计算,数据帧需要重新封装, 工作复杂,使用软件处理
- 过程:
- 丢弃网络包头部的源目MAC地址,因为MAC地址作用就是判断发给自己的标志, 既然自己已经收到了, MAC地址的任务此时就完成了
- 根据ip头部的目的ip地址在路由表中查询对应的记录, 根据网络号按照最长匹配的原则, 如果网络号相同,则选择跃点数最少的. 如果没有匹配的记录, 就转发给默认路由
- 由此找出了对应的接口和下一跳的ip地址, 然后更新IP头部中的TTL, 封装好IP包头
- 然后把源MAC地址设置为端口的MAC地址, 目的MAC地址是下一跳IP地址对应的MAC地址, 如果不知道的话可以使用ARP协议查
- 路由协议, 用来进行路径选择
- 静态路由协议
- 动态路由协议
- ARP协议/地址解析协议/Address Resolution Protocol
- 作用: 根据目的主机的IP地址,获得其MAC地址
- 定位: 在OSI模型中ARP协议属于链路层, 而在TCP/IP模型中,ARP协议属于网络层
- 过程:
- 局域网内的某个主机发送一个叫做arp请求的数据包, arp数据包也是被包含在以太网帧中的,发送时,帧头部中的目的mac地址填写为0xffffffff,表示在本地局域网上广播,这样属于该局域网的所有机器接收到一个广播帧的时候都会向协议栈递交这个帧中的数据包,而不会直接丢弃
- 局域网中的每台主机收到广播数据包之后都会和自己的ip地址比对一下, 仅当某台机器的IP地址与该arp请求中的要询问的ip地址相同时,那台机器就才会向发送方返回一个arp回应数据包,这个回应包中就包含了先前要询问的机器的IP地址 + MAC地址
- 本地主机接收到这个回应的arp数据包后,会提取ip地址和mac地址,记录到ARP缓存表的表项中,这样就把目的主机的ip地址和mac地址对应关系记录下来了
- ARP欺骗与中间人攻击, 把自己伪装成网关的MAC地址, 转发被攻击者的流量,实现监听,修改的目的
- DNS协议
- 作用: 将域名解析为IP地址
- 定位: 应用层协议, 使用53端口
- 过程:
- 使用UDP通过53端口向网络上发送一个DNS查询报文(使用UDP是因为数据量通常较小, 三次握手不划算,但是数据量大的时候也可以使用TCP)
- 经过一段时间后,用户主机上的 DNS 会收到一个主机名对应的 DNS 回答报文
- DNS服务器有三种,根DNS服务器, 顶级域(Top-Level Domain, TLD)DNS服务器 和 权威DNS服务器
- DNS缓存: 是由操作系统维护的临时数据库,它包含有最近网站的访问记录。
- HTTP协议/超文本传输协议/Hyper Text Transfer Protocol
- 请求
- 响应
- HTTP1.1, 1997发布,是现在使用最广泛的版本, 可以设置keepalive让http重用TCP连接
- HTTP2, 2015年发布,主要是提升安全性与性能, 使用TCP
- HTTP3, 2018年发布,基于谷歌的QUIC(Quick UDP Internet Connection),底层使用UDP协议
- HTTPS协议/Hypertext Transfer Protocol Secure
- 定义:
- SSL/Secure Socket Layer/安全套接层
- TLS/Transport Layer Security/ 安全传输层协议, 相当于SSL的后续版本
- ICMP协议/互联网控制消息协议/Internet Control Message Protocol
- 响应时间
- RTT(Round Trip Time), 从客户端发送一个很小的数据包到服务器并返回所经历的时间