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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 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文件中。

相关文章
|
13天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
64 4
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
1月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
285 55
|
2月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
109 2
|
2月前
|
Python
Python中的异步编程:使用asyncio和aiohttp实现高效网络请求
【10月更文挑战第34天】在Python的世界里,异步编程是提高效率的利器。本文将带你了解如何使用asyncio和aiohttp库来编写高效的网络请求代码。我们将通过一个简单的示例来展示如何利用这些工具来并发地处理多个网络请求,从而提高程序的整体性能。准备好让你的Python代码飞起来吧!
112 2
|
2天前
|
安全 Ubuntu Linux
Linux重要知识点
掌握以上Linux重要知识点可以帮助你高效地使用和管理Linux系统。这些知识不仅在日常使用中非常重要,而且在系统维护、网络配置和安全管理等方面也非常关键。通过不断实践和深入学习,可以进一步提高对Linux系统的理解和掌握。
37 22
|
1月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
188 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
18天前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
67 15
|
30天前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。
|
20天前
|
算法 网络协议 Python
探秘Win11共享文件夹之Python网络通信算法实现
本文探讨了Win11共享文件夹背后的网络通信算法,重点介绍基于TCP的文件传输机制,并提供Python代码示例。Win11共享文件夹利用SMB协议实现局域网内的文件共享,通过TCP协议确保文件传输的完整性和可靠性。服务器端监听客户端连接请求,接收文件请求并分块发送文件内容;客户端则连接服务器、接收数据并保存为本地文件。文中通过Python代码详细展示了这一过程,帮助读者理解并优化文件共享系统。
|
23天前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
158 7