网络编程基础
软件开发架构
软件开发结构: 程序员在编写软件时候应该遵循的架构设计
规定了程序的请求逻辑,功能划分模块等等
1.C/S架构
client:客户端
Server:服务端
'''
客户端:就是我们平时使用到的软件,都是互联网公司提供给我们的客户端,为我们提供服务的,
客户端相当于需要体验服务的客人
客户端可以有很多人同时使用 同时体验服务
'''
比如淘宝客户端,我们打开淘宝就可以享受淘宝的服务。
'''
服务端:
相当于对外提供服务的店面,一个服务端可以同时服务多个客户端
作为服务端必备的多个条件
1.24小时不间断提供服务
2.固定的地址
3.能够服务多个客人(高并发)
'''
单机游戏就是把 服务端和客户端同时储存在了电脑上,所以才可以支持不需要网络就可以进行服务
2.B/S架构
B:browser 浏览器
S:server 服务器
#将 浏览器 充当 各个程序的 客户端,用户无需下载,
C/S架构
优点:客户端支持高度定制,功能更多
缺点:用户需要下载才可以使用
B/S架构
优点:无需下载,打开浏览器即可体验
缺点:无法做到高度定制,功能相对简单
'''
目前行业趋势更加倾向于 B/S架构 更加轻量化
因为可以统一接口,类似用户使用微信 或者 支付宝 就可以达到同时使用很多功能
'''
网络编程简介
1.什么是网络编程
基于网络编写代码 能够实现数据的远程交互
2.学习网络编程的目的
能够开发c/s架构的软件
3.网络编程的起源
"""
最早起源于美国军事领域
想实现计算机之间数据的交互
最早的时候只能用硬盘拷贝
之后发明了网络编程
"""
4.网络编程必备条件
数据的远程交互
1.早期的电话
电话线
2.早期的大屁股电脑
网线
3.笔记本电脑、移动电话
网卡
ps:实现数据的远程交互必备的基础条件是物理连接介质
OSI七层协议简介
OSI七层协议:
规定了所有计算机在远程数据交互的时候必须经过相同的处理流程,在制造过程中必须拥有相同的功能硬件。
七层协议具体为:
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
方便记忆:应 表 会 传 网 数 物
也可以归属为5层:
应用层 传输层 网络层 数据链路层 物理连接层
也可以统称为4层:
应用层 传输层 网络层 网络接口层
# 接收网络消息 = 数据由下往上传递
数据链路层:操作系统在网卡接收数据,系统解析接收到的数据包(处理数据帧);
网络层:系统处理IP头;
传输层:系统处理TCP头,根据得到的端口号,系统将数据包交给应用程序处理;
应用层:应用程序处理数据;
# 发送网络消息 = 数据由上往下传递
应用层:浏览器将请求数据封装为一个HTTP请求;
传输层:TCP协议将数据包再次封装为TCP数据包;
网络层:IP协议再次封装;
数据链路层:以太网技术,携带MAC(系统将数据包发送到本机网卡),封装为数据帧;
OSI协议之物理连接层
主要用户确保计算机之间的物理连接介质 用于接收传递数据(数据类型:bytes类型,二进制)
OSI协议之数据链路层
1.规定了电信号的分组方式
2.以太网协议
规定了计算机在出厂的时候必须有一块网卡,网卡上有一串独一无二的数字
相当于计算机的身份证
该数字为:12位数的16进制数据
前六位为 产商编号 后六位是生产流水线号
该数字也称为;以太网地址/MAC地址
网络相关专业名词
计算机之间想要实现数据交互,必须要'连接'到一起
1.交换机
能够将所有介入交换机的计算机彼此互相连接
2.广播
首次查找处于同一个交互机的其他计算机,需要朝交换机里面吼一嗓子
3.单播
首次被查找的计算机回应了查找他的计算机,并附带了自己的mac地址
4.广播风暴
接入同一台交换机的多台计算机同时发送广播
5.局域网
可以简单理解为多个交互机或多个计算机在同一个交换机组成的网络,在局域网内可以直接使用mac地址通讯
6.广域网
可以简单的理解为范围更大的局域网,类似同省 同区等
7.互联网
由所有局域网,广域网连接到一起组成的网络,世界上有的网络都是连接在一起的
8.路由器
不同的局域网计算机之间是无法直接实现数据交互的,需要由路由器连接
OSI之网络层
IP协议:规定了所有介入互联网的计算机都必须有一个ip地址,类似身份证号
ip地址:是动态分配的,不同场所不同环境下ip地址是不同的
mac地址:是物理地址,可以查看 永远无法修改
ip地址特征:
IPV4;点分十进制
最小 0.0.0.0
最大 255.255.255.255
IPV6:
有不同的数字 字母 符号组成 可以生成无限个不同的地址
IP地址:可以跨局域网传输的
OSI协议之传输层
PORT协议(端口协议)
用来标示一台计算机上面的某一个应用程序
范围:0 - 65535
特征:动态分配(洗浴中心的号码牌,用的时候发一个,不用了再回收过来)
建议:
0-1024 系统默认需要使用
1024-8080 常见软件的端口号
建议我们自己写的程序使用8100-50000直接的端口号即可
URL:统一资源定位符(网址)
网址的本质就是由 IP 和 PORE端口组成的
ip+PORT端口:能够定位出全世界独一无二的一台计算机上面的某个应用程序
域名解析:将网址解析成为 ip + PORT端口
举例: 192.168.10.12:80
我们之所以不直接使用ip加端口访问程序,是因为太难记了,所以才发明了域名
IP:PORT 实际使用冒号连接
114.55.205.139:80
标签:计算机,编程,基础,网络,地址,数据,客户端
From: https://www.cnblogs.com/moongodnnn/p/16892973.html