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

相关文章
|
16天前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
57 18
|
5月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
372 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
14天前
|
调度 Python
探索Python高级并发与网络编程技术。
可以看出,Python的高级并发和网络编程极具挑战,却也饱含乐趣。探索这些技术,你将会发现:它们好比是Python世界的海洋,有穿越风暴的波涛,也有寂静深海的奇妙。开始旅途,探索无尽可能吧!
45 15
|
25天前
|
Linux 数据安全/隐私保护
使用Linux命令行接入无线网络Wi-Fi的示例。
现在,你已经使用命令行成功地连接到 Wi-Fi 网络了。这两个示例涵盖了用 `nmcli` 和 `wpa_supplicant` 连接无线网络的常见场景,让你能够不依赖图形化界面来完成这个任务。在日常使用中熟练掌握这些基本操作能增强你对 Linux 系统的理解,帮助你更有效地处理各种问题。
57 12
|
2月前
|
数据采集 存储 监控
Python 原生爬虫教程:网络爬虫的基本概念和认知
网络爬虫是一种自动抓取互联网信息的程序,广泛应用于搜索引擎、数据采集、新闻聚合和价格监控等领域。其工作流程包括 URL 调度、HTTP 请求、页面下载、解析、数据存储及新 URL 发现。Python 因其丰富的库(如 requests、BeautifulSoup、Scrapy)和简洁语法成为爬虫开发的首选语言。然而,在使用爬虫时需注意法律与道德问题,例如遵守 robots.txt 规则、控制请求频率以及合法使用数据,以确保爬虫技术健康有序发展。
242 31
|
1月前
|
安全 Ubuntu Linux
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
66 0
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
|
2月前
|
存储 监控 算法
基于 Python 哈希表算法的局域网网络监控工具:实现高效数据管理的核心技术
在当下数字化办公的环境中,局域网网络监控工具已成为保障企业网络安全、确保其高效运行的核心手段。此类工具通过对网络数据的收集、分析与管理,赋予企业实时洞察网络活动的能力。而在其运行机制背后,数据结构与算法发挥着关键作用。本文聚焦于 PHP 语言中的哈希表算法,深入探究其在局域网网络监控工具中的应用方式及所具备的优势。
85 7
|
2月前
|
存储 数据库 Python
利用Python获取网络数据的技巧
抓起你的Python魔杖,我们一起进入了网络之海,捕捉那些悠游在网络中的数据鱼,想一想不同的网络资源,是不是都像数不尽的海洋生物,我们要做的,就是像一个优秀的渔民一样,找到他们,把它们捕获,然后用他们制作出种种美味。 **1. 打开魔法之门:请求包** 要抓鱼,首先需要一个鱼网。在Python的世界里,我们就是通过所谓的“请求包”来发送“抓鱼”的请求。requests是Python中常用的发送HTTP请求的库,用它可以方便地与网络上的资源进行交互。所谓的GET,POST,DELETE,还有PUT,这些听起来像偶像歌曲一样的单词,其实就是我们鱼网的不同方式。 简单用法如下: ``` im
76 14
|
3月前
|
Ubuntu Linux
Linux系统管理:服务器时间与网络时间同步技巧。
以上就是在Linux服务器上设置时间同步的方式。然而,要正确运用这些知识,需要理解其背后的工作原理:服务器根据网络中的其他机器的时间进行校对,逐步地精确自己的系统时间,就像一只犹豫不决的啮齿动物,通过观察其他啮齿动物的行为,逐渐确定自己的行为逻辑,既简单,又有趣。最后希望这个过程既能给你带来乐趣,也能提高你作为系统管理员的专业素养。
322 20
|
3月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
217 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能