我是靠谱客的博主 高大鲜花,最近开发中收集的这篇文章主要介绍软件通信协议,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、操作系统(了解)

操作系统是一个软件,是操作连接计算机硬件与计算机软件的纽带.

现存的操作系统: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等等.

 

最后

以上就是高大鲜花为你收集整理的软件通信协议的全部内容,希望文章能够帮你解决软件通信协议所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部