早期数据交互的格式是没有网络的
两个文件之间的数据交互需要通过第三个文件
a,b文件同时和c文件交互,
a文件把数据先存放c文件中
b文件从c文件取,反之亦然
socket (套接字) 是一个收发数据的工具
有了网络之后
a文件中的数据,通过网络协议,转化101010...二进制进行发送
a文件借助socket发送数据
b文件借助socket接受数据
c/s 架构 :
c => client (客户端)
王者荣耀 微信 qq wow dnf ...
s => server (服务端)
天河三号 (百亿亿次)
B/S 架构 :
b => Brower (浏览器)
谷歌,火狐,360,ie
通过输入网址,访问对方的服务器,对方服务器响应之后,把数据返回,浏览器通过返回的数据,渲染页面,看到最后的结果
s => server (服务端)
一旦开启,永不关机(除非宕机)
在未来,更倾向于使用B/s架构,成为新的趋势
小程序: 微信小程序, 支付宝小程序
(1) 省去复杂下载安装环节,节省手机电脑的空间
(2) 因为手机带来的便捷性,随时随地使用到想要的应用,提升用户的满意度
一台主机有两个重要标识:
(1)mac地址:标记一台机器的物理地址 (不可变)
(2)ip 地址:#标记一台机器的逻辑地址 (可变)
IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。ip地址用来标记网络上的每一台主机,方便在收发数据,网络请求时能够找到响应;
ip地址分为两种 ipv4 和 ipv6: 分类ipv4 和 ipv6:
ipv4地址是一个32位的二进制数
ipv6地址是一个128位的二进制数
ipv4: 以4段点分十进制表示 X.X.X.X => 范围
0.0.0.0 ~ 255.255.255.255 地址范围2^32-1
ipv6 : 以8段冒分十六进制表示 X:X:X:X:X:X:X:X => 范围
0:0:0:0:0:0:0:0 ~ FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF地址范围2^128-1
ip地址的最后一位0或者255 两个数字不能用,一般最后一位0表达的是网段,255代表广播地址
网段 : 网段的作用,主要用来划分同一区域里的某些机器是否能够互相通信。在一个网段里可以不同过因特网,直接对话
判别的依据:如果IP地址和子网掩码相与得到的值相同就是同一网段
内网 : 以下地址为预留地址,永远不会被当做公网ip来分配
192.168.0.0 - 192.168.255.255
172.16.0.0 - 172.31.255.255
10.0.0.0 - 10.255.255.255
外网 :
在任何地方都可以访问的就是外网(排除防火墙的因素)
子网掩码:区分网段和主机
255.255.255.0 / 255.255.0.0 / 255.0.0.0
ip1:192.168.10.12 ip2:192.168.1.16
端口:"端口"是英文port的意译,是具体某个程序与外界通讯的出口。 取值范围:0~65535
使用时至少8000以上 访问地址加端口:192.168.2.1:8000
局域网:在同一区域内由多台计算机互联形成通讯。【具有可重复的内网ip】
广域网:在不同区域内有多台计算机互联形成通讯。【具有唯一的公网ip】
交换机:对同一网段的不同机器之间进行数据转发的设备 [每一台机器和交换机相连,形成通信]
路由器:对不同网段的不同机器之间进行数据转发的设备 [每一个局域网和路由器相连,形成通信]
arp协议:每台主机都有arp缓存表 ,主要作用通过ip找mac的一个协议规则
【实现方式:通过交换机一次广播,一次单播找到的】
局域网内,各个主机的通讯
网段的作用:
主要用来划分同一区域里的某些机器是否能够互相通信。
在一个网段里可以不同过因特网,直接对话
判别的依据:
如果IP地址和子网掩码相与得到的值相同就是同一网段
"""
逻辑与
全真则真,一假则假
逻辑或
一真则真,全假则假
"""
ip1: 192.168,11.251
子网掩码:255.255.255.0
11000000 10101000 00001011 11111011
11111111 11111111 11111111 00000000
11000000 10101000 00001011 00000000 => 192.168.11.0 (网段)
ip2: 192.168,12.35
子网掩码:255.255.255.0
11000000 10101000 00001100 00100011
11111111 11111111 11111111 00000000
11000000 10101000 00001100 00000000 => 192.168.12.0 (网段)
ip1: 192.168,11.251
子网掩码:255.255.0.0
11000000 10101000 00001011 11111011
11111111 11111111 00000000 00000000
11000000 10101000 00000000 00000000 => 192.168.0.0 (网段)
ip2: 192.168,12.35
子网掩码:255.255.0.0
11000000 10101000 00001011 11111011
11111111 11111111 00000000 00000000
11000000 10101000 00000000 00000000 => 192.168.0.0 (网段)
下面的网络相同,意味着可以互相通信;
端口:具体某个程序与外界通讯的出口 取值范围:0~65535
192.168.2.1:8000 访问这个世界上任何一个电脑里的任何一个软件
自定义端口时,最好命名8000以上的端口号
https://blog.csdn.net/l_smalltiger/article/details/81951824
20 : FTP文件传输协议(默认数据口)
21 : FTP文件传输协议(控制)
22 : SSH远程登录协议
25 : SMTP服务器所开放的端口,用于发送邮件
80 : http用于网页浏览,木马Executor开放此端口
443: 基于TLS/SSL的网页浏览端口,能提供加密和通过安全端口传输的另一种HTTP => HTTPS
3306:MySQL开放此端口
应用层 (应用层,表示层,会话层)
封装数据:
根据不同的协议,封装不同格式的数据
http (超文本传输协议)
HTTPS (加密传输的超文本传输协议)
FTP (文件传输协议)
SMTP (调子邮件传输协议)
传输层:
封装端口:
指定传输协议(TCP协议/UDP协议)
网络层:
封装ip:
ipv4版本 / ipv6
数据链路层:
封装mac地址:
指定mac地址(arp协议[ip->mac] / rarp协议[mac->ip])
物理层:
打成数据包,变成二进制的字节流,通过网络进行传输
交换机: 从下到上拆2层,拆到数据链路层
路由器: 从下到上拆3层,拆到网络层(得到对应的网段)
arp协议: 通过ip -> mac
rarp协议: 通过mac -> ip
arp协议整体是通过: 一次广播 + 一次单播 实现
arp协议的完整过程:
电脑a发现目标主机没有mac,先发送arp广播包,把mac标记成全F的广播地址
交换机接受到arp的广播包,进行从下到上拆包,拆2层,拆到数据链路层看到全F广播地址,开始广播
把这个广播包发送给每一台主机
每台主机得到广播包后,都开始拆包,如果该数据包找寻的主机不是自己,自动舍弃
路由器得到arp广播包后,从下到上拆包,拆3层,拆到网络层,得到网段信息
通过路由器的对照信息表,找到网段对应的网关(接口)
对应网关的这台交换机得到arp广播包后,从下到上拆包,拆2层,发现全F广播地址进行广播
数据库主机收到广播包后,依次从下到上拆包,发现自己是目标要找的那台主机,
把自己的ip->mac对照信息封装,变成arp响应包,发送给对应的交换机
交换机得到arp响应包之后,依次进行单播,返回给最终的原主机
在回来的过程中,所有得到过相应arp广播包的主机都会自动更新自己的arp解析表,方便下次使用
TCP(Transmission Control Protocol)一种面向连接的、可靠的、传输层通信协议(比如:打电话)
优点:可靠,稳定,传输完整稳定,不限制数据大小
缺点:慢,效率低,占用系统资源高,一发一收都需要对方确认
应用:Web浏览器,电子邮件,文件传输,大量数据传输的场景
# udp
UDP(User Datagram Protocol)一种无连接的,不可靠的传输层通信协议(比如:发短信)
优点:速度快,可以多人同时聊天,耗费资源少,不需要建立连接
缺点:不稳定,不能保证每次数据都能接收到
应用:IP电话,实时视频会议,聊天软件,少量数据传输的场景
# TCP 三次握手
客户端发送一个请求消息,与服务端建立连接
服务端接受这个请求,发出响应消息,回应客户端,也要与客户端a建立连接(看下a是否同意)
客户端接受服务端的响应消息之后,发送回复消息(表达同意,到此客户端与服务端建立连接成功)
# TCP 发送数据
每次发送一次数据,都会对应一个回执消息,如果发送方没有接受到回执消息,那么该数据包在发送一次;
# TCP 四次挥手
客户端向服务端发送一个断开连接请求(代表客户端没有数据给服务端)
服务端接受请求,发出响应
等到服务端所有数据发送完毕之后
服务端向客户端发送断开连接请求
客户端接受请求,发出响应
等到2msl,msl(最大报文段生存时间)这么长时间之后
客户端与服务端彻底断开连接