概述
一、操作系统(了解)
操作系统是一个软件,是操作连接计算机硬件与计算机软件的纽带.
现存的操作系统:windows,linux,macOS.
二、 C/S B/S架构
C: client 客户端
B: browser 浏览器
S: server 服务器
C/S: 基于客户端与服务端的架构.
硬件CS架构: 打印机
软件CS架构: QQ,微信,暴风影音, 快播,等等.
B/S: 特殊的C/S架构.浏览器
三、什么是网络通信
从一台计算机的一个软件将一个数据(文件,视频,音频等等)发送给另一台计算机的那个软件上.咱们这几天学的就是如何用python写一个类似于QQ的程序.
客户端:计算机 + 操作系统 + 软件
服务端:计算机 + 操作系统 + 软件
四、网络通信原理
OSI—七层协议
网络通信原理:
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 与 网口的对照表.
1 40-8D-5C-93-F1-DE
2 40-8D-5C-93-F2-DE
3 41-8D-5C-93-F1-DE
.....
24 40-8D-5F-93-F1-DE
如果要在同一个局域网之内发送一个数据:源mac地址: 40-8D-5C-93-F1-DE 目标mac地址 40-8D-5F-93-F1-DE 数据
如果交换机第一次连接这些电脑:
1 40-8D-5C-93-F1-DE
2 ?
3 ?
.....
24 40-8D-5F-93-F1-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-FF)
(源ip :192.168.10.22 对方ip 192.168.10.24)
找到符合的ip:
回传一个数据:
(源mac地址 40-8D-5F-93-F1-DE ,对方mac 40-8D-5C-93-F1-DE)
(源ip :192.168.10.24 对方ip 192.168.10.22)
同一个局域网之内:
第一次发送数据 需要广播的形式,获取对方的mac地址,将mac地址与网口写入交换机的对照表.
第二次发送数据(计算机与网口没更换):不同广播,而是直接从mac对照表寻找对方的地址.
如何确定局域网位置?
网络层
网络层: 确定局域网的位置.
ip协议. 寻找对方局域网的位置.
细节补充:怎么通过ip寻找对方的局域网的位置?
ipv4:
四点分十进制:0~255.0~255.0~255.0~255
同一个局域网内所有计算机的IP地址绝对不同.
172.16.10.1
子网掩码: 255.255.255.0(C类)
IP + 子网掩码才能确定是否在同一个网段,同一个子网,同一个局域网.
计算方法如下:
172.16.10.1:10101100.00010000.00001010.00000001
255.255.255.0:11111111.11111111.11111111.00000000
10101100.00010000.00001010.00000000
此IP的网段:172.16.10.0
172.16.10.12:10101100.00010000.00001010.00000001
255.255.255.0:11111111.11111111.11111111.00000000
此IP的网段:172.16.10.0
如果子网掩码都是C类:255.255.255.0,那么 一个局域网可以分配多少个ip?
前提是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等等.
最后
以上就是高大鲜花为你收集整理的软件通信协议的全部内容,希望文章能够帮你解决软件通信协议所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复