软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)
阅读目录
一、网络编程
一、网络编程
软件开发架构
- C/S架构
C:客户端 想体验服务的时候才会去找服务端体验服务
S:服务端 24小时不间断的提供服务,即时监听,随时待命
- B/S架构
B:浏览器 想体验服务的时候才会去找服务端体验服务
S:服务端 24小时不间断的提供服务,即时监听,随时待命
实际上B/S架构也是C/S架构的一种
--------------------------------------------------------------------
注:如果你对python感兴趣,我这有个学习Python基地,里面有很多学习资料,感兴趣的+Q群:895817687
--------------------------------------------------------------------
两种事物要想相互通信最基本的方式是通过一个规定好的协议去执行,然后就能得到有效沟通(通信),比如不同国家的人要想互相通话就得有个全球的语言标准——英语,全世界基本语言就是英语,我们知道都懂英语,就能和全世界任何懂英语的人进行沟通交流了。
同样的,计算机要想与计算机沟通交流也得需要这么一个规范,也就是前提条件,所有计算机都执行这个前提条件后,就能互相愉快的传输信息了
这个规范就是:OSI七层协议(Open System Interconnection)
在python里面我们需要了解五层就可以了:
应用层
传输层
网络层
数据链路层
物理层
接下来从下至上分别说说各层的作用
1、物理层:
实现计算机之间的物理连接,传输数据通过0101的二进制,0或1分别代表高电频和低电频
电信号工作原理:高低电频
2、数据链路层:
如果只是01010101010这种二进制高低电频的电信号之间传输是远远不够的,因为我们根本不知道他们的含义,或者说获取数据该怎么取正确读取,所以在物理层上面就规定了一个数据链路层,也就是我们听过的‘以太网协议’
协议规定:
1—二进制数据的分组方式
一组电信号构成一个数据包,叫做‘帧’
每一数据帧分成:报头head和数据data两部分
head | data |
---|---|
2—只要是接入互联网的计算机,都必须有一块网卡!
网卡上面在出厂的时候就刻有世界唯一的编号,这个编号就叫 mac地址
长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)
类似这种:C8-5B-76-D6-EE-F1
特别强调:其实有了物理层和数据链路层的话,就可以实现基本的网络通信了,即基于以太网协议通信,这种通信基本靠吼!!!
实现过程类似这样:比如电脑A要找电脑B通信,电脑就会把这个‘我要找mac地址为***的电脑,信息广播出给所有的电脑,所有已经连接的电脑就会听到,只有mac地址匹配的电脑B才会得到相应与电脑A通信。
弊端:广播风暴
这里还有一个事情需要去做,一台电脑和另外一台电脑通信可以连一根网线,那一台电脑和多态电脑通信呢,岂不是多台电脑都需要来一个网线插到那一台电脑上,这样的做肯定是不符合现实的。所以就有了交换机
交换机:如果没有交换机,你的电脑就变成了马蜂窝,有了交换机之后,所有的电脑只需要有一个网卡连接交换机
即可实现多台电脑之间物理连接
3、网络层:(IP协议)
通过交换机只能实现局域网中的电脑之间的通信,要想一个计算机与局域网以外的任何一个局域网里的电脑实现数据传输的话,就需要引入网络层了,也就是ip协议
IP协议规定:计算机必须有一个ip地址
ip地址的特点:点分十进制
有两个版本:ipv4和ipv6
最小0.0.0.0
最大255.255.255.255
ip协议可以跨局域网传输
ip地址能够唯一标识互联网中独一无二的一台机器
这里有个arp协议:根据ip地址解析mac地址
4、传输层(端口协议)
TCP,UDP基于端口的工作协议
计算机之间的通信本质上来说是计算机上面的应用程序之间的通信,我们知道了ip是电脑标识的唯一,那么电脑上我们实际上使用的是操作系统(本质上也是软件),应用程序来实现网络通信(数据传输)的话同时进行是否会打架呢?
这里就引出端口,端口就是唯一标识一台计算机上某个基于网络通信的通道
注意:一台计算机上同一时间一个端口号只能被一个应用程序占用
小结:
ip地址:唯一标识全世界接入互联网的独一无二的机器
port端口号:某一时间段,唯一标识一台计算机上的某一个应用程序
ip+port:能够唯一标识全世界上独一无二的一台计算机上的某个应用程序
TCP协议:(流式协议,可靠协议)
三次握手四次挥手
三次握手:建立连接
四次挥手:断开连接
TCP协议是一种安全的协议:变现在:建立连接后才可以传输数据,数据传输完成后才能断开连接。
软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)相关推荐
- TCP\IP 协议栈中的协议 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层
粉丝不过W 7 层体系的 OSI 参考模型,低层为 1~4 层:面向通信, 高层为 5~7 层:面向信息处理 物理层(Physical Layer) 利用一些物理媒体, 如双纽线. 同轴电缆等 传递信 ...
- TCP协议之三次握手四次挥手
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的.可靠的. 基于IP的传输层协议. 来看下网络协议 在计算机网络中进行通讯,就必须遵守一些 ...
- 了解TCP协议,IP协议、ICMP协议和ARP协议(TCP报文,TCP的分成管理,TCP与UDP,TCP的三次握手四次挥手原理)
文章目录 了解TCP/IP协议 TCP报文格式 TCP/IP 的分层管理 TCP与UDP TCP的三次握手与四次挥手 为什么要三次握手? 为什么要四次挥手? IP数据包格式 ICMP协议 ICMP协议 ...
- Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)...
Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义: 这里 ...
- ssh协议是osi_TCP/IP协议和三次握手四次挥手
计算机网络体系结构 在计算机网络的基本概念中,分层次的体系结构是最基本的.计算机网络体系结构的抽象概念较多,在学习时要多思考.这些概念对后面的学习很有帮助. 网络协议是什么? 在计算机网络要做到有条不 ...
- 网络架构,七层协议,三次握手四次挥手,socket套接字简单编程
一.单机架构 应用领域: 植物大战僵尸 office 二.CS架构 应用领域: QQ 大型网络游戏 计算机发展初期用户去取数据,直接就去主机拿,从这里开始就分出了客户端和服务端. 客户端:用户安装的软 ...
- python网络通信效率_Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)...
Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义: 这里的客户端一般 ...
- 物联网大数据平台软件开发架构案例解析
物联网大数据平台软件开发架构案例解析 有人说物联网是引领信息技术的第三次浪潮. 第一次浪潮是个人电脑的出现,开创了信息时代的第一次革命,此次浪潮成就了微软.IBM等巨头. 第二次浪潮是以信息传输为特征 ...
- 并发编程知识总结,软件开发架构,socket套接字模板,粘包问题,struct解决粘包问题,上传大文件数据,socketserver,关于操作系统的发展史,进程,线程。...
并发编程知识总结 软件开发架构 C/S: client:客户端 server:服务端 优点:占用网络资源少,软件的使用稳定 缺点:服务端更新后,客户端也要更新,需要使用多个软件,需要下载多个客户端 B ...
最新文章
- Python之函数的收集参数和分配参数用法(‘*’ 和 ‘**’)
- python做请求转发_RequestDispatcher实现请求转发
- PL/SQL Developer调试Oracle存储过程
- [UE4]导入 PSD 文件失败的解决办法:输出为 PNG,将 PNG 再保存为 PSD 导入
- [iOS Animation]-CALayer 变换
- echart 高度 不用 不撑满_装修干货:橱柜高度到底要多高才合适?
- Loadrunner登录判断
- ajax请求成功后打开新开窗口(window.open())被拦截的解决方法
- 在全员编程时代下,软件测试员又该何去何从?
- LOJ2321「清华集训 2017」无限之环
- 轻松搞VC之定时器(Timer)
- 3D打印:我的打印机使用经验技巧记录
- 持续发力Web技术 英特尔驱动万物智能互联
- cv python 读取灰度图
- 一文读懂《医疗器械定期风险评价报告》撰写要点
- DevOps之自动化测试
- css信号强度显示,纯css实现wifi信号图标及强弱/链接/加密状态
- iptables匹配iprange
- webview和android做壳,Android Studio 制作一个 WebView 外壳
- Covenant利用分析
热门文章
- C++ pthread
- java实现doc向swf格式的转换 转_java实现doc向swf格式的转换 转
- python中common是什么意思_common中的python无效语法
- SpringBootController控制层接收参数的几种常用方式
- ActiveRecordException: The model attribute ysgl is not exists.
- JavaScript + Tampermonkey——易班优课YOOC课群在线测试自动答题解决方案(十七)复合型解决方案油猴脚本
- Ricky’s RealDan’s Ricky
- c语言课后题2.52.8答案,C语言练习题(8)-只要答案不要分析,要速度,要正确51.(1 爱问知识人...
- 如何高效安全的将资源同步到本地数据库
- 开源Delphi:AutoCHM:CHM生成和还原Html工具