一、软件开发架构:
1、 C/S架构:Client与Server 客户端与服务端架构 例如:手机APP程序,QQ,微信等属于客户端
B/S架构:Browser与Sever 浏览器端与服务器端 例如:百度、搜狗等一些浏览器
补充:B/S架构本质也是C/S架构,实现的原理基本一致
2、服务端:就是24小时不间断提供服务,客户端:是什么时候需要访问数据时就直接去服务端寻求匹配
二、学习网络编程后:就可以开发一个C/S架构的软件,学习 并发 数据库 前端 diango 就可以开发一个B/S架构的软件
三、网络编程的发展史:
回顾历史任何先进的技术最早都来源与军事,简单的额概括
1:早期的电话: 通过电话线来实现通信
2:早期的大型计算机: 通过网线连接
3:如今的笔记本电脑,无线电话 网线 网卡
想要实现远程无障碍通信第一个需要具备的条件是:物理连接介质,还需要一套公共的标准和协议规范
四: OSI协议:
相关详细内容:https://baike.baidu.com/item/七层模型/1441391?fr=aladdin
OSI 七层协议 : 应用层 表示层 回话层 传输层 网络层 数据链路层 物理连接层
也可以加OSI五层协议: 应用层 传输层 网络层 数据链路层 物理连接层
"应表会传网数物"
1:物理连接层
建立、维护、断开物理连接。(由底层网络定义协议)
基于电信号传输0101010101二进制数据
2:数据链路层:
(1):规定的电信号的分组方式
(2):规定了任何一台接入互联网的计算机都必须有一块网卡,每一块网卡上面都刻有世界上独一无二的编号
满足以上条件的合称为”以太网协议“
mac地址:12位16进制数:前6位是厂商编号,后6位是流水线的编号,这个数字称为Mac地址,
MAC(Media Access Control,介质访问控制)地址,硬件地址,用来定义网络设备的位置,Mac地址是集成在网卡上的
IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的
IP地址就如同一个职位,而MAC地址则像是去应聘这个职位的人。职位既可以由甲担任,也可以由乙担任
(3)交换机:
基于以太网协议通信,不能跨局域网通信
(4): 互联网是有N多个局域网彼此之间的连接而成
3、网络层:
IP协议:规定了只要是接入互联网的计算机都必须有一个IP地址
(1):IP地址是指互联网协议地址,是一个32位的二进制,特点通常用”点分十进制“表示成a,b,c,d)的形成,是动态匹配的
(2):IP地址的最小值:0.0.0.0,最大地址为:255.255.255.255
(3):IP地址目前有两个版本 :ipv4 IPv6 (由于IP v4已经不够表示目前存在的计算机了,所以推出了ipv6)
(4):一个ip地址通常写成四段十进制数,例:172.16.10.1
4、传输层:
TCP/UDP都是基于端口工作的协议,
端口(port):可以认为是设备与外界通讯交流的出口,是用来唯一标识一台计算机上某个应用程序
端口号的范围:0~65535
0~1024这些都是操作系统默认使用的端口号
MySQL默认端口:3306
redis默认端口:6379
Diango默认端口:8000
flask默认端口:50000
端口是动态分配的:特点是:第一次启动分配的端口和关闭再次启动端口号可能都在变化
总结:IP地址:用来唯一标识接入互联网的一台技算机,port端口:用来唯一标识一台计算机的某个应用程序
IP+port:唯一标识接入互联网一台计算机上的某个应用程序
(因此ip地址精确到具体的一台电脑,而端口精确到具体的程序。)
5、应用层:
(1):HTTP协议和 FTP协议 HTTP协议就加不加S的区别加“s”代表是经过认证的:如常看到的https:// 和http://
(2):TCP协议:流式协议,可靠协议,基于TCP协议通信 必须先建立双向通道
TCP协议传输数据之所以可靠的原因就在于有双向通道??
不只是基于网络的双向通道,还有是基于反馈机制,有请求的同时也有反馈的请求返回
(反馈机制就是我给你一直发送请求,你必须有回应的消息,收到了才会删除内存里的内容然后传送给请求者)
五、三次握手连接
可以简单的比喻成:挖通道,你挖我的,我也挖你的,或者是男女之间的恋爱关系,相互暧昧一方表白后获取回应,成功确定关系
双向通道的反馈机制:(中间层)
洪水攻击概念
六、三次握手四次挥手
中间的两步不能合并,因为客户端发送的请求,服务端还未来得立马断开请求,有一个反时间,举例:男女分手 女的不能果断同意,死缠烂打,
断开指的是女的另寻他欢后才果断分手:
七、四次挥手断连接