网络编程、OSI七层协议
软件开发架构
1.什么是软件开发架构
编写项目之前需要遵循的代码层面上的规范
2.软件开发架构
c/s架构:
c:client 客服端(程序需要先安装后,才能运行在用户的电脑上,对用户的电脑的操作系统环境依赖较大)
s:server 服务端
ps:计算机上下载的各个互联网公司的app本质其实都是客户端
下载一个个客户端的目的说白了就是为了体验对应服务端的服务
客户端可以看作是即将去消费的客人
服务端可以看作是给你推荐服务的店
服务端具备的特征:
1.24小时不间断提供服务
2.固定的地址
3.可以同一时间服务很多人
b/s架构:
b:broswer 浏览器(其实也是一种客户端,它不需要安装应用程序,只需要在浏览器上通过HTTP请求服务器端相关的资源)
s:server 服务器
ps:b/s架构本质也是c/s架构
通过浏览器来充当各个服务器的客户端,用于想要体验服务不需要下载指定的客户端
3.架构优劣势
cs架构:
优势:下载对应的客户端,可以在客户端软件内高度制定相关服务
劣势:使用必须先下载客户端比较麻烦
bs架构:
优势:不需要下载客户端 能够快速体验服务
劣势:制定花里胡哨的功能
4.架构发展趋势
发展趋势:统一接口原则
微信:里面有许多小程序 可以直接体验其他服务
支付宝:里面有许多小程序 可以直接体验其他服务
后期就是cs与bs交错使用,互补各自劣势
ps:可以方便用户使用,更重要的是可以给自己圈用户便于后期收割
网络编程简介
1.如何理解网络编程
基于互联网编写代码,程序可以实现远程数据交互
2.网络编程的目的
网络编程的本质是为了解决计算机之间远程数据交互
3.网络编程的意义
学习网络编程之后,我们就可以编写一个c/s架构的软件
4.网络编程的起源
网络编程最早由美国军方开发
没有网络编程的时候,如果俩台计算机之间要交互数据,只能使用硬盘拷贝
5.网络编程的要求
1.早期的电话线,必须要有电话线
2.大屁股电脑,必须要有网线
3.笔记本电脑,必须要有网卡
计算机之间想要实现远程数据交互,俩者之间必须要有物理连接介质
OSI七层协议
1.了解知识
规定了计算机涉及到数据远程交互的时候,必须要经过的部件/流程
或者说就是所有的计算机在涉及到网络传输这块必须要有相同的零部件
这七层协议只争对网络协议

应用层、表示层、会话层、传输层、网络层、数据链路层、物理连接层
'''也可以合并成五层:'''
应用层、传输层、网络层、数据链路层、物理连接层
'''也可以合并成四层:'''
应用层、传输层、网络层、网络接口层
ps:记忆小技巧:记开头,,应、表、会、传、网、数、物
2. 各层特征
'''
各层特征:
数据发送出去的时候,是从上往下走
数据该收回来的时候,是从下往上走
'''
1.物理连接层
保证物理连接介质的条件,传递电信号(主要研究插网线情况)
2.数据链路层
1.规定了电信号的分组方式
2.规定每台计算机都必须有一块网卡
网卡上必须有一串记录,可以看作是它的身份证号-->以太网地址\mac地址
以太网地址\mac地址:前6位是生产编号,后6位是生产流水线
ps:有了太网地址\mac地址,我们就可以根据该地址查找计算机(基于mac地址实现数据交互)
3.网络层
IP协议:规定了任何接入互联网的计算机都必须有一个IP地址(身份的标识)
IP地址的特性:
IPV4:点分十进制,最小是0.0.0.0,最大是255.255.255.255
随着社会的发展,同时上网的人越来越多
IPV6:百度了解
IP特征:每个IP都自带定位
扩展知识:IP代理:隐藏自己的地址,但是还是可以找得到的
4.传输层
PORT协议(端口协议):规定了一台计算机上的每一个应用程序都必须有一个端口号
端口号相当于是计算机用来管理多个应用程序的标记
端口号的特征
1.端口号范围:0-65535
2.端口号是动态分配
3.同一时间同一台计算机端口号不能冲突,同一时间一个端口号只能给一个计算机使用
4.固定的使用范围:
0-1024范围是操作系统内部使用的
1024-8000范围是常见的软件已经使用了
我们以后写代码使用8000以后的端口号
扩展知识:
IP+PORT:表示全世界任意一台接入互联网的计算机上的某个具体的应用程序
什么是网址(URL):统一资源定位符,本质:IP+PORT
网络相关设施
1.交换机
能够让接入交换机的多台计算机实现彼此互联
2.以太网通信(mac通信)
原理:有了交换机之后,根据电脑的mac地址就可以实现数据交互
广播:在交换机中喊,所有接入交换机的设备都可以听到
单播:被喊得设备给与回应
缺陷:
mac地址通信仅限于局域网
接入设备过多的时候,会造成广播风暴
3.局域网
有某个固定区域组成的网络
广域网可以看作是一个更大区域的局域网
4.路由器
局域网与局域网直接不能直接跨着访问
路由器作用(功能):将多个局域网连接到一起,不同的局域网可以相互访问
网络编程、OSI七层协议的更多相关文章
- 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 ...
- Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)
Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义: ...
- 软件开发架构与网络之OSI七层协议(五层)
本期内容概要 python回顾 软件开发架构 网络理论前瞻 osi七层协议(五层) 以太网协议 IP协议 port协议 交换机 路由器 局域网 广域网 TCP协议 三次握手 四次挥手 UDP协议 内容 ...
- 网络之OSI七层协议模型、TCP/IP四层模型
13.OSI七层模型各层分别有哪些协议及它们的功能 在互联网中实际使用的是TCP/IP参考模型.实际存在的协议主要包括在:物理层.数据链路层.网络层.传输层和应用层.各协议也分别对应这5个层次而已. ...
- 网络编程-osi七层
一.操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才 ...
- python网络编程-OSI七层模型详解
OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...
- Java网络编程:OSI七层模型和TCP/IP模型介绍
OSI(Open System Interconnection),开放式系统互联参考模型 .是一个逻辑上的定义,一个规范,它把网络协议从逻辑上分为了7层.每一层都有相关.相对应的物理设备,比如常规的路 ...
- CSIC_716_20191204【网络编程 OSI 七层结构】
软件开发架构 C/S架构: Client: 客户端 Server: 服务端 比如: 微信客户端.QQ客户端等... 优点: - 软件的使用稳定 - 节省网络资源 缺点: - 安装麻烦,用户体验差 - ...
- python网络编程-Json序列化功能扩展-软件开发架构-OSI七层协议-TCP-01
面向对象补充知识点(面向对象的应用) 扩展json序列化所支持的数据类型(分析源码) import json from datetime import datetime, date # ------- ...
随机推荐
- MySQL8小时问题
一.问题 获取MySQL连接,8小时内无请求自动断开连接. 二.解决 2.1 分析 MySQL服务器默认的"wait_timeout"是28800秒即8小时,意味着如果一个连接的空 ...
- python函数学习的总结
python函数 part1 函数的作用: 函数以功能(完成一件事)为导向 随调随用减少代码重复性 增强代码可读性 函数的结构: def 函数名(): 函数体 函数的返回值 return:在函数中遇到 ...
- 覆盖率检查工具:JaCoCo 食用指南
一:概述 众所周知,软件的代码覆盖率是衡量软件质量的重要指标, 我们今天简单介绍 JaCoCo 的实际使用示例,它是目前在大多数 Java 项目中应用最广泛的覆盖率检测框架 更多资料参考:JaCoCo ...
- 慢到不能忍?别忍了,Ubuntu 21.10 APT 源修改为华为云镜像源
更新记录 2022年4月15日:本文迁移自Panda666原博客,原发布时间:2021年3月29日. 2022年4月15日:将源改为华为云,华为云更方便.Ubuntu从20.04更新到21.10. 切 ...
- [自制操作系统] 第04回 完善MBR
目录 一.前景回顾 二.改写MBR 三.实现loader 一.前景回顾 在之前我们说到,MBR的作用便是加载操作系统内核到指定位置.而MBR需要通过读取硬盘来获得操作系统内核.在上一回我们已经讲解了硬 ...
- 剖析 SPI 在 Spring 中的应用
vivo 互联网服务器团队 - Ma Jian 一.概述 SPI(Service Provider Interface),是Java内置的一种服务提供发现机制,可以用来提高框架的扩展性,主要用于框架的 ...
- 关于Node.js 链接mysql超时处理(默认8小时)
备注:这是在pm2配置node环境下,超过8小时mysql自动关闭的情况下出现的解决方法:1.封装mysql.js var mysql = require('mysql'); var connecti ...
- 手写网站服务器~用Python手动实现一个简单的服务器,不借助任何框架在浏览器中输出任意内容
写在前面的一些P话: 在公司网站开发中,我们往往借助于Flask.Django等网站开发框架去提高网站开发效率.那么在面试后端开发工程师的时候,面试官可能就会问到网站开发的底层原理是什么? 我们不止仅 ...
- Arrays.asList的使用
Arrays.asList的作用是将数组转化为list,一般是用于在初始化的时候,设置几个值进去,简化代码,省去add的部分. 示例: List<String> menuList = Ar ...
- Task.Run(), Task.Factory.StartNew() 和 New Task() 的行为不一致分析
重现 在 .Net5 平台下,创建一个控制台程序,注意控制台程序的Main()方法如下: static async Task Main(string[] args) 方法的主体非常简单,使用Task. ...