软件开发架构与网络之OSI七层协议(五层)
本期内容概要
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七层协议(五层)的更多相关文章
- Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)
Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义: ...
- Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver
今日内容:socket网络编程 1.OSI七层协议 2.基于tcp协议的套接字通信 3.模拟ssh远程执行命令 4.tcp的粘包问题及解决方案 5.基于udp协议的套接字 ...
- 8.6 day27 网络编程 osi七层协议 Time模块补充知识 TCP协议
Time模块补充知识 date和datetime区别是什么? date 就是年月日 datetime就是年月时时分秒 以下代码为什么会报错? import json from datetime imp ...
- 网络之OSI七层协议模型、TCP/IP四层模型
13.OSI七层模型各层分别有哪些协议及它们的功能 在互联网中实际使用的是TCP/IP参考模型.实际存在的协议主要包括在:物理层.数据链路层.网络层.传输层和应用层.各协议也分别对应这5个层次而已. ...
- 1、网络并发编程--简介、软件开发架构、OSI七层协议
python复习 变量与常量 基本数据类型 内置方法 字符编码.文件操作 函数 函数参数.闭包函数.装饰器 面向对象 封装.继承.多态 """ 什么是对象 数据与功能的结 ...
- 01网络编程(基础知识+OSI七层协议+TCP与UDP)
目录 01 网络编程 一.软件开发架构 1.1 CS架构 1.2 BS架构 二.网络理论前戏 2.1 简介 2.2 常见硬件 三.OSI七层协议(五层) 3.1 七层协议 3.2 五层协议 3.3 知 ...
- python网络编程-Json序列化功能扩展-软件开发架构-OSI七层协议-TCP-01
面向对象补充知识点(面向对象的应用) 扩展json序列化所支持的数据类型(分析源码) import json from datetime import datetime, date # ------- ...
- 软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)
一.网络编程 软件开发架构 C/S架构 C:客户端 想体验服务的时候才会去找服务端体验服务 S:服务端 24小时不间断的提供服务,即时监听,随时待命 B/S架构 B:浏览器 想体验服务的时候 ...
- 开发架构+osi七层协议+socket(day26)
目录 软件开发架构 C/S架构 B/S架构 网络编程 互联网协议/OSI七层协议 传输层 网络层 数据链路层 物理连接层 socket 什么是socket 为什么用socket 如何使用 软件开发架构 ...
随机推荐
- typescript接口---interface
假如我现在需要批量生产一批对象,这些对象有相同的属性,并且对应属性值的数据类型一致.该怎么去做? 在ts中,因为要检验数据类型,所以必须对每个变量进行规范,自然也提供了一种批量规范的功能.这个功能就是 ...
- iterator 前++ 后++区别
for(iterator it = begin(); it != end(); ++it) 此处的 begin()<==>this->begin() 或者for(ite ...
- SWPUCTF 2019 pwn writeup
来做一下以前比赛的题目,下面两个题目都可以在buu复现(感谢赵总). SWPUCTF_2019_login 32位程序,考点是bss段上的格式化字符串.用惯onegadgets了,而对于32位程序来说 ...
- 判断是否为空….IsEmpty(Power Query 之 M 语言)
公式: 判断表:=Table.IsEmpty( 表) 判断列表:=List.IsEmpty( 列表) 说明: 此公式的参数一般是一个由公式生成的结果 最终效果: 表/列表中全部是空的返回true 表/ ...
- 延时间隔(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 像"饭前洗手"这种事,绝大部分情况下,是洗完手马上就可以动筷子开吃,但总会有意外,比如手都洗好了,突然 ...
- CF19A World Football Cup 题解
Content 有 \(n\) 个球队参加一场足球比赛,比赛排名前 \(\dfrac{n}{2}\) 的队伍将会进入下一轮的淘汰赛.比赛将会打 \(\dfrac{n(n-1)}{2}\) 场,胜者得 ...
- 使用.NET 6开发TodoList应用(5)——领域实体创建
需求 上一篇文章中我们完成了数据存储服务的接入,从这一篇开始将正式进入业务逻辑部分的开发. 首先要定义和解决的问题是,根据TodoList项目的需求,我们应该设计怎样的数据实体,如何去进行操作? 长文 ...
- tomcat下部署两个工程时,只有一个可以访问,另一个出现404错误,该如何解决
tomcat下部署两个工程时,只有一个可以访问,另一个出现404错误,该如何解决 在开发新项目的时候,有时候为了省时,直接把曾经做过的项目工程A拷贝成改名为B工程,然后再在B工程上进行功能的开发, 此 ...
- AcWing09. 分组背包问题
有\(N\)组物品和一个容量是\(V\)的背包. 每组物品有若干个,同一组内的物品最多只能选一个. 每件物品的体积是\(v_{ij}\),价值是\(w_{ij}\),其中\(i\)是组号,\(j\)是 ...
- Linux使用docker安装RabbitMQ
拉取镜像 docker pull rabbitmq:management 启动容器 docker run -d --name rabbitmq -e RABBITMQ_DEFAULT_USER=adm ...