早期数据交互原理——>socket(套接字)的模型
socket(套接字)是收发数据的一个工具
a文件与b文件之间的交流是通过c文件实现的
a文件把数据放到c文件中,b文件从c文件中取
b文件把数据放到c文件中,a文件从c文件中取
出现网络后:
a文件中的数据,可以通过网络协议,转化成像101010这样的电信号,进行发送
a文件借助socket发送数据
b文件结束socket接收数据
1、C/S 架构
c => client 客户端
是具体的一个软件,像QQ,微信这种
s => server 服务端
天河三号 百亿亿次
2、B/S 架构
b => browser 浏览器
通过输入网址,访问对方的服务器,对方服务器响应请求之后,吧对应的数据给你返回,就可以你的浏览器上看到想要的内容
s => server 服务端
3、未来的发展方向
相对于C/S架构,B/S架构更好,也是未来的发展方向
(1)省去复杂漫长的下载安装环节,节省收集或者电脑的硬盘空间
(2)利用手机的便捷性,随时随地可以访问到网站和相应的服务,提升效率,加快速度
1、IP地址
IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。
查看IP的两种方式:
第一种:通过电脑中的网络和Internet设置查看本机网络信息
第二种:通过cmd中执行ipconfig命令查看本机网络信息
ip地址的最后一位0或255,不能使用;
255(1111)是广播地址,0(0000)是网络地址(网段)
2、MAC地址
mac地址即物理地址是唯一的,它是一个用来确认网络设备位置的位址。
3、网段
网段(network segment)一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分。
判别依据:如果IP地址和子网掩码想与,得到的值相同就是同一网段
子网掩码:区分网段和主机和一串IP
案例一:
ip 192.168.31.43
11000000 10101000 00011111 00101011
子网掩码 255.255.255.0
11111111 11111111 11111111 00000000
IP & 子网掩码
11000000 10101000 00011111 00000000
ip1的网段:192.168.31.0
ip 192.168.30.44
11000000 10101000 00011110 00101100
子网掩码 255.255.255.0
11111111 11111111 11111111 00000000
IP & 子网掩码
11000000 10101000 00011110 00000000
ip2的网段:192.168.30.0
ip1的网段和ip2的网段不同,不一样,所以不在同一个网段不能通信
案例二:
ip 192.168.30.44
11000000 10101000 00011110 00101100
子网掩码 255.255.0.0
11111111 11111111 00000000 00000000
ip & 子网掩码
11000000 10101000 00000000 00000000
ip1的网段:192.168.0.0
ip 192.168.30.44
11000000 10101000 00011110 00101100
子网掩码 255.255.0.0
11111111 11111111 00000000 00000000
ip & 子网掩码
11000000 10101000 00000000 00000000
ip2的网段:192.168.0.0
ip1的网段与ip2的网段完全相同,所以再同一个网段可以通信
注:ping 域名 可以查看网络是否通畅(顺便可以拿到IP)
4、端口
某个程序与外界通讯的出口
通过ip + 端口 可以找到世界上任何一台电脑的任何一个软件
端口的范围:0~65535
形式:192.168.2.1:8000
自定义端口号时,起8000以上
前1024个端口被系统占用了
20 端口:FTP 文件传输协议(默认数据口)
21 端口:FTP 文件传输协议(控制)
22 端口:SSH 远程登录协议
23 端口:telent(终端仿真协议),木马Tiny Telnet Server
25 端口:SMTP 服务器所开放的端口,用于发送邮件
80 端口:http,用于网页浏览,木马Executor开放此端口
443 端口:基于 TLS/SSL 的网页浏览端口,能提供加密和通过安全端口传输的另一种HTTP
3306端口:Mysql 开放此端口
应用层(应用层,表示层,会话层):
封装数据
依据不同的协议,封装对应格式的数据消息
HTTP【超文本传输协议】
HTTPS【加密传输超文本协议】
FTP【文件传输协议】
SMTP【电子邮件传输协议】
传输层:
封装端口
指定传输的协议(TCP协议/UDP协议)
网络层:
封装IP
版本IPV4或IPV6
数据链路层:
封装mac地址
指定链路层的协议(arp协议(ip=>mac)/rarp协议(mac=>ip))
物理层:
打成数据包,变成二进制字节流,,通过网络进行传输
交换机:对同一网段的不同机器之间进行数据转发的设备(每一台机器和交换机相连,形成通信)
交换机解析的时候从下到上拆两层,拆物理层和数据,可以找到mac地址
路由器:对不同网段的不同机器之间进行数据转发的设备(每一个局域网和路由器相连,形成通信)
路由器解析的时候从下到上拆三层,拆物理层、数据链路层和网络层,可以找到ip
ARP协议:通过ip => mac (arp地址解析协议)
作用:通过交换机的一次广播和一次单播找到对应的mac地址
电脑a先发送一个arp的广播包,把mac标记一个全FF-FF-FF-FF-FF-FF的广播地址
交换机接收到arp的广播包,从下到上进行拆包,拆2层,到数据链路层得到mac
发现mac是全F的广播地址,重新打包,交换机开始广播,所有连接在交换的设备都会收到arp广播包
各个主机开始拆包,对应FF广播地址可以跳过,继续向上找,发现ip不符合,直接舍弃
路由器允许从下到上拆三层,拆到ip,得到对应的网段
打开路由器的对照表 网关->网段,重新打包,找到对应的接口发送数据包
对应的交换机得到数据包,重新从下到上拆包,2层,发现全F,开始广播
数据库的主机接收到广播包,从下到上拆包,ip正确,符合自己的条件
数据库主机会把ip->mac的映射关系的数据发送回当前的交换机,
此时,交换机通过单播,把对应的ip和mac发送回原来请求的主机
数据在通过路由器,交换机发送回去
原主机在得到了ip 和 mac 之后,
重新把真实数据进行打包,从而完成发送
如果没有mac,主机一开始会发送arp请求包(发出找mac的请求)
各大主机在接受arp请求包的时候,都会去对照自己本机当中的arp解析表(ip->mac)
如果没有,这个arp得请求包舍弃,
如果有,会把自己的ip和mac封装在arp的响应包当中给交换机进行单播
在回来的过程中,所有相应的主机都会拿响应包中的数据更新自己的arp解析表,方便下次使用.
arp协议: 通过ip -> mac
五、TCP/UDP协议
三次握手
SYN 创建连接
ACK 确认响应
FIN 断开连接
三次握手
客户端发送一个请求,与服务端建立连接
服务端接受这个请求,并且响应与客户端建立连接的请求
(服务端的响应和请求是在一次发送当中完成的)
客户端接受服务端的请求之后,把消息在响应给服务端
接下来客户端和服务端可以发送数据了.
每发送一个数据出去,对应的主机都会有一个回执消息,确认数据的接受情况,
如果没有得到回执消息,该数据会重发一次,保证数据的完整.
不会一直不停的发下去,有时间最大允许周期.
原文:https://www.cnblogs.com/wylshkjj/p/13046914.html