概念:将计算机彼此链接到一起的就是互联网
作用:实现计算机之间的数据交互
本质:用户基于网络,对数据进行交互
概念:程序员在编写软件时候应该遵守的架构设计。
分类:C/S架构,B/S架构
C:client 客户端
S:server 服务端
客户端顾名思义就是客户使用的端口(app),服务端就是后端为客户端服务的端口
B:browser 浏览器
S:serber 服务端
B/S架构的服务端与C/S架构相同,不够端口是浏览器。
架构 | 优点 | 缺点 |
---|---|---|
C/S架构 | 客户可使用的功能全面 | 必须下载才可使用 |
B/S架构 | 方便,可直接从浏览器使用 | 客户可使用功能较少 |
简介:基于互联网编写代码,基于网络跨区传输信息
学习目的:通过掌握网络编程知识开发C/S架构的软件
发展史:最开始由美国军方研发使用,后转为民用
远程传输前提:必须要一个物理链接介质,电话线,网线,网卡
OSI七层协议:OSI是一个开放性的通信系统互连参考模型,它是一个定义得非常好的协议规范
应用层
与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的
表示层
这一层的主要功能是定义数据格式及加密
会话层
它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理
传输层
这层的功能包括是选择差错恢复协议还是无差错恢复协议
网络层
这层对端到端的包传输进行定义
数据链路层
它定义了在单个链路上如何传输数据
物理层
OSI的物理层规范是有关传输介质的特性,这些规范通常也参考了其他组织制定的标准
IP协议,每台接入互联网的计算机都必须有一个IP地址
IPV4和IPV6,随着社会进步,IPV4的数量已经不够使用,而IPV6可以表示的地址数据目前远远用不完。
私网IP和公网IP,公网IP类似于一个网页了,所有人都可以直接用浏览器访问到,而私网IP不行,所以公网IP需要备案,需要花钱。非法网站大多都是无备案的外网网站。
PORT协议,及端口协议
每个对接用户的交互软件,都有其对应的端口编号,才不会混乱。
端口号的范围是:0~65535
0~1024:系统经常使用的端口号
1024~8000:常用软件端口号
所以根据IP地址和PORT编号,我们就可以确定到底是那台电脑在使用某个程序
IP地址:用于标识全世界独一无二的一台接入互联网的计算机
PORT号:用于标识一台计算机上面的某一个应用程序
所以一个常见的域名其实就是一个IP加PORT地址。
www.baidu.com 解析 202.108.22.5:80
这里完全可以取决于程序员自己
HTTP协议 HTTPS协议 FTP协议 自定义协议
1.规定二进制数据的分组方式
2.规定了‘以太网协议’
只有拥有网卡的计算机,才有资格接入互联网,每块网卡在出厂的时候都有一个独一无二的编号,该编号有12位16进制数组成,前六位是产商编号,后六位是流水线号。
这个编号也被称为'mac地址'
交换机:交换是按照通信两端传输信息的需要,用人工或设备自动完成的方法,把要传输的信息送到符合要求的相应路由上的技术的统称。
局域网:局域网自然就是局部地区形成的一个区域网络
广播与单播
广播是在交换机中群发
单播是客户端与服务器之间的点到点连接(mac地址)
路由器
路由器(Router)是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备
TCP和UDP都是属于传输层
TCP协议
面向链接TCP
“面向连接”就是在正式通信前必须要与对方建立起连接,是按照电话系统建模的。比如你给别人打电话,必须等线路接通了、对方拿起话筒才能相互通话。
通道的建立——三次握手:
(1)在建立通道时,客户端首先要向服务端发送一个SYN同步信号。
(2)服务端在接收到这个信号之后会向客户端发出SYN同步信号和ACK确认信号。
(3)当服务端的ACK和SYN到达客户端后,客户端与服务端之间的这个“通道”就会被建立起来。
通道的关闭——四次挥手:
(1)在数据传输完毕之后,客户端会向服务端发出一个FIN终止信号。
(2)服务端在收到这个信号之后会向客户端发出一个ACK确认信号。
(3)如果服务端此后也没有数据发给客户端时服务端会向客户端发送一个FIN终止信号。
(4)客户端在收到这个信号之后会回复一个确认信号,在服务端接收到这个信号之后,服务端与客户端的通道也就关闭了。
UDP协议
无连接的UDP协议
“无连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。与手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。
相对于TCP协议需要基于用户同意才可接受,UDP的安全性与信息传输完整性不如TCP协议。
TCP与UDP区别
TCP | UDP | |
---|---|---|
是否连接 | 面向连接 | 无连接 |
传输可靠性 | 可靠的 | 不可靠的 |
应用场景 | 传输少量数据 | 大量数据 |
速度 | 慢 | 快 |