• 面试大全总结


    1、tcp/ip协议是四层,Osi是七层模型:物-数-网-传-会-表-应;先有tcp/ip协议,现有osi模型;

    tcp位于传输层,ip位于网络层;

    2、查一个系统里面进程消耗cpu前十的命令:ps aux|head -10;

    3、三次握手,四次挥手:

    (1)三次握手:

    第一次握手:
    Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
    第二次握手:
    Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
    第三次握手:
    Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

    (2)四次挥手:

    第一次挥手:
    Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。

    第二次挥手:
    Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。

    第三次挥手:
    Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。

    第四次挥手:
    Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

    4、python包与模块的区别:

    (1)包是一个有层次的文件目录结构,它定义了由n个模块或n个子包组成的python应用程序执行环境。

    通俗一点:包是一个包含__init__.py 文件的目录,该目录下一定得有这个__init__.py文件和其它模块或子包。

    (2)模块是:自我包含并且有组织的代码片段为模块。
    表现形式为:写的代码保存为文件。这个文件就是一个模块。sample.py 其中文件名smaple为模块名字。

    python模块的每一个包中,都有一个__init__.py文件(这个文件定义了包的属性和方法)然后是一些模块文件和子目录,假如子目录中也有 __init__.py 那么它就是这个包的子包了。当你将一个包作为模块导入(比如从 xml 导入 dom )的时候,实际上导入了它的 __init__.py 文件。

    (3)一个包是一个带有特殊文件 __init__.py 的目录。__init__.py 文件定义了包的属性和方法。其实它可以什么也不定义;

    可以只是一个空文件,但是必须存在。

    如果 __init__.py 不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入或者包含其它的模块和嵌套包。

  • 相关阅读:
    使用 Terraform 在阿里云上快速部署 MQTT 集群
    Neuron Newsletter 202206|新增 1 个南向驱动、开源前端代码
    EMQX Cloud 更新:日志分析增加更多参数,监控运维更省心
    os:systemctl文档(四)systemd.unit
    教育:中国孩子缺失的教育
    os:apt sources.list文件说明
    asm:80x86寄存器详解(转载)
    asm:gdb资源集合(linux)
    asm: gdb 文档(gdb调试工具)
    书法:书法的理解
  • 原文地址:https://www.cnblogs.com/haoxinchen/p/8862278.html
Copyright © 2020-2023  润新知