Linux、Python、计算机网络中的常见知识点

简介: Linux、Python、计算机网络中的常见知识点

Linux知识

1、查看Linux服务器系统版本

cat  /etc/centos - release  # 通过查看文件

[root@nginx-kafka01 etc]# cat centos-release 
CentOS Linux release 7.6.1810 (Core)

2、查看Linux服务器系统内核版本

uname -r

[root@nginx-kafka01 etc]# uname -r
3.10.0-957.el7.x86_64

3、查看Linux内核版本及架构

uname -a

[root@nginx-kafka01 etc]# uname -a
Linux nginx-kafka01 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

4、查看Linux内核版本可以得到类似的更详细信息:

cat /proc/version

[root@nginx-kafka01 etc]# cat /proc/version
Linux version 3.10.0-957.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Thu Nov 8 23:39:32 UTC 2018

5、查看Linux内核里的限制参数

ulimit -a

6、查看Linux内核里存储的最大进程

ulimit -n

7、查看系统内核参数

systemctl -a

系统内核参数文件:/etc/sysctl.conf 修改内核参数文件(调优)

systemctl -p刷新生效,修改完配置文件之后。

8、cession和cookie的区别

session和cookie是做会话保持的,

cookie是将数据存放在客户的浏览器上,session是将数据存放在服务器上的。

python知识点

1、list和tuple的区别

list是可变的数据类型,tuple是不可变数据类型。

2、快速排序和冒泡排序(快速排序好好学)

快速排序方法的基本思想是:

  • 1.先从数列中取出一个数作为基准数。
  • 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
  • 3.再对左右区间重复第二步,直到各区间只有一个数。

3、set集合

把集合看做是一个只有key的字典,作用就是去重,集合的元素必须是可hash对象。

set和dict 唯一的区别仅仅在于有没有存储对应的value值。

4、装饰器

装饰器的本质就是闭包函数,只能装饰callable对象。想要添加功能,写在内函数之中,被装饰过 的函数不是原来的函数。

作用就是在不改变函数或者类的源代码基础上,添加额外的功能。

统计运行时间的装饰器、记录日志的装饰器。@ 函数名

网络安全知识

5、Tcp和udp的区别?

tcp 传输控制协议 :transmission control protocol:可靠的,稳定,速度慢,效率低

tcp协议是一种面向连接的、可靠的、基于字节流的传输层的通信协议。传输效率低。

UDP:用户数据报协议。是一种不可靠的、无连接的服务,传输效率高的协议。

qq、dhcp、dns使用的就是udp协议。

6、为什么tcp比udp更可靠?

TCP在建立连接的时候三次握手同步双方的序列号,确认号,窗口大小信息,是确认和重传的基础,传输的过程中,如果CheckSum的核验失败,丢包或者延时,发送端都会重传。

7、Tcp怎么保证可靠?

1、校验和

2、序列号

3、确认应答序列号

4、超时重传

5、连接管理:三次握手、四次挥手

6、流量控制

7、拥塞控制:滑动窗口

可靠体现在:有很多计时器:重传计时器、校验、需要确认。

8、Tcp在传输过程中,出现丢包,client端如何得知数据不完整?又是如何告诉server端出现问题的具体位置?

TCP在不可靠的网络上实现可靠的传输,必然会有丢包。TCP是一个“流”协议,一个详细的包将会被TCP拆分为好几个包上传,也是将会把小的封裝成大的上传,这就是说TCP粘包和拆包难题。

TCP协议本身确保传输的数据不会丢失完整性。如果在传输过程中发现数据丢失或数据包丢失,最大的可能性是在发送或接收程序的过程中出现问题。例如,服务器向客户端发送大量数据,并且发送频率非常高,因此发送链接中很可能会出现错误(1、程序处理逻辑错误;2、多线程同步问题;3、缓冲区溢出等)如果发送失败得不到处理,那么客户端收到得数据将少于理论数据,这将导致数据丢失与数据包丢失。这种现象,其实本质上来说不是丢包,也不是丢数据,只是因为程序处理有错误,导致有些数据没有成功地被socket发送出去。

常见的解决方案包括拆包、添加包头和发送组合包。如果服务器或客户端断开连接,一般会使用心跳测试。

心跳测试:每隔一段时间向服务器发送数据包。为了节省资源,通常会发送空数据包。如果发送失败表明套接字已断开,此时需要根据特定条件释放资源并重新连接。

9、具体是如何校验?用的什么方法?(对第8题的深入提问)

TCP校验和是一个端到端的校验和,由发送端计算,然后由接收端验证。其目的是为了发现TCP首部和数据在发送端到,接收端之间发生的任何改动。如果接收方检测到校验和有差错,则TCP段会被直接丢弃。

10、讲一下tcp的窗口?

活动窗口就是tcp中的一个缓存窗口,是基于ARQ协议开发的。tcp头部字段中有个16位窗口大小,用来处理滑动窗口。窗口就相当于缓存。

会有个地方专门的去记录在哪丢失,到时候直接发送发送丢失的那个包。

滑动窗口就是等待确认的,可以连续发送ack,连续发送是可靠了,速率也提升了。滑动窗口是成对存在的,有一个发送方的窗口和接收方的窗口。

11、讲一下三次握手的完整过程,包括对数据的检验,还有窗口的变化?

第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

12、对活动窗口的理解?

活动窗口就是tcp中的一个缓存窗口,是基于ARQ协议开发的。tcp头部字段中有个16位窗口大小,用来处理滑动窗口。窗口就相当于缓存。会有个地方专门的去记录在哪丢失,到时候直接发送发送丢失的那个包。

滑动窗口就是等待确认的,可以连续发送ack,连续发送是可靠了,速率也提升了。滑动窗口是成对存在的,有一个发送方的窗口和接收方的窗口。

17、信号和信号量有什么区别?

信号:(signal)是一种处理异步事件的方式。信号时比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程外,还可以发送信号给进程本身。

信号量:(Semaphore)进程间通信处理同步互斥的机制。是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。

11、查看路由表的命令

ip route

12、怎么查看资源利用率

windows中查看内存和带宽:任务管理器 +资源管理器+性能。

Linux中如何查看网络带宽:

cpu:内存、磁盘、网络带宽

top、ps -aux、free -m、dstat、glances、nethogs、ss、nc、namp

15、在哪一层可以看到TCP的包头

传输层

16、TCP包头有什么

TCP包头里面有的是:源端口16bit、目的端口16bit、序号:32bit、确认号:32bit、数据偏移:4bit、保留字段:6bit、紧急字段URG:1bit、确认字段:1bit、推送字段PSH:1bit、复位字段:1bit、同步字段SYN:1bit

终止字段FIN:1bit、窗口字段:16bit、校验和字段:16bit、紧急指针字段:16bit。

17、ip包头里面有什么

版本、TTL、协议号、源地址、目的地址、可选项、首部长度、优先级与服务类型、总长度、首部校验码、标识符、标志、段偏移量

18、OSI七层模型

是一个开放式的。 死记硬背

OSI:开发系统互联参考模型:7层 --没有实现的,只是参考

分层:功能

应(应用层)表(表示层)会(会话层)传往(网络层)树(数)屋(物):自上而下 设备与层的对应关系

                                                    数据格式                               协议                               设备

7应用层:网络服务与最终用户的一个接口 http、https、 ftp dns、tftp、smtp、snmp 计算机(7层都有)

6表示层:数据的表示、安全、压缩

5会话层:建立、管理、终止会话

4传输层--》段 --》 数据段:segment tcp udp 防火墙(7层都有)查看端口号

3网络层--》往 -->抓包: ip包,数据包:packet ip icmp、igmp、arp、rarp、ospf 路由器

2数据链路层 --》 --》 数据帧。帧:frame 交换机

1物理层-->屋 ——》 传输比特流 网卡、网线、光纤

19、在用户点击URL为http://www.sxtyu.com/index.html的链接后,浏览器和Web服务器执行以下动作:简单流程或者访问www.baidu.com 背后发生了什么?从封装来讲

① 浏览器先分析超链接中的URl

② 浏览器向DNS请求解析http://www.sxtyu.com/index.html中的ip地址。

③ DNS将解析出的IP地址202.2.16.21返回浏览器

④ 浏览器与服务器建立TCP连接(80端口):三次握手

⑤ 浏览器请求文档:GET/index.html

⑥ 服务器给出响应,将文档index.html发送给浏览器

拿到文档之后进行解封装:

⑦ 释放TCP连接(四次断开)

⑧ 浏览器显示index.html中的内容。(渲染,等待服务器timeout)

老版是⑦⑧,新版是⑧⑦。

20、如果访问不了www.baidu.com,可能是什么原因?/为什么ping别人的机器ping不通?

解决思路:

首先,物理层面 :检查一下网线,路由器(光猫)是不是使用正常(ping 网关)。

ping一下自己的网关,如果不能ping通。

那就是自己的问题,需要去检查一下自己的配置文件的etc/sysconfig/network-scripts/ens33文件。

如果能ping通网关,但是还是访问不了。那就很可能:

①是DNS域名解析的问题。

②中间运营商问题。

③ 百度服务器本身的问题。如果是百度服务器本身的问题,就不能干预。

思路:1、分段排查   2、替换法

就比如举例:比如一个客户去访问百度为什么会访问不了,访问百度的时候非常卡、慢、访问不了。

思路:1、分段排查 2、替换法

内部的连通为:client -无线路由器---电信的网络----机房----server

从client到server的非常卡、慢、访问不了 。

先排查客户到无线路由器这段有没有问题:

首先,先让用户看看ip地址是否正确,如果正确,让客户去访问其他网站(jd.taobao)试试看。

如果访问不了的情况就是:可能就是用户自己的网络有问题,网线、路由器等的问题。

如果访问其他网站可以访问,那就是百度服务器本身的问题,那我们就不能干预。

可能是服务器网络崩了等情况,此时的服务器需要去查看自己的cpu、内存、带宽使用、磁盘IO等。使用top、ps -aux 、dstat、glances、nethogs等命令去查看。

21、 比如可以打开qq,但是打不开网页的情况。

那就是dns域名解析的问题。

dns解析的流程:访问浏览器端,首先的dns域名解析,先去浏览器上的缓存上面查找,如果没找到再去本机中本地的hosts文件中,windows中的在一个host文件中,Linux的在/etc/hosts文件中。

相关文章
|
6月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
6月前
|
运维 监控 数据可视化
Python 网络请求架构——统一 SOCKS5 接入与配置管理
通过统一接入端点与标准化认证,集中管理配置、连接策略及监控,实现跨技术栈的一致性网络出口,提升系统稳定性、可维护性与可观测性。
|
7月前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
7月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
201 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
8月前
|
数据采集 存储 数据可视化
Python网络爬虫在环境保护中的应用:污染源监测数据抓取与分析
在环保领域,数据是决策基础,但分散在多个平台,获取困难。Python网络爬虫技术灵活高效,可自动化抓取空气质量、水质、污染源等数据,实现多平台整合、实时更新、结构化存储与异常预警。本文详解爬虫实战应用,涵盖技术选型、代码实现、反爬策略与数据分析,助力环保数据高效利用。
431 0
|
8月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
544 18
|
8月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
396 5
|
9月前
|
网络协议 Linux 开发者
深入Linux中UDP网络通信机制编程探索
以上步骤概述了Linux中UDP网络通信的编程机制。在实现时,因关注细节和上下文环境可能有所调整,但大致流程是一致的。这些知识片段旨在帮助开发者快速上手Linux下的UDP编程,并提供可靠的信息作为编程的基础。在编程实践中,应结合实际业务需求,设计合适的数据传输协议,确保数据的正确性和实时性。
210 0
|
9月前
|
Web App开发 网络协议 Linux
【Linux】网络基础
TCP/IP五层模型是网络通信的基础框架,将复杂的数据传输过程分为物理层、数据链路层、网络层、传输层和应用层,每层各司其职,协同完成远程通信。该模型确保了不同设备和网络之间的互联互通,是现代互联网运行的核心机制。
937 5
|
9月前
|
机器学习/深度学习 算法 量子技术
GQNN框架:让Python开发者轻松构建量子神经网络
为降低量子神经网络的研发门槛并提升其实用性,本文介绍一个名为GQNN(Generalized Quantum Neural Network)的Python开发框架。
203 4
GQNN框架:让Python开发者轻松构建量子神经网络