本期内容概要

  • python回顾

  • 软件开发架构

  • 网络理论前瞻

  • osi七层协议(五层)

    • 以太网协议
    • IP协议
    • port协议
    • 交换机
    • 路由器
    • 局域网
    • 广域网
  • TCP协议

    • 三次握手
    • 四次挥手
  • UDP协议

内容详细

python回顾

变量与常量
基本数据类型
内置方法
字符编码、文件操作
函数
函数参数、闭包函数、装饰器
面向对象
封装、继承、多态
"""
什么是对象
数据与功能的结合体 什么是类
多个对象公共的数据与功能的结合体 什么是父类
多个类公共的数据与功能的结合体 对象必须要由类产生!!!
"""

1. 软件开发架构

1.c/s架构
c : client 客户端
s : server 服务端
"""
客户端:可以当作去店铺消费的客人
eg:手机上的各种APP就是各大软件厂商的客户端 服务端:可以当作提供服务的商店
服务端需要具备的三大特征:
1.24小时不间断提供服务(24小时监听)
2.固定的地址(IP地址)
3.能够服务多个用户(高并发)
""" 2.b/s架构
b : browser 浏览器
s : server 服务器
"""
用浏览器统一充当各个服务端的客户端 本质:bs架构本质上也是cs架构
""" 3.各大互联网巨头正在做的事情:
微信小程序(微信提供开发微信小程序的软件)
支付宝小程序(各大程序接口) # 总结:
网络编程学习完就可以开发cs架构的软件(简易版本)
并发编程、前端、数据库、后端框架就可以开发bs架构软件(任何类型的软件)

2. 网络理论前瞻

'''网络编程其实研究的就是程序之间的数据通信'''

1.由来:
基于远程传输的技术 最早诞生于美国军方(前沿技术通常都是由军事产生) 2.远程数据传输发展史(民用)
01 有线电话 > 电话线互联
02 无线电话 > 信号发射器
03 大屁股电脑 > 网线
04 笔记本电脑 > 网卡
'''要想实现远程数据交互的前提是必须要有物理连接介质''' 除了有物理连接介质之外还应该有一些能够保证数据彼此无障碍交互的东西(标准):
OSI七层协议

3. OSI七层协议

# 所有的计算机都必须要有这七层
01 应用层
02 表示层
03 会话层
04 传输层
05 网络层
06 数据连接层
07 物理连接层
'''
应 表 会 传 网 数 物
''' # 从开发层面 可以归纳为五层
01 应用层
02 传输层
03 网络层
04 数据连接层
05 物理连接层 '''从下往上介绍'''

3.1 物理连接层

提供一个物理连接接口(网线口 无线网卡)

3.2 数据连接层

1.规定了电信号的分组方式

2.含有以太网协议
规定了计算机必须有一块网卡 并且网卡上面要有一个固定的一串数字
"""
数字 : 12位16进制数
前六位 :产商编号
后六位 :流水线号
上述的数字也称之为计算机的mac地址(类似于身份证号)
"""

3.3 常见硬件

1.交换机:能够使接入该机器的所有计算机之间彼此互联

2.局域网:有交换机组成的网络

3.互联网:可以简单的理解为是多个局域网之间彼此互联

"""
基于mac地址的数据传输
1.广播风暴
2.mac地址不能跨局域网传输
""" 4.路由器:能够连接多个局域网并实现局域网之间的数据传输

3.4 网络层

1.IP协议:
规定了接入互联网的计算机都必须有一个IP地址用于唯一标识 2.ip协议版本
IPV4版本:
最小 0.0.0.0
最大 255.255.255.255 IPV6版本:
能够表示出地球上的每一粒沙子 '''IP地址能够唯一标识接入互联网的一台独一无二的计算机''' 3.公网IP与私网IP
公网IP需要花钱购买并申请
私网IP自带的 但是无法直接基于互联网访问 4.arp协议
将IP地址转换成mac地址(基于网络请求)

3.5 传输层

'''TCP协议  UDP协议 端口协议 等等'''

1.端口协议:
范围:0~65535
特性:动态分配
eg:
第一次运行微信 系统随机取一个端口号2022
然后关闭微信重新启动 系统再随机取一个端口号 2.端口号基本使用
0~1024系统默认需要使用的端口号
1024~8000常见软件端口号
以后我们开发的软件最好使用8000之后的端口号 """
端口号(port):
能够唯一标识一台计算机上面正在运行的一款应用程序 端口号在同一台计算机同一时刻不能重复
""" # 总结
能够唯一标识世界上 某一台接入互联网的计算机上面的 某一个正在运行的应用程序

3.6 TCP协议

1.别称:
流式协议 可靠协议 2.三次握手 建立链接
重要状态:
listen 监听态:等待对方发请求
syn_rcvd态: 忙于恢复确认建立请求
'''
洪水攻击:
服务端在同一时间接收到了大量的要求建立链接的请求
''' 3.四次挥手 断开链接
不能合并成三次挥手 因为有等待时间要等待

3.7 UDP协议

1.别称:
不可靠协议
'''
数据发送没有通道的概念 发送出去了就不管了 无论对方是否接收成功 都会在自己内存中 直接删除该数据 TCP协议相当于打电话 你一句我一句 你侬我侬 UDP协议相当于发短信 发了就完事 管你看不看
'''

3.8 应用层

都是人为自定义的协议标准 可遵循可不遵循

HTTP协议 FTP协议 ...

软件开发架构与网络之OSI七层协议(五层)的更多相关文章

  1. Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器    定义:       ...

  2. Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver

    今日内容:socket网络编程    1.OSI七层协议    2.基于tcp协议的套接字通信    3.模拟ssh远程执行命令    4.tcp的粘包问题及解决方案    5.基于udp协议的套接字 ...

  3. 8.6 day27 网络编程 osi七层协议 Time模块补充知识 TCP协议

    Time模块补充知识 date和datetime区别是什么? date 就是年月日 datetime就是年月时时分秒 以下代码为什么会报错? import json from datetime imp ...

  4. 网络之OSI七层协议模型、TCP/IP四层模型

    13.OSI七层模型各层分别有哪些协议及它们的功能 在互联网中实际使用的是TCP/IP参考模型.实际存在的协议主要包括在:物理层.数据链路层.网络层.传输层和应用层.各协议也分别对应这5个层次而已. ...

  5. 1、网络并发编程--简介、软件开发架构、OSI七层协议

    python复习 变量与常量 基本数据类型 内置方法 字符编码.文件操作 函数 函数参数.闭包函数.装饰器 面向对象 封装.继承.多态 """ 什么是对象 数据与功能的结 ...

  6. 01网络编程(基础知识+OSI七层协议+TCP与UDP)

    目录 01 网络编程 一.软件开发架构 1.1 CS架构 1.2 BS架构 二.网络理论前戏 2.1 简介 2.2 常见硬件 三.OSI七层协议(五层) 3.1 七层协议 3.2 五层协议 3.3 知 ...

  7. python网络编程-Json序列化功能扩展-软件开发架构-OSI七层协议-TCP-01

    面向对象补充知识点(面向对象的应用) 扩展json序列化所支持的数据类型(分析源码) import json from datetime import datetime, date # ------- ...

  8. 软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)

    一.网络编程 软件开发架构 C/S架构 C:客户端 想体验服务的时候才会去找服务端体验服务 S:服务端   24小时不间断的提供服务,即时监听,随时待命 B/S架构 B:浏览器    想体验服务的时候 ...

  9. 开发架构+osi七层协议+socket(day26)

    目录 软件开发架构 C/S架构 B/S架构 网络编程 互联网协议/OSI七层协议 传输层 网络层 数据链路层 物理连接层 socket 什么是socket 为什么用socket 如何使用 软件开发架构 ...

随机推荐

  1. PMP过程组与知识领域

    过程组知识领域 启动 规划 执行 监控 结尾 整合管理 制定项目章程 制定项目计划 指导与管理项目工作 监控项目工作 结束项目过程或阶段 项目管理知识 实施整体变更控制 范围管理 规划范围管理 确认范 ...

  2. 计算机网络-4-8-外部网关协议BGP

    外部网关协议BGP 1989年,公布了新的外部网关协议BGP(边界网关协议),我们目前使用最多的版本是BGP-4(但仍然是起草方案[RFC 4271]),简写为BGP. 在不同的自治系统AS中之间的路 ...

  3. Blazor Webassembly多标签页实现非iframe的实现

    前面用iframe实现了多标签页,这次是不用iframe实现的多标签页.参考了一下Ant Design Blazor. 基本功能已经都实现了不论是标签滚动.激活.左移.右移.关闭其他,还是在内容页跳转 ...

  4. HTTP状态码一览表

    常见Http状态码大全 2018年03月16日 11:36:31 阅读数:153 一些常见的状态码为: 200 - 服务器成功返回网页404 - 请求的网页不存在503 - 服务不可用详细分解: 1x ...

  5. mvn 把本地jar包打包到本地仓库中

    命令如下: mvn install:install-file -Dfile=apache-ant-zip-2.3.jar -DgroupId=com.ckfinder -DartifactId=apa ...

  6. 基于GDI和D3D的抓屏技术

    GDI32Api.Direct3D屏幕截图 最近因为工作需要,认真研究了一下屏幕截图的方法. 最主要的方法有两种,一.调用windows GDI32 API函数.二.使用DirectX9.0来实现. ...

  7. 【LeetCode】1095. 山脉数组中查找目标值 Find in Mountain Array

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 二分查找 日期 题目地址:https://leetco ...

  8. 【LeetCode】312. Burst Balloons 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/burst-ba ...

  9. 比赛难度(HDU4546)

    比赛难度 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submis ...

  10. MySQL定时备份数据库方案

    MySQL数据备份 1.备份全部数据库的数据和结构 mysqldump -uroot -p123456 -A > /data/mysqlDump/mydb.sql 2.备份全部数据库的结构(加 ...