python网络通信之基础知识填坑

news2024/9/22 23:33:32

文章目录

  • 版权声明
  • 网络通信要素
    • IP地址
    • ifconfig和ping命令
      • ifconfig (Interface Configuration)
      • ping
    • 端口和端口号的介绍
    • 端口号的分类
    • socket介绍
    • TCP
      • TCP简介
      • TCP的特点
    • UDP
      • UDP简介
      • UDP特点

版权声明

  • 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明,所有版权属于黑马程序员或相关权利人所有。本博客的目的仅为个人学习和交流之用,并非商业用途。
  • 我在整理学习笔记的过程中尽力确保准确性,但无法保证内容的完整性和时效性。本博客的内容可能会随着时间的推移而过时或需要更新。
  • 若您是黑马程序员或相关权利人,如有任何侵犯版权的地方,请您及时联系我,我将立即予以删除或进行必要的修改。
  • 对于其他读者,请在阅读本博客内容时保持遵守相关法律法规和道德准则,谨慎参考,并自行承担因此产生的风险和责任。本博客中的部分观点和意见仅代表我个人,不代表黑马程序员的立场。

网络通信要素

  • 网络:将具有独立功能的多台计算机通过通信线路和通信设备连接起来,在网络管理软件及网络通信协议下,实现资源共享和信息传递的虚拟平台。

在这里插入图片描述

IP地址

  • IP地址是分配给网络设备上网使用的数字标签,用于标识网络中唯一的一台设备
    在这里插入图片描述

  • IP地址的作用:通过IP地址找到网络中唯一一台设备,然后可以跟这个设备进行数据通信。
    在这里插入图片描述

  • IP地址分为IPv4和IPv6两个版本。

  1. IPv4(Internet Protocol version 4):
  • 格式: IPv4地址由32位二进制数组成,通常以点分十进制的形式表示,如192.168.0.1。

  • 分段: IPv4地址分为网络地址和主机地址两部分。不同类别的网络使用不同数量的位来表示网络和主机。常见的有A类、B类和C类地址。

    • A类地址:8位网络地址 + 24位主机地址
    • B类地址:16位网络地址 + 16位主机地址
    • C类地址:24位网络地址 + 8位主机地址
  • 私有地址: 一些地址范围被保留作为私有地址,用于局域网内部。

    • 例如,A类的10.0.0.0到10.255.255.255,B类的172.16.0.0到172.31.255.255,和C类的192.168.0.0到192.168.255.255。
  1. IPv6(Internet Protocol version 6):
  • 格式: IPv6采用128位地址,通常用8组四位十六进制数表示

    • 例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334。
  • 扩展性: 由于IPv4地址空间有限,IPv6被设计为更大、更灵活的地址空间,以满足未来互联网发展的需求。

    • 特殊表示: IPv6地址中可以使用"::"表示连续的零字段,以简化地址。例如,2001:0db8:0:0:0:0:0:1可以简写为2001:db8::1。

    • IP地址分配: IPv6地址分配通常通过IPv6路由器自动进行,也可以使用DHCPv6协议。

ifconfig和ping命令

命令名说明
ifconfig查看网卡信息
ping检查网络是否正常

ifconfig (Interface Configuration)

  • ifconfig 命令用于查看和配置网络接口的信息,包括IP地址、子网掩码、广播地址、MAC地址等。
  1. 查看所有网络接口的信息:

     ifconfig
    
  2. 查看特定网络接口的信息(例如,eth0):

    ifconfig eth0
    
  3. 启用/禁用网络接口:

    sudo ifconfig eth0 up    # 启用
    sudo ifconfig eth0 down  # 禁用
    
  4. 配置IP地址:

    sudo ifconfig eth0 192.168.1.2 netmask 255.255.255.0
    

在这里插入图片描述

  • 127.0.0.1表示本机地址,提示:如果和自己的电脑通信就可以使用该地址。
  • 127.0.0.1该地址对应的域名是localhost,域名是ip地址的别名,通过域名能解析出一个对应的ip地址。

ping

  • ping 命令用于测试与目标主机的网络连接,并且能够测量往返时间(Round-Trip Time,RTT)。它通过发送ICMP(Internet Control Message Protocol)回显请求(Echo Request)消息到目标主机,并等待回显回应(Echo Reply)。
    常用用法:
  1. 简单的ping测试:
ping baidu.com
  1. 指定ping的次数:
ping -c 5 baidu.com  # 发送5个ICMP请求
  1. 持续ping:

    ping -t baidu.com    # 持续ping,直到手动停止
    
  2. 使用特定的数据包大小:

    ping -s 1000 baidu.com  # 发送数据包大小为1000字节的ICMP请求
    

在这里插入图片描述

端口和端口号的介绍

  • 每运行一个程序都会有一个端口,想要给对应的程序发送数据,找到对应的端口即可。
    在这里插入图片描述

  • 端口是传输数据的通道,好比教室的门,是数据传输必经之路。

  • 每一个端口都会有一个对应的端口号,想要找到端口通过端口号即可。
    在这里插入图片描述

  • 端口号(65536个):端口号是用来管理区分不同端口的一个号码。好比生活中的门牌号。

  • 最终通信流程,通过ip地址找到对应的设备,通过端口号找到对应的端口,然后通过端口把数据给应用程序。
    在这里插入图片描述

端口号的分类

  • 端口号按照一定的规定可以分为:
    • 知名端口号
    • 动态端口号
  • 知名端口号是指众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务,比如21端口分配给FTP(文件传输协议)服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务。
  • 动态端口号:一般程序员开发应用程序使用端口号
  • 动态端口号的范围是从1024到65535,如果程序员开发的程序没有设置端口号,操作系统会在动态端口号这个范围内随机生成一个给开发的应用程序使用。
  • 当运行一个程序默认会有一个端口号,当这个程序退出时,所占用的这个端口号就会被释放。

socket介绍

  • Socket是一种网络通信协议,它在应用层和传输层之间提供了一个接口,使得应用程序可以通过网络与其他应用程序进行通信。

  • Socket可以用于不同的网络协议,如TCP、UDP等。

  • 在Socket通信中,有两个主要的角色:服务器和客户端。一旦连接建立成功,服务器和客户端之间就可以进行双向通信。

    • 服务器在网络上监听一个端口,等待客户端的连接请求。
    • 客户端则通过指定服务器的IP地址和端口号来连接服务器。
  • Socket通信可以用于许多应用场景,如网络游戏、实时通信、文件传输等。它是构建网络应用程序的重要基础。
    在这里插入图片描述

TCP

TCP简介

  • 通过IP地址能够找到对应的设备,然后再通过端口号找到对应的端口,再通过端口把数据传输给应用程序,在发送之前要选择网络传输方式(传输协议),保证程序之间按照指定的传输规则进行数据的通信。

在这里插入图片描述

  • TCP的英文全拼(Transmission Control Protocol)简称传输控制协议,它是一种面向连接的、可靠的、基于字节流的传输层通信协议。
  • TCP(Transmission Control Protocol)运行在传输层(Transport Layer)。传输层是OSI参考模型中的第四层,它负责在网络中传输数据,为应用层提供可靠的数据传输服务。
    在这里插入图片描述
  • TCP通信步骤:
    1. 创建连接
    2. 传输数据
    3. 关闭连接
  • TCP通信模型相当于生活中的’打电话‘,在通信开始之前,一定要先建立好连接,才能发送数据,通信结束要关闭连接。
    在这里插入图片描述
  • TCP通过三次握手建立连接,通过四次挥手关闭连接,保证了数据传输的可靠性和完整性。

TCP的特点

  1. 面向连接
  • 通信双方必须先建立好连接才能进行数据的传输,并且双方都会为此连接分配必要资源用来记录连接的状态和信息。当数据传输完成后,双方必须断开此连接,以释放系统资源。
  1. 可靠传输
  • TCP采用发送应答机制
    • 通过TCP这种方式发送的每个报文段都必须得到接收方的应答才认为这个TCP报文段传送成功
  • 超时重传
    • 发送端发送一个报文之后就会启动定时器,如果指定时间内没有得到应答就会重新发送这个报文段
  • 错误校验
    TCP用一个校验和函数来校验数据是否有错误,在发送和接收时都要计算校验和
  • 流量控制和阻塞管理
    • 流量控制用来避免发送端发送过快而使得接收方来不及接收

UDP

UDP简介

  • UDP(User Datagram Protocol)是一种无连接的网络传输协议,它是在传输层上运行的。UDP不像TCP那样提供可靠的数据传输。UDP发送的数据包不需要建立连接,也不需要等待确认,因此UDP传输速度比TCP快,但是可靠性较差。

  • UDP主要用于那些对数据传输速度要求高,但对数据传输可靠性要求不高的应用,如实时音视频传输、网络广播、在线游戏等。由于UDP的传输速度较快,因此在一些对实时性要求较高的应用场景中,UDP比TCP更加适合。

  • UDP的数据包结构比TCP简单,只包含源端口、目的端口、长度和校验和等基本信息。由于UDP没有连接的概念,因此每个UDP数据包都是独立的,可以随时发送和接收。

UDP特点

UDP(User Datagram Protocol)的特点如下:

  1. 无连接:UDP在发送数据之前不需要建立连接,也不需要维护连接状态,因此传输效率较高。

  2. 不可靠:UDP不提供可靠的数据传输,数据包可能会丢失、重复或乱序。因此,在实时性要求较高的应用场景中,如音视频传输、实时游戏等,UDP更加适合。

  3. 简单:UDP的数据包结构比TCP简单,只包含源端口、目的端口、长度和校验和等基本信息。

  4. 快速:由于UDP没有连接的概念,数据包的传输效率较高,适用于数据传输速度要求较高的应用场景。

  5. 支持广播和多播:UDP支持广播和多播,可以将数据包发送给多个接收方。

  6. 适用于短消息传输:由于UDP数据包的大小限制较小,适用于短消息的传输,如DNS查询、SNMP等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1237631.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

不是说人工智能是风口吗,那为什么工作还那么难找?

最近确实有很多媒体、机构渲染人工智能可以拿高薪,这在行业内也是事实,但前提是你有足够的竞争力,真的懂人工智能。 首先,人工智能岗位技能要求高,人工智能是一个涵盖了多个学科领域的综合性学科,包括数学、…

探索锦食送如何通过API集成无代码开发技术提高电商平台和营销系统效率

探索锦食送无代码开发集成技术 随着电子商务和营销系统的快速发展,企业不断寻求更高效和灵活的管理方式。锦食送,作为高端餐饮外卖服务的领先者,通过无代码开发的API集成技术,实现了电商平台和营销系统的高效管理。这种创新的连接…

SV-7042VP 4G无线网络音柱sip广播4G音柱

SV-7042VP 4G无线网络音柱sip广播4G音柱 1. 采用防水一体化设计,整合了音频解码、数字功放及音柱 2. 提供配置软件,支持SIP标准协议,通过SIP服务器能够接入现有综合通信调度平台系统,接受sip通信调度平台。融合第三方sip协议及si…

阿里云高校计划学生和教师完成认证领取优惠权益

阿里云高校计划学生和教师均可参与,完成学生认证和教师验证后学生可以免费领取300元无门槛代金券和3折优惠折扣,适用于云服务器等全量公共云产品,订单原价金额封顶5000元/年,阿里云百科aliyunbaike.com分享阿里云高校计划入口及学…

MONGODB 的基础 NOSQL注入基础

首先来学习一下nosql 这里安装就不进行介绍 只记录一下让自己了解mongodb ubuntu 安装后 进入 /usr/bin ./mongodb即可进入然后可通过 进入的url链接数据库 基本操作 show dbshow dbsshow tablesuse 数据库名插入数据db.admin.insert({json格式的数据})例如 db.admin.inse…

数据结构-快速排序“人红是非多”?看我见招拆招

目录 1.快速排序 Hoare版本: 挖坑法: 前后指针版本: 快速排序的时间复杂度 2.快速排序的优化 三数取中法选key 随机数选key 三路划分法 3. 非递归实现快速排序 1.快速排序 快速排序一共有三种版本:Hoare版本、挖坑法、前后指针版本…

JSP EL表达式基本使用

今天我们来说EL表达式 这在整个jsp中都是非常重要的一章 因为 如果我们用 <%属性%> 属性为空时 直接就是个 null 这个肯定是不能让用户看到的东西 所以 我们就需要EL表达式 例如 我们jsp代码编写如下 <% page contentType"text/html; charsetUTF-8" page…

抖音seo短视频矩阵源码开发部署与维护--开源

一、引言 随着抖音等短视频平台的崛起&#xff0c;越来越多的企业和个人开始关注如何在这些平台上提升曝光量和用户流量。抖音SEO&#xff08;搜索引擎优化&#xff09;是一种有效的方法&#xff0c;通过优化短视频内容和关键词&#xff0c;让更多的人找到并点击你的视频。本文…

基于PHP的动漫周边购物系统

有需要请加文章底部Q哦 可远程调试 基于PHP的动漫周边购物系统 一 介绍 此动漫周边购物系统系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。用户可注册登录&#xff0c;购物下单&#xff0c;评论等。管理员登录后台可对动漫周边商品&#xff0c;用户…

【23真题】难!下沙“小清华”难度爆增!

今天分享的是23年“下沙小清华”杭州电子科技大学843的信号与系统试题及解析。 本套试卷难度分析&#xff1a;22年杭电843考研真题&#xff0c;我也发布过&#xff0c;若有需要&#xff0c;戳这里自取&#xff01;平均分为112分&#xff0c;最高分为145分&#xff01;该院校23…

优化3种教学方法

在教育领域&#xff0c;教学方法对于学生的学习成果和兴趣至关重要。 第一种是项目式学习。这种方法鼓励学生通过完成实际的项目来获取知识&#xff0c;而不仅仅是在课堂上听讲。学生需要在实际操作中解决问题&#xff0c;这能培养他们的创新思维和实践能力。项目式学习还能提高…

验收材料-软件质量保证措施

一、 质量保障措施 二、 项目质量管理保障措施 &#xff08;一&#xff09; 资深的质量经理与质保组 &#xff08;二&#xff09; 全程参与的质量经理 &#xff08;三&#xff09; 合理的质量控制流程 1&#xff0e; 质量管理规范&#xff1a; 2&#xff0e; 加强协调管理&…

OCR是什么意思,有哪些好用的OCR识别软件?

1. 什么是OCR&#xff1f; OCR&#xff08;Optical Character Recognition&#xff09;是一种光学字符识别技术&#xff0c;它可以将印刷体文字转换为可编辑的电子文本。OCR技术通过扫描和分析图像中的文字&#xff0c;并将其转化为计算机可识别的文本格式&#xff0c;从而…

mysql开启慢查询日志

直接看原文: 原文链接:MySQL慢查询日志开启、配置、分析等操作_Code0cean的博客-CSDN博客 ------------------------------------------------------------------------------------------------------------------------------- 命令总结: 查看慢查询日志文件 tail -100f …

webGL开发微信小游戏

WebGL 是一种用于在浏览器中渲染 2D 和 3D 图形的 JavaScript API。微信小游戏本质上是在微信环境中运行的基于 Web 技术的应用&#xff0c;因此你可以使用 WebGL 来开发小游戏。以下是基于 WebGL 开发微信小游戏的一般步骤&#xff0c;希望对大家有所帮助。北京木奇移动技术有…

下载安装升讯威在线客服系统时提示风险的解决办法

客服系统的服务端程序、客服端程序、配套的配置工具涉及磁盘文件读写、端口监听&#xff0c;特别是经过混淆加密后&#xff0c;可能被部分浏览器或部分杀毒软件提示风险。请忽略并放心使用&#xff0c;如果开发软件是为了植入木马&#xff0c;这个代价可太大了&#xff0c;不如…

向量数据库,展望AGI时代

无论是向量数据库&#xff0c;还是大模型&#xff0c;归根结底&#xff0c;大家在追捧它时的心态&#xff0c;焦虑大于需求。 向量数据库的热潮&#xff0c;在一定程度上“外化”了人们的焦虑。 但这并不能否定向量数据库的实际价值&#xff0c;甚至更长远来看&#xff0c;向…

低代码!小白用10分钟也能利用flowise构建AIGC| 业务问答 | 文本识别 | 网络爬虫

一、与知识对话 二、采集网页问答 三、部署安装flowise flowise工程地址&#xff1a;https://github.com/FlowiseAI/Flowise flowise 官方文档&#xff1a;https://docs.flowiseai.com/ 这里采用docker安装&#xff1a; step1&#xff1a;克隆工程代码 &#xff08;如果网络…

FFmpeg 6.1 开放源码多媒体框架近日发布了重大更新

导读FFmpeg 6.1 开放源码多媒体框架近日发布了重大更新&#xff0c;带来了新功能、新解码器、新过滤器和许多其他变化。 在 FFmpeg 6.0 “Von Neumann “版本发布八个多月后&#xff0c;FFmpeg 6.1 被命名为 “Heaviside”&#xff0c;引入了多线程 Vulkan 硬件加速解码&#x…

2023年中国宠物清洁用品分类、市场规模及发展特征分析[图]

宠物清洁用品指专用于清洁宠物毛发、口腔、耳部、脚爪等部位的各类宠物用品&#xff0c;包括宠物香波、滴耳露、修毛刀等。宠物主对宠物清洁用品需求的出现&#xff0c;一定程度上反映出部分宠物主与宠物间的感情逐渐加深&#xff0c;并逐渐达到了较为亲密的程度。随着宠物清洁…