前面几篇我们聊了软件的一些最基本的行为。今天来谈谈软件之间的数据传输
软件的数据传输最终转化为网络七层模型的物理层上传输 高低电平. 0101010101111。它在一次软件行为中所处的位置如下图:
那么现在来聊聊一次完整的网络传输网络各层所要执行的工作
一:什么是网络通讯
简单地说,网络通讯是指从一台计算机的一个软件将数据发送给另一台计算机的软件上
客户端:计算机 + 操作系统 + 软件
服务端:计算机 + 操作系统 + 软件
二:网络通信原理
网络七层协议,如下图所示
网络通信原理:
1,一系列的物理连接介质.
2,地址确定双方的软件的位置.
3, 一系列互联网协议.
下面我们转化为五层协议进行研究
各层说明
物理层: 传输0101的电信号,设备有:电缆、双绞线、光纤
数据链路层: 解析数据,找源
网络层: 查找局域网的地址,确定要找的计算机
传输层: 根据端口协议查找端口,确定对应的应用
应用层: 根据应用的解析协议,解析数据
物理层:
物理连接介质. 光纤,双绞线等等.
物理层发送的数据: 高低电平. 0101010101111
物理层只是发送单纯的01010101
但是数据应该进行分组,源地址,目标地址. 这些物理层做不了.
数据链路层:
主要就是对数据进行分组,封包:源地址,目标地址。早期每个公司都有不同的标准,后来统一标准:以太网协议.
规定数据份分为两部分:
数据头 | 数据
数据头规定 固定字节:18个字节.
数据头部分:
源地址:6个字节
目标地址: 6个字节
数据类型: 6个字节.
将数据分为组的形式: 一组电信号:数据报,也叫一帧.
head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送
网卡: mac地址 就是计算机的唯一标识,计算机出厂就会有网卡,网卡上就有一个mac地址
12位 16进制: 40-8D-5C-93-F1-DE 前六位:厂商编号,后六位:流水线号。
计算机是如何通信的?
计算机通信方式:广播,吼. 又分为广播和单播。
广播,如:村里谁家羊丢了到下村委会,全村人全部都能接收到消息,不是找自己的将消息丢弃掉,是自己的就接收
单播,老李到了村委会,老李认了下是自己家的就回去取绳子,广播又喊老李多带上两条。
理论上:有了mac地址,加上广播的方式,全世界所有的计算机都可以通信了,实际不行,广播风暴,效率低,工作量太大.
接下来规定:mac + 广播的形式只能在 局域网 中实行.
原则上:同一个局域网就是通过 源mac地址 + 目标mac地址 + 数据 + 广播 可以将数据传输.
交换机有一个mac 与 网口的对照表.
同一个局域网之内:
第一次发送数据 需要广播的形式,获取对方的mac地址,将mac地址与网口写入交换机的对照表.
第二次发送数据(计算机与网口没更换):不同广播,而是直接从mac对照表寻找对方的地址.
网络层
网络层: 确定局域网的位置.
ip协议. 寻找对方局域网的位置.
细节补充:怎么通过ip寻找对方的局域网的位置?
ipv4:
四点分十进制:0-255.0-255.0-255.0-255
同一个局域网内所有计算机的IP地址绝对不同.
172.16.10.1
子网掩码: 255.255.255.0(C类)
前提是C类子网掩码:一个网段:最多能有256个IP:
0 不能用, 255 不能用,254标识路由的(局域网的网络位置),所以只有253个IP/可以使用。
ip + mac + 广播 就能确定世界上任何一个计算机的位置.
端口 + IP + 子网掩码 + mac + 广播的形式就可以确定世界上任何一个计算机软件的位置.
精简一下:
IP协议和ARP 协议可以获取我的mac地址,
arp协议:通过目标ip地址获取目标mac地址的一个协议.
端口和ip地址 就可以确定世界上任何一个计算机软件的位置.
**总结:**通过计算机发送数据,我要先获取对方的ip和子网掩码:
去判断是不是同一个局域网
如果是同一个局域网: 通过IP ARP协议 获取mac 发送数据.
如果不是同一个局域网:网关(路由协议)一层一层的发送.
传输层
端口协议. 每一个软件都有固定的端口,端口:确定软件的位置.
0 ~ 65535
1~1024 系统占用.
1025~8000 各种应用软件占用
端口 + ip + mac + 广播 就能确定世界上任何一个计算机的软件的位置.
应用层
每个软件对于数据有不同的自定制(应用)协议。如FTP,WWW,http等等.