软件开发架构与网络之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 如何使用 软件开发架构 ...
随机推荐
- Python的安装和卸载
一.Python的安装,去Python官网https://www.python.org/downloads/下载对应安装包 进入官网后鼠标移动到downloads处然后点击Windows 二.安装包下 ...
- 查看MySQL正在执行的线程
一.使用SQL语句查询正在执行的线程 SHOW PROCESSLIST; 二.使用kill 线程id就可以结束线程(引起数据变化的线程需特别小心) SHOW PROCESSLIST; +------+ ...
- [BUUCTF]REVERSE——[GUET-CTF2019]re
[GUET-CTF2019]re 附件 步骤: 查壳儿,upx壳,64位程序 upx脱壳儿,然后扔进64位ida,通过检索字符串,找到有关flag的信息定位到关键函数 让我们输入flag,然后满足su ...
- 0RAYS元旦招新赛
一共有4道pwn题,题目不算难,但是挺考验调试能力的. pie 一个main函数就四次溢出... 第一次leak canary,第二次leak libc,第三次直接覆盖返回地址为one_gadgets ...
- winpcap 静默安装
前几天做一个小工具用到winpcap,由于有些用户系统未必安装过这个而领导要求尽量减少用户点击,于是只好想办法静默安装了,csdn搜了,貌似没有好用的,求助stackoverflow,还好,在某篇解答 ...
- IDEA设置maven打包的时候跳过单元测试
pom增加插件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>mav ...
- XSS工具类,清除参数中的特殊字符
package com.xss; import java.util.regex.Pattern; /** * XssUtil 工具类 */ public class XssUtil { static ...
- 【linux】环境变量生命周期的操作方式
目录 前言 1. 修改环境变量 1.1 手动指定 1.2 临时生效 1.3 永久生效 链接 前言 参考: 李柱明博客 本文主要记录 linux 环境变量配置的生命周期. 如,修改环境变量 PATH 是 ...
- 【LeetCode】344. Reverse String 解题报告(Java & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 新构建字符串 原地翻转 日期 题目地址:https://lee ...
- 【LeetCode】336. Palindrome Pairs 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 HashTable 相似题目 参考资料 日期 题目地 ...