OSI七层参考模型
HTTP协议
应用层协议: HTTP协议, SSH协议
应用层想建立通信, 先阻塞, 调内核, 告诉内核想和谁通信
传输控制层, 如果是TCP协议, 制作一个握手的包, 制作之后阻塞, 调网络层
网络层触发路由条目判定, 拿着目标的IP地址, 从路由表(有网络层就有路由表)去找, 从哪个口出去合适(找到哪个下一跳合适), 调链路
链路层根据你要下一跳的IP地址, 通过ARP协议, 获取MAC地址, 有了映射之后, 封了一个数据包 {源端口号->目标端口号 源IP地址->目标IP地址 源MAC地址->目标MAC地址} 三层完成寻址
- arp广播, 可获得目标MAC地址
- 每一跳MAC地址都会改变, 目标IP地址不变
- 交换机衔接同一网络, 两层, 没有路由表
- 路由器衔接不同网络, 三层, 有路由表, 可以做路由转发和判定
高并发负载均衡:
tomcat为什么慢?
是应用层, 要走很多层
LVS负载均衡服务器为什么快, 数据包级别, 没有七层, 要求后端服务器是镜像的
LVS四层, Nginx七层
一层lvs hold住流量(流量负载层) 一层nginx hold住握手(接入层,接到后边tomcat)
负载均衡两块网卡, VIP虚拟网课, DIP分发网卡
方案一慢, D-NAT(基于三层,换ip): 保证去回的IP能对应 非对称 去的时候赛车,回来的时候变卡车 能力有限
方案二快, DR(基于二层,换mac): 直接路由模型 MAC欺骗 企业用得最多的
- 路由器有两个地址, 一个内网地址, 一个公网地址
- 私有地址解决IP地址不够用问题, 不会出现在互联网上
- S-NAT: (源地址)路由器修改1.8和1.6的端口号,
- 上边图: VIP->RIP
公开课
1.和百度建立连接 : 应用层 走的是HTTP协议
2.发送get请求 / 根目录,主页
3.查看响应
https://blog.csdn.net/pashanhu6402/article/details/96428887
服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接。在这时如果有个客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。
共同开辟资源
每个socket都能开65536个端口
AC只占用一个端口
一个
多层映射, 唯一路径
抓包
监听
不可被分割的对小粒度: 三次握手->数据传输->四次挥手
LVS四层 高并发负载均衡器 不能随便发包
三次握手, 传输控制层做第一个包, 阻塞住, 给网络层, 网络层给链路层
IP地址:点分字节,0-255
掩码: ip和11111100按位与,得到网络号192.168.150.0, 前三字段,
网关: 链路层下一跳的地址
DNS: 域名解析
路由表
局域网不用走网关
下一跳
链路层再封一层MAC地址
软件是工程学, 层与层是依赖的
先有arp, 再有三次握手
arp协议
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
iconfig lo:3 192.168.88.88/24
跳板机