Python网络编程之网络与通信介绍

 更新时间:2023年08月08日 09:47:52   作者:灰勒塔德  
这篇文章主要介绍了Python网络编程之网络与通信介绍,计算机网络就是分布在不同的地区的计算机与专门的外部设备通信线路互联在一起,
成为一个功能强,规模大的网络系统,本期就主要介绍网络与通信的相关知识和原理,需要的朋友可以参考下

前言:

在当今快速发展的时代,互联网成为了我们生活当中不可或缺的一部分,我们每个人每天都在上网,我们可以通过网络来获取到我们所需要的信息,这充分体现了网络的时效性和快捷性,那你们有没有想过网络是怎么样去工作的呢?本期就主要介绍网络与通信的相关知识和原理,下面就一起来看看吧!

一、网络(network)

计算机网络就是分布在不同的地区的计算机与专门的外部设备通信线路互联在一起,

成为一个功能强,规模大的网络系统。互通信息,共享硬件,软件,数据等,---因特网

网络就是一个让双方或者多方连接在一起的工具

比如:单机游戏,网络游戏,有什么区别?网络游戏(和其他地区的玩家一起玩),单机游戏(只能在本地设备玩)

计算机网络给我们提供了,资源共享,信息传输,以及综合处理,集中处理服务。

二、计算网络的种类

计算机网络,按照不同的分类原则,分为不同类型的计算机网络

通常情况下计算机网络按照规模的大小以及延伸范围进行分类,常见的分类:局域网,城域网,广域网

  • 局域网:称为内网,私网 地理覆盖范围小, 只有一个相对的范围进行连接 局域网是可以支持多种传输 延迟低,可靠性高
  • 城域网;覆盖城市的范围,提供了信息服务业务的高速计算机网络
  • 广域网:又称为外网,公网 地理覆盖范围比较大,广域网不等于互联网

因特网(Internet)被视为世界上最大的广域网

三、互联网协议

协议:比如三方协议,游戏的服务协议,双方(多方)讨论约定好的事情,这个也相当于一种协议(类似于劳动合同)

协议的前提必须要有两方的进行

网络协议就是在网络中对信息管理,传递的一些规范,在相互通信之间共同遵循的规则。

国际标准组织(ISO)提出开放系统互联参考的模型,就是OSI参考模型()将网络简化,模块的方式来设计网络。

OSI参考模型把计算机网络分为了7层,是计算机网络结构的参考标准

OSI(从下到上的):物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

OSI说明:

  • 应用层:为程序提供服务的接口
  • 表示层:将上一层数据进行转换
  • 会话层:负责建立,管理终止会话
  • 传输层:负责将上面的数据进行分段处理
  • 网络层:负责对子网间的数据进行路由选择
  • 数据链路层;将数据进行打包,或者进行数据解包传递到网络层
  • 物理层:将打包好的数据传递给硬件设备进行传输,将解析的数据传递给数据链路层

四、通信协议 TCP/IP协议

通信协议就是网络通信的基础,ip协议是一个非常重要的通信协议,ip又被称为网际协议,是支持互联网间的数据报协议,ip协议提供了连接完善的功能

TCP协议传输控制协议,规定了一种可靠的数据信息传递服务。与IP协议的功能不尽相同木叶可以分开单独使用,在功能上是互补的,在实际中将两个协议统称为TCP/IP协议。TCP/IP协议也是互联网中最常用的基础协议(TCP/IP协议族)

TCP/IP协议将计算机网络分为四层:网络接口层、网络层、传输层、应用层

协议说明:

  • 应用层:http,https,Dns,Ftp
  • 传输层:tcp,udp
  • 网络层:ip,ICMP,idmp
  • 网络接口层:wan lan

HTTP/HTTPS协议

  • HTTP协议:超文本传输协议,常用于与web浏览器和服务器之间的传递信息
  • HTTPS协议:超文本传输安全协议,通过使用SSl/TSL加密技术以及HTTP协议结合进行网络数据安全传输

http和https的区别

1. http协议是tcp协议,端口是80, https是tcp协议端口443

2. http协议明文传输,https协议时进行加密

3. http页面响应比https要快

五、ip地址

查看ip地址

进入cmd指令,如果是Windows系统:输入ipconfig;Linux或者mac系统输入ifconfig

然后就可以显示出设备的ip地址了

IP地址是IP协议提供的一种统一的地址格式,为互联网上每一个主机和一个网络分配的逻辑地址,每个IP地址包括两个识别码(ID)即使网络id以及主机id。

IP地址的分类

  • A类
    00000000.00000000.00000000.00000000
    由一个字节的网络地址跟3个字节的主机地址组成,网络地址的最高位必须是0
    网络地址有126个,主机的数量:256**3 -2
    地址围:1.0.0.0 - 126.255.255.254
  • B类
    10000000.00000000.00000000.00000000
    由2个字节的网络地址跟2个字节的主机地址组成,网络地址的最高位必须是10
    网络地址有16382个,主机的数量:256**2 - 2
    地址围:128.0.0.0 - 191.255.255.254
  • C类
    11000000.00000000.00000000.00000000
    由3个字节的网络地址跟1个字节的主机地址组成,网络地址的最高位必须是110
    网络地址有256**2*32-2,主机的数量:254
    地址围:192.0.0.0 - 223.255.255.254
  • D类:该地址用于多点广播地址(多播)
    IP地址第一个字节一‘1110’开始,范围:224.0.0.0-239.255.255.254
  • E类:用于测试开发用的,范围:240.0.0.0-255.255.255.254
    255.255.255.255属于广播地址
  • 私有IP:在网络IP中,有一部分ip地址是用于我们局域网使用,也就属于私网,不在公网上使用
    私网范围:
    10.0.0.0 ~ 10.255.255.255
    172.16.0.0 ~ 172.31.255.255
    192.168.0.0 ~  192.168.255.255

注意:

IP地址是127.0.0.1 ~ 127.255.255.255用于回路测试

127.0.0.1可以代表本机IP地,也可以用localhost 表示

六、域名

在访问一台服务器的时候,需要基础服务器的IP地址,推出域名技术;域名用于在数据传输的时候表示计算机的位置。

DNS

域名跟IP都是表示计算机的位置,IP是网络上唯一标识,DNS将域名以及ip之间对应的关系进行存储,当我们发送请求,DNS就会发送请求找到与域名对应的IP地址并返回。

七、端口

概念:

  • 端口是传输数据的通道,相当于门
  • 端口号就是每一个端口的编号,相当于门牌号
  • 端口号分类:知名端口,动态端口

知名端口一般固定分给一些服务:范围:0-1023

动态端口操作系统随机分配,程序结束之后,端口号就会释放回收,范围:1024-65535

八,TCP协议

  • TCP首部包括20字节的固定首部部分及长度可变的其他选项,所以TCP首部长度可变。20个字节又分为5部分,每部分4个字节32位,如图中的5行,每行表示32位。
  • 传输层,TCP报文段包括:TCP首部和TCP数据部分;
  • 网络层,TCP报文段成为IP数据部分,加上IP首部组成IP数据报;
  • 数据链路层,还要在IP数据报前面加上数据链路层的首部。

三次握手

三次过程

  1. 确认双方的接受,发送能力是否正常,是否可以发送数据
  2. 同步双方初始化序列号,为后面的可靠传输做准备
  3. 协商窗口大小,同时接收预留数据缓存区,为后面的可靠传输做准备

作用:保证了数据传输的准确性和完整性,能够实现数据的精准传输,如果出现丢包的情况时,会进行重新发送数据

四次挥手

过程

  • 第一次挥手,客户端给服务端发送fin包,表示要断开连接
  • 第二次挥手,服务端给客户端发送ack包,然后服务端进入等待关闭连接状态
  • 第三次挥手,服务端给客户端发送fin包,表示再次确认是否要断开连接
  • 第四次挥手,客户端给服务端发送ack包,表示确认断开连接,之后服务器就断开连接

四次挥手的作用:确保数据能够完成传输,而不是发送FIN报文后对方立即关闭连接

tcp协议的应用

tcp协议对网络的要求比较高,因为要精准发送和接收数据,所以要保证网络的传输效率,所以一般来说tcp协议用于网页、邮件发送、信息发送等方面

九、UDP协议

UDP简要说明

UDP协议跟TCP协议不同的是UDP协议是不需要通过三次握手,四次挥手这个过程,UDP协议是基于非连接的,也就是把数据包简单封装一下然后通过网卡直接发送过去就是了。

这个过程是没有状态的,但是相较于TCP,UDP效率非常高,速度非常快,但是比较容易出现丢包等情况,也就是说数据可能不能完整传输过去,所以稳定性弱。

TCP与UDP对比:

好了以上就是今天的全部内容了,看完了之后,你们对网络与通信是否有了新的了解呢?

到此这篇关于Python网络编程之网络与通信介绍的文章就介绍到这了,更多相关Python网络与通信内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何导出python安装的所有模块名称和版本号到文件中

    如何导出python安装的所有模块名称和版本号到文件中

    Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。这篇文章主要介绍了如何导出python安装的所有模块名称和版本号到文件中,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2020-06-06
  • 使用Python获取爱奇艺电视剧弹幕数据的示例代码

    使用Python获取爱奇艺电视剧弹幕数据的示例代码

    这篇文章主要介绍了用Python获取爱奇艺电视剧弹幕数据,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • python列表推导式入门学习解析

    python列表推导式入门学习解析

    这篇文章主要介绍了python列表推导式入门学习解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • OpenCV半小时掌握基本操作之圆圈检测

    OpenCV半小时掌握基本操作之圆圈检测

    这篇文章主要介绍了OpenCV基本操作之圆圈检测,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Python基于argparse与ConfigParser库进行入参解析与ini parser

    Python基于argparse与ConfigParser库进行入参解析与ini parser

    这篇文章主要介绍了Python基于argparse与ConfigParser库进行入参解析与ini parser,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-02-02
  • Pytest实现setup和teardown的详细使用详解

    Pytest实现setup和teardown的详细使用详解

    这篇文章主要介绍了Pytest实现setup和teardown的详细使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • python生成随机mac地址的方法

    python生成随机mac地址的方法

    这篇文章主要介绍了python生成随机mac地址的方法,涉及Python操作随机字符串的技巧,需要的朋友可以参考下
    2015-03-03
  • Flask入门教程实例:搭建一个静态博客

    Flask入门教程实例:搭建一个静态博客

    这篇文章主要介绍了Flask入门教程实例:搭建一个静态博客,本文主要介绍flask框架的环境配置以及一个静态博客胡搭建实例,需要的朋友可以参考下
    2015-03-03
  • Python的异常问题(Python Exception)

    Python的异常问题(Python Exception)

    这篇文章主要介绍了Python的异常问题(Python Exception),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 解决Python数据可视化中文部分显示方块问题

    解决Python数据可视化中文部分显示方块问题

    这篇文章主要介绍了解决Python数据可视化中文部分显示方块问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05

最新评论