菜鸟学python第二十七天(网络协议)

网络协议

  • 网络通信的基本要素

    1. 物理介质
    2. 网络协议

      OSI七层模型

      OSI五层

      应用层

      传输层 : TCP/UDP协议,传输层为每个需要联网的应用程序绑定了一个私人端口号(一个整数,最大65585)

      注意:0-1024是系统保留的端口,不要使用已经占用的端口(apache:8080,MySQL:3306,FTP:21)

      网络层 : IP协议,子网掩码,IP与子网掩码进行AND运算,产生网络地址,

      如果网络地址一致,则表明在同一个子网络(局域网).

      IP协议包含路由协议,帮助找到局域网的网关.

      数据链路层 : 以太网协议,规定二进制解析(包含head,data)

      mac地址,用于表示全球唯一一台计算机

      通过广播的方式进行通信

      arp协议功能:

      广播的方式发送数据包,获取目标主机的mac地址

      物理层 : 基于电信号,高低电频的的电波装换为10二进制

    网络层和传输层就可以找到某个电脑的某个程序

  • tcp三次握手和四次挥手
    • 三次握手:(目的建立网络通信的双向通路)

      1. 客户端给服务端发送链接
      2. 服务端给客户端回应确认消息和同意消息
      3. 客户端给服务端发送确认消息
    • 四次挥手:(结束通信)
      1. 客户端给服务端发送结束请求
      2. 服务端向客户端发送确认请求
      3. 服务端给客户端发送同意请求(2,3不能同时进行的原因,服务端半连接池还有未执行完的请求需要执行完才能同意结束
      4. 客户端给服务端发送确认请求

原文地址:https://www.cnblogs.com/liusijun113/p/10158624.html

时间: 2024-10-01 03:39:33

菜鸟学python第二十七天(网络协议)的相关文章

菜鸟学Python第十七天

菜鸟学python第十七天 1.logging 模块 logging模块即日志记录模块 用途:用来记录日志 为什么要记录日志: 为了日后复查,提取有用信息 如何记录文件 直接打开文件,往里写东西 直接写入文件的两个问题:(logging模块解决这两个问题) 你写的数据格式 别人看不懂 解析数据模块 logging的使用 logging模块的两种记录日志的方式 使用logging提供的模块级别函数 使用logging日志系统四大组件 <!--本质上logging模块级别函数日志记录就是对日志系统四

菜鸟学Python第二十二天

面向对象的三大特性之继承 什么是继承 继承是一种创建新类的方式,新建的类可以继承一个或者多个父类(python支持多继承),父类又可以称为基类又或超类,新建的类称为派生类或者子类. 子类会'遗传'父类的属性(特征和技能),从而解决代码重用的问题 class Father: # 父类 height = tall class Son(Father): # 子类,需要将父类传入 pass ? print(Son.height) #子类直接调用的父类中的属性 继承与抽象 继承描述的是子类与父类之间的关系

菜鸟学python(11)list列表基本操作

想写点东西把自己学习python的过程记录下来,于是就有了菜鸟学python... list列表是在编写程序中经常用到,是用来处理一组有序项目的数据结构. 比如说range(1,5)其实就是个整数列表 所以 for x in range(1,5) 可以写成 for x in [1,2,3,4] 下面是一些列表的常见基本操作 首先创建一个空列表list list = [] 用append向这个列表里面添加一个值 list.append(1) #向list里面添加1 可以通过extend向list中

怒学Python——第二篇——类型与运算

Python支持5种数据类型,包括数字(numbers).字符串(string).列表(list).元组(tuple)和字典(dictionary).作为一门动态类型语言,不用去声明一个标示符的类型,使用的时候是什么类型会自动判定. 对于定义好的变量,若不使用该变量,可以用del删除来释放占有的资源,如 var = 10 del var Python的数字(numbers):支持int.long.float和complex,比较简单不给出示例. Python的字符串(string):如前面所说的

菜鸟学Python训练营第一期练习题

菜鸟学Python训练营第一期练习题 1.比如自然数10以下能被3或者5整除的有,3,5,6和9,那么这些数字的和为23. 求能被3或者5整除的1000以内数字的和 1 multiple_of_threes=[] 2 for multiple_of_three in range(0,1001,3): 3 multiple_of_threes.append(multiple_of_three) 4 sum_of_threes=sum(multiple_of_threes) 5 print(mult

菜鸟学python之类和对象

我们把一类相同的事物叫做类,其中相同事物相同的属性可以抽象出来,而一些相同的动作行为,也可以抽象成方法. 比如,汽车是一个类,它包括价格.品牌等属性.那么我们需要打印某一辆车的价格和品牌,只需要使用一句代码 print "the car's type 'ford',price:280000",但是当我们需要对一百个品种的车打印这句话的时候,怎么办呢? 这个问题我们通过以前学过的函数式编程就可以实现啦!我们只需要写一个类,然后将不同的车品牌和价格以参数的方式传到类里就好了.这样大大的提高

第二十七天- 网络通信协议 TCP UDP 缓冲区

1.网络通信协议 osi七层模型:按照分工不同把互联网协议从逻辑上划分了层级 socket层 2.理解socket: Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议.我们可理解成模块,直接拿来用. 套接字socket历史: 套接字起源于 20 世纪 70 年代加利福尼亚大学伯克利分校版本

菜鸟学python之对象类型及运算

Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型. 等号(=)用来给变量赋值. 1 变量赋值 1.1 单个变量赋值 >>> name="python" >>> print(name) python 1.2 多个变量赋值 >>> name=names="python&

菜鸟学Python Day1.4(导入模块Import、用户交互Raw_input)

导入模块      1.什么是模块? 2.导入模块 Import moduleName   (自带200多个模块,第三方模块上千) Python标准库 如下:导入模块os.system内的的df,查看内存 查看模块os可以导入很多方法os. tab健: 如何加tab健: /usr/lib/python2.7/dist-packages/tab.py   默认第三方库存放位置 Python寻找路径规则: 如果查询不到就会报错, 如何让某一个模块在python任何一个地方都可以导入: ①在sys.p