网络编程
软件开发架构
c/s 架构(client / server)
c:客户端
s:服务端
b/s 架构(browser / server)
b:游览器
s:服务器
ps : bs 架构本质也是cs 架构
什么是c/s 架构 c/s 架构就是手机或者电脑上的应用程序 就是 c/s架构
什么是b/s架构 b/s 架构就就是游览器系列的比如 百度 搜狗 就是b/s 架构
服务端 :就是24小时不停止的工作
客户端 :就是想访问服务端 了就访问 不想访问了 就结束
网络发展史:
现在任何的先进技术都是来源于军事
OSI协议
七层协议
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
五层协议
应用层
传输层
网络层
数据链路层
物理连接层
1 物理链接层
基于电信号传输的一系列二进制数据(0101010101010)
2 数据链路层
1,规定了物理连接层里面的电信号的分组方式
2,规定了任何一太接入互联网的计算机都必须有一块网卡
网卡上的12位16进制数
前6位是生产厂家
后6位是流水线编号
我们管这12数叫做mac地址
综合上述两点 合成为""以太网协议""
交换机
基于以太网协议通信
以太网:就是基于局域网和交换机
广播:交换机向每一台电脑发送 问每一台电脑的mac地址是否和发送请求的的那一台匹配
如果匹配上了那么就匹对成功
但是不能跨局域网通信如果想通过你的局域网访问他人的局域网那么就要通过路由器
什么是互联网
是由N多个局域网彼此之间链接而成的就是互联网
3,网络层
IP协议
规定只要是接入互联网的计算机都必须有一个IP地址
ip地址的特点:点分十进制
ip地址最小:0,0,0,0
ip地址最大255,255,255,255
ip 地址现在又两个版本 一个是IPV4;IPV6(由于ipv4已经不能够储存这个多的ip了 所以创建了ipv6
IP地址是动态分配的
4传输层
TCPUDP都是基于端口工作的协议
端口(poet)
计算机与计算机之间其实就是计算机的应用程序与应用程序的通信
端口:唯一标识一台计算机上的某一个应用程序
端口号的范围在0~65535
注意:0~1024这些都是操作系统默认使用的端口号
建议使用8000之后的端口
MYSQL默认端口:3306 数据库
Redis默认端口:6379
django默认端口:8000
flask默认端口:5000
端口号是动态分配的
比如qq第一次分配的是8989那么你在退出,在登录端口有可能就是9090
总结
ip地址:就是用来标识接入互联网的一台计算机
port端口:用来唯一表示一台计算机上的某一个应用程序
ip+port 就是标识接入互联网的一台计算机上的某一个应用程序
5,应用层
HTTP协议
FTP协议
TCP协议
流式协议,可靠协议
基于TCP协议通信,必选先建立双向通道
三次握手建立链接
三次握手 首先客户端请求服务器能不能给我一个数据,服务器回复可以,,然后客户端回复收到,这样三次握手就建立成功
四次挥手断开连接
TCP协议传输数据之所以可靠的原因就在于又双向通道吗???
答案并不是:而可靠的原因是:TCP有反馈系统,发送消息之后必须等到对方确认收到消息才会将数据从内存中删除否则他会每隔一段时间发送一次