Linux性能优化实战
- 33 | 关于 Linux 网络,你必须知道这些(上)
- 如何提高系统并发?(8条)
- 如何理解分布式?
- 如何理解云计算?
- 如何理解微服务?
- TCP/IP 网络栈如何分层?每一层的功能是什么?
- 网络包的封装结构是什么?
- 如何理解MTU?
- Linux的IP网络栈是什么?
- 应用程序如何通过系统调用和套接字进行交互?
- Linux如何首发网络包?
- 如何理解网络传输中的中断不均?
33 | 关于 Linux 网络,你必须知道这些(上)
如何提高系统并发?(8条)
负载均衡。(Nginx)
服务横向扩展。
异步编程。
多进程多线程。
缓存机制。
优化服务处理速度。(业务功能服务或数据库服务。)
消息队列解耦合。
微服务架构。
如何理解分布式?
如何理解云计算?
如何理解微服务?
TCP/IP 网络栈如何分层?每一层的功能是什么?
应用层:提供应用程序,比如HTTP,FTP,DNS等。
传输层:应用程序到应用程序(通过端口唯一标识物理机上的应用程序)的通信。TCP,UDP等。
网络层:物理机到物理机(通过IP地址唯一标识物理机)的通信,IP,ICMP等。
网络接口层:网络包在物理网络中的传输,网线,网卡等。
网络包的封装结构是什么?
如何理解MTU?
MTU由数据链路层限制,网络包大小超过MTU,由网络层IP进行分片。
Linux的IP网络栈是什么?
应用程序如何通过系统调用和套接字进行交互?
Linux如何首发网络包?
网络帧到达网卡 —>
网卡通过DMA将网络帧放到接收队列 -->
硬中断为网络帧分配内核数据结构(sk_buff)并拷贝到sk_buff缓冲区–>
硬中断结束–>
软中断内核线程启动,从sk_buff缓冲区取出网络帧并通过网络协议栈解析网络帧–>
解析到传输层,传输层将数据拷贝到socket接收缓存–>
应用程序通过socket接口读取到数据。