操作系统:是一个软件,是操作链接计算机硬件与计算机软件的纽带,有windows,linux,macOS
C/S B/S架构:
C:client 客户端
B:browser 浏览器
S:server服务器
C/S:基于客户端与服务器的架构,QQ,微信,暴风影音,快播
B/S:特殊的C/S架构
网络通信:从一台计算机的一个软件将一个数据(文件,视频,音频)发送到另一台电脑的这个软件上
1一系列的物理连接介质
2地址确定对方的软件的位置
3一系类互联网协议
五层协议:
物理层:
物理连接介质,光纤,双绞线
物理层发送的数据:高低电平.010101011,物理层只是单纯的发送01010101,但是数据应该进行分组,源地址,目标地址,这些物理层做不了
数据链路层:主要就是对数据进行分组,封包:源地址,目标地址,早期每个公司都有不同的标准,后来统一标准:以太网协议
规定数据分为两部分:
数据头 | 数据
数据头规定 固定18个字节
数据头部分:
源地址:6个字节
目标地址:6个字节
数据类型:6个字节
将数据分为组的形式:一组电信号:数据报,也叫一帧
head长度+deta长度=最短64字节,最长1518字节,超过最大限度就分片发送
网卡:mac地址.就是计算机的唯一标识,计算机出厂就会有网卡,网卡上就有一个mac地址
12位 16进制:40-8D-5C-93-F1-DE 前六位:厂商编号,后六位:流水线号
计算机通信方式:广播,吼
理论上:有了mac地址,加上广播的方式,全世界所有的计算机都可以通信了
实际不行,广播风暴,效率低,工作量太大
接下来规定:mac+广播的形式只能在局域网中实行
原则上:同一个局域网就是通过源mac地址+目标mac地址+数据+广播 可以将数据传输. 这里有一个交换机mac地址自主学习功能.交换机有一个mac与网口的对照表
交换机mac地址自主学习功能:
交换机有一个mac与网口的对照表
1 40-8D-5C-93-F1-DE
2 40-8D-5C-93-F2-DE
3 40-8D-5C-93-F3-DE
.......
24 40-8D-5C-93-A1-DE
同一个局域网之内发送一个数据:
源mac地址:40-8D-5C-93-F1-DE 目标mac地址:40-8D-5C-93-A1-DE 数据
如果交换机第一次链接这些电脑:
1 40-8D-5C-93-F1-DE
2 ?
3 ?
......
24 40-8D-5C-93-A1-DE
第一次 我的网口1链接计算机发送一个数据,发送给目标mac,第一次的时候是不知道目标mac地址是多少
IP地址+ARP协议 计算出对方的mac地址
第一次发送给IP地址为192.168.10.24
通过广播:在同一个局域网内广播一个数据:
(源mac地址 40-8D-5C-93-F1-DE ,对方mac FF-FF-FF-FF-FF)(源IP:192.168.10.22 对方Ip:192.168.10.24)
找到符合的IP:
回传一个数据:(源mac地址 40-8D-5C-93-A1-DE ,对方mac 40-8D-5C-93-F1-DE)(源IP:192.168.10.24 对方Ip:192.168.10.22)
同一个局域网内:第一次发送数据 需要广播的形式,获取对方的mac地址,将mac地址,将mac地址与网口写入对照表
第二次 发送数据(计算机与端口没更换),不通过广播,而是直接从mac对照表寻找对方的地址
确定局域网位置:
网络层:确定局域网的位置
ip协议:寻找对方局域网的位置
怎么通过ip寻找对方局域网位置?
ipv4:
三点分十进制:
0~255.0~255.0~255.0~255
同一个局域网内计算机的ip地址绝对不同
172.16.10.1
子网掩码:255.255.255.0
ip+子网掩码才能确定是否在同一个网段,同一个子网,同一个局域网
端口+ip+mac+广播 就能确定世界上任何一台计算机软件的位置
传输层:端口协议.每个软件都有固定的端口 0~65535 0~1024是系统占用
端口:确定软件的位置
应用层:每个软件对于数据有不同的自定制协议
FTP,WWW等等
简单流程:
给强哥发一个今晚吃鸡
应用层:qq将数据封装成了一个字典:{'content':'今晚吃鸡'}软件自己做的
操作系统:
传输层:8000 | {'content':'今晚吃鸡'} #确定软件在计算机的位置
网络层:ip:192.168.1.12 8000 | {'content':'今晚吃鸡'} #确定计算机在哪个局域网
数据链路层:源mac地址,目标mac地址 数据类型 | ip:192.168.1.12 8000 | {'content':'今晚吃鸡'} #计算机自局域网哪个位置
物理层:网线 将数据以电信号形式发出去
一系列物理连接介质:达到对方的物理层--->数据链路层