网络编程
一.网络编程
1.软件开发架构
①C/S架构
c:client 客户端 s:serve 服务端
②b/s架构
b:browser 浏览器 s:serve服务端
手机端:好像c/s架构比较火,其实不然,微信小程序,支付宝第三方接口统一接口!
PC端:b/s比较火
本质:b/s其实也是c/s
服务端:24小时不间断提供服务,谁来我就服务谁
客户端:想体验服务的时候,就去找服务端体验服务
学习网络编程 >>> 开发cs架构的软件
并发编程,前端,数据库,框架 >>> 开发bs架构的软件
起源于:美国军事,想要实现远程数据传输
如何实现远程沟通交流?
电话插电话线
大屁股电脑插网线
笔记本电脑无线网卡
想要实现远程通信,第一具备的条件就是:物理连接介质
不同国家的人交流需要一个公共的语言作为媒介>>英语
计算机与计算机想要实现远程通信,光有物理连接介质是不够的,他们也需要一个共同的标准 >>>>>协议
二、 OSI七层协议(模型)!
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
进一步简化成五层
应用层(包含了表示层和会话层)
传输层
网络层
数据链路层
物理连接层
1.物理连接层:
实现计算机之间物理连接,传输的数据都是01010的二进制
电信号工作原理:电只有高低电平
2.数据链路层(‘以太网协议!’)
①.规定了二进制数据的分组方式
②规定了只要是介入互联网的计算机,都必须有一块网卡
网卡上刻有世界唯一的编号:
每一块网卡出厂的时候都烧制上了一个世界唯一的mac地址,长度为48位二进制,通常由12位16进制表示(前六位是厂商编号,后六位是流水线号)
我们把网卡上刻有的编号叫做电脑的>>>mac地址
------->>>> 上面的两个规定其实就是‘以太网协议‘’!
基于以太网协议通信:通信基本靠吼!
弊端:广播风暴
交换机:如果没有交换机,你的电脑就变成了马蜂窝,有了交换机之后,所有的电脑只需要有一个网卡连接交换机
即可实现多台电脑之间的物理连接
3.网络层(IP协议)
规定了计算机都必须有一个IP地址
ip地址特点:点分十进制
有两个版本ipv4和ipv6 为了能够兼容更多的计算机
最小0.0.0.0 (ipv6的话就是0.0.0.0.0.0)
最大:255.255.255.255
IP协议可以跨局域网传输
IP地址能够唯一标识互联网中独一无二的一台机器!
4.传输层(端口协议)
TCP,UDP基于端口工作的协议!
其实计算机之间通信其实是计算机上面的应用程序之间的通信
端口(port):唯一标识一台计算机上某一个基于网络通信的应用程序
端口范围:0 - 65535(动态分配)
注意:0-1024是归操作系统分配的端口号
通常情况下:我们写的软件端口建议起在8000之后
flask框架默认端口5000
Django框架默认端口8000
MySQL数据库默认端口3306
Redis数据库默认端口6379
注意:一台机算上同一时间一个端口号只能被一个应用程序占用
小总结:
IP地址:唯一标识世界接入互联网的独一无二的机器
port端口号:唯一标识一台计算机上的摸一个应用程序
ip+port:能够标识世界上独一无二的一台计算机上的某一个应用程序
补充:arp协议:根据IP地址解析mac地址
应用层(HTTP协议,FTP协议)
TCP协议(流式协议,可靠协议)
三次握手四次挥手