• Python学习笔记之 网络编程(理论部分)


    网络编程基础(理论部分)

    计算机网络功能主要包括实现资源共享,实现数据信息的快速传递

    OSI七层模型

    制定组织:ISO(国际标准化组织)

    作用:使网络通信工作流程标准化

    应用层:提供用户服务,具体功能由应用程序实现

    表示层:数据的压缩优化加密

    会话层:建立用户级的连接,选择适当的传输服务

    传输层:提供传输服务

    网络层:路由选择,网络互联

    链路层:进行数据交换,控制具体数据的发送

    物理层:提供数据传输的硬件保证,网卡接口,传输介质

    优点

    1. 建立了统一的工作流程
    2. 分部清晰,各司其职,每个步骤分工明确
    3. 降低了各个模块间的耦合度,便于开发

    四层模型(TCP/IP模型)

    背景:实际工作中工程师无法完全按照七层模型要求操作,逐渐转化为更符合实际情况的四层

    数据传输过程

    1. 发送端由应用程序发送消息,逐层添加首部信息,最终在物理层发送消息包
    2. 发送的消息结果多个节点(交换机,路由器)传输,最终到达目标主机
    3. 目标主机由物理层逐层解析首部消息包,最终到应用程序呈现消息

    网络协议

    在网络数据传输中,都遵循的规定,包括建立什么样的数据结构,什么样的特殊标志等

    网络基础概念

    • IP地址

    功能:确定一台主机的网络路由位置

    Windows下查看本机网络地址命令:ipconfig
    Linux下为ifconfig

    结构

    IPv4 点分十进制表示 127.0.0.1 每部分取值范围0~255**

    IPv6 128位 扩大了地址范围

    例:fe80::306:c497:1c2c:924a

    其中::表示中间全部是0,也就是fe80:0000:0000:0000:306:c497:1c2c:924a

    • 域名

    定义:给网络服务器地址起的名字

    作用:方便记忆,表达一定的含义

    ping [ip] :测试和某个主机是否连通(Windows)

    • 端口号(port)

    作用:端口是网络地址的一部分,用于区分主机上不同的网络应用程序

    特点:一个系统中的应用监听端口不能重复

    取值范围:1~65535

    1~1023 系统应用或者大众程序监听端口
    1024~65535 自用端口

    传输层服务

    面向连接的传输服务(基于TCP协议的数据传输)

    1. 传输特征:提供了可靠的数据传输,可靠性指数据传输过程中无丢失,无失序,无差错,无重复
    2. 实现手段:在通信前需要建立数据连接,通信结束要正常断开连接

    三次握手(建立连接)

    客户端向服务端发送消息报文请求连接

    服务器收到请求后,回复报文确定可以连接

    客户端收到回复,发送最终报文连接建立

    四次挥手(断开连接)

    主动发送报文请求断开连接

    被动方收到请求后,立即回复,表示准备断开

    被动方准备就绪,再次发送报文表示可以断开

    主动方收到确定,发送最终报文完成断开

    面向无连接的传输服务(基于UDP协议的数据传输)

    1. 传输特点:不保证传输的可靠性,传输过程没有连接和断开,数据收发自由随意
    2. 适用情况:网络较差,对传输可靠性要求不高,比如:网络视频,群聊,广播

    面试要求

    • OSI七层模型介绍一下,TCP/IP模型是什么?
    • TCP服务和UDP服务有什么区别?
    • 三次握手和四次挥手指什么,过程是怎样的?
  • 相关阅读:
    获取redis指定实例中所有的key
    gtid环境下mysqldump对于set-gtid-purged的取值
    统计redis大key信息(前topN)
    通过otter元数据表获取有用的信息
    另外一种获取redis cluster主从关系和slot分布的方法
    直观获取redis cluster 主从关系
    MongoDB 分片篇
    练习Mongodb 复制集篇
    堆和栈
    原码、反码、补码
  • 原文地址:https://www.cnblogs.com/zhujiangyu/p/13499212.html
Copyright © 2020-2023  润新知