网络编程基础
今日内容:
软件开发架构
远程通信OSI协议
软件开发架构:
c/s架构:
c:客户端 client
s:服务端 server
b/s架构: 本质也是c/s架构
b:浏览器 browser
s:服务器 server
服务端:24小时不间断提供服务
客户端:什么时候想体验服务,就去找心仪的服务端寻求服务
远程通信OSI协议:
实现远程通信,早期的电话需要 — 电话线
大屁股电脑需要 — 网线
笔记本电脑需要 — 网卡
无线电话需要 —— 网卡
所以实现远程通信第一个需要具备的条件是:物理连接介质
此外,计算机与计算机之间要想实现远程通信除了有物理连接介质之外还需要有一套公共的标准/协议
OSI协议:分为两种:
OSI七层协议:
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
OSI五层协议:
应用层
传输层
网络层
数据链路层
物理连接层
1. 物理连接层
基于电信号传输010101001010二进制数据
2. 数据链路层
① 规定的电信号的分组方式 ( 如何规定??? ...... )
② 规定任何一台接入互联网的计算机都必须有一块网卡
网卡:每一块网卡上面都刻有世界上独一无二的编号
编号:12位16进制数 — 又叫 mac 地址 ( 前六位是厂商编号,后六位是流水线编号 )
PS:以上两点合称为 ‘以太网协议’
例子:
交换机就是基于以太网协议进行通讯,属于局域网
互联网就是由N多个局域网彼此相互连接而成的
3. 网络层
这里面着重讲 IP 协议
规定只要是接入互联网的计算机都必须有一个IP地址
IP 地址特点:点分十进制 ,同时地址是动态分配的
IP 地址最小值:0.0.0.0
IP 地址最大值:255.255.255.255
IP 地址目前有两个版本:IPV4 IPV6 ( 由于IPV4已经不够表示目前存在的计算机了,所以推出了IPV6版本 )
4. 传输层
TCP / UDP 协议 — 都是基于端口工作的 (今日先不讲)
端口( port ):用来唯一标识一台计算机上的某个应用程序
( 计算机与计算机之间其实是计算机上的应用程序与应用程序之间的通信 )
端口号的范围:0~65535
注意:0~1024这些都是操作系统默认使用的端口号
建议:使用8000之后的端口
MySQL默认端口:3306
Redis 默认端口:6379
django默认端口:8000
flask 默认端口:5000
端口号是动态分配的
####################################################
IP 地址:用来唯一标识接入互联网的一台计算机
port 端口:用来唯一标识一台计算机上的某个程序
IP + port :用来唯一标识一台接入互联网的计算机上的某个程序
#####################################################
5. 应用层
包括 HTTP 协议、 FTP 协议等多个协议
其中 TCP 协议 着重讲 !!!
TCP 协议:又称 流式协议 、 可靠协议
基于 TCP 协议通信,必须先建立 双向通道
重点来了 !!!!!
TCP 协议中重点:
三次握手 、 四次挥手
三次握手建立连接, 四次挥手断开连接
****** TCP 协议传输数据之所以可靠的原因:
它有一个等待机制;如当向对方发送消息时,消息内容数据会一直保存在内存中
直至对方回应,确保数据已经被传输成功后才会删除内存中的消息内容数据