网络编程
软件开发架构
1 c/s架构
c 客户端
s 服务端
2 b/s架构
b 浏览器
s 服务器
c/s架构就比如我们现在手机上的软件,大多数都是c/s架构
也有一些已经是b/s架构,比如微信,中的小程序,支付宝的第三方的功能。
什么是服务端,和客户端
服务端就是,24小时不间断的提供服务
客户端就是,任意时间都可以去找到服务端,寻求服务
网络编程的发展史
往往一个技术的发展都是来源与军事
网络通信具备的条件
1 物理传输介质(电话线,网线,网卡)
2 一套公共的协议(OSI协议,比如,两个不同的类的人,想要交流,必须要学会同一门语言,所以才会定义一套协议)
OSI协议(七字口诀;应表会传网数物)
OSI 7层协议
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
我们开发人员觉得5层就够了,然后就右分为以下5层
应用层
传输层
网络层
数据链路层
物理连接层
什么是物理连接层
基于电信号,2进制连接
什么是数据链路层(以太网协议)
1 规定电信号的分组方式,二进制的分组方式
2 规定了,每一台电脑连接连接到互联网都必修要有一个网卡
每一块网卡都刻有世界上独一无二的一个12位的16进制数编号
前6位是厂商编号
后6位是流水编号
这个也是我们电脑的mac地址
交换机工作流程图
交换机,是基于以太网通信的
注意交换机是不能跨局域网通信的,如果,有很多的电脑都要访问电脑1,会出现广播风暴
广播;交换机,向各个电脑发请求
单播,电脑向交换机发请求
如果我们要跨局域网通信我们需要路由器
路由器工作流程图
一个局域网类,要想访问另一个局域网的服务器,
必须借助路由器
互联网是由多个局域网连接而成的
什么是网络层
IP协议
规定一台接入互联网的计算机,必须有一个ip地址
ip地址的特点,点分十进制
ip最小地址 0.0.0.0
ip最大地址 255.255.255.255
ip地址现在有两个版本 ipv4 ipv6
ip地址是动态分配的
什么是传输层
TCP/UDP都是基于端口的工作协议
计算机与计算机之间实际上是通过计算机上的应用软程序来通信的
端口用来标识计算机上的应用程序
端口号的范围0-65535
注意0-1024是操作系统默认使用的端口号
我们应该使用8000之后的端口号
常用软件的端口号
mysql 3306
redis 6379
django 8000
flask 5000
什么是应用层
http协议
ftp协议
TCP协议
流式协议,可靠协议
基于tcp通信,必须建立双向通道
tcp的三次握手,四次挥手
tcp协议的稳定性在于,传输数据时候,是有反馈的
如果服务器给客户端传输数据,客户端没有给服务器返回反馈
服务端就会隔一段时间,再给客户端发数据
如果,客户端一直没有反馈数据
服务端就会关闭通道
图解;
三次握手
四次挥手
原文地址:https://www.cnblogs.com/cherish937426/p/11311881.html