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文件中。

相关文章
|
6天前
|
机器学习/深度学习 人工智能 算法
【乐器识别系统】图像识别+人工智能+深度学习+Python+TensorFlow+卷积神经网络+模型训练
乐器识别系统。使用Python为主要编程语言,基于人工智能框架库TensorFlow搭建ResNet50卷积神经网络算法,通过对30种乐器('迪吉里杜管', '铃鼓', '木琴', '手风琴', '阿尔卑斯号角', '风笛', '班卓琴', '邦戈鼓', '卡萨巴', '响板', '单簧管', '古钢琴', '手风琴(六角形)', '鼓', '扬琴', '长笛', '刮瓜', '吉他', '口琴', '竖琴', '沙槌', '陶笛', '钢琴', '萨克斯管', '锡塔尔琴', '钢鼓', '长号', '小号', '大号', '小提琴')的图像数据集进行训练,得到一个训练精度较高的模型,并将其
19 0
【乐器识别系统】图像识别+人工智能+深度学习+Python+TensorFlow+卷积神经网络+模型训练
|
2天前
|
存储 Java 网络安全
如何使用Python批量连接网络设备?
【7月更文挑战第4天】
12 1
如何使用Python批量连接网络设备?
|
1天前
|
数据采集 存储 API
在信息时代,Python爬虫用于自动化网络数据采集,提高效率。
【7月更文挑战第5天】在信息时代,Python爬虫用于自动化网络数据采集,提高效率。基本概念包括发送HTTP请求、解析HTML、存储数据及异常处理。常用库有requests(发送请求)和BeautifulSoup(解析HTML)。基本流程:导入库,发送GET请求,解析网页提取数据,存储结果,并处理异常。应用案例涉及抓取新闻、商品信息等。
11 2
|
2天前
|
网络协议 安全 Ubuntu
7 个有用的免费 Linux 网络隧道
【7月更文挑战第4天】
12 0
7 个有用的免费 Linux 网络隧道
|
8天前
|
IDE Linux 数据处理
探索Linux中的`pydoc`命令:Python文档生成器的力量
`pydoc`是Linux上Python的文档生成和查看工具,尤其对数据科学家有价值。它从docstring生成模块、函数和类的文档,提供快速API参考。主要特点包括易用性、支持标准库和第三方库、跨平台。命令行示例:`pydoc pandas` 查看库文档,`pydoc numpy.array` 查看类详情,`pydoc -k 关键字` 进行搜索。使用时注意正确安装Python,编写清晰的docstring,并结合IDE以提升效率。
|
1天前
|
网络协议 Linux 开发工具
配置Linux固定IP地址,为什么要固定IP,因为他是通DHCP服务获取的,DHCP服务每次重启都会重新获取一次ip,VMware编辑中有一个虚拟网络编辑器
配置Linux固定IP地址,为什么要固定IP,因为他是通DHCP服务获取的,DHCP服务每次重启都会重新获取一次ip,VMware编辑中有一个虚拟网络编辑器
|
1天前
|
算法 网络协议 Shell
掌握Linux网络:深入理解TC —— 你的流量控制利器
目前需要做一款关于Linux下对于某IP限制的一个工具(QOS),在网上寻找了许多关于TC的教程,大多数都是一些比较基础的教学,且多数都是对网口的一些限制,然后自己研究了一段时间,最后有一些小小的了解,故在此分享给大家。
|
3天前
|
监控 网络协议 安全
Linux基本指令之网络通信命令
Linux基本指令之网络通信命令
|
3天前
|
算法 Java Linux
python中的面试常考知识点
python中的面试常考知识点
|
3天前
|
域名解析 网络协议 Linux
linux网络-- 手动配置ip地址
linux网络-- 手动配置ip地址