贵州省建设厅公示网站,刷百度指数,wordpress博客主题手机,如何部署wordpress目录
计算机网络背景协议OSI七层模型TCP/IP五层#xff08;四层#xff09;模型网络传输基本流程以太网通信原理IP地址理解
计算机网络背景 到目前为止#xff0c;我们之前所有的编程都是单机的#xff0c;不是多机互联。以前计算机被发明的时候是为了军事用途#xff0…目录
计算机网络背景协议OSI七层模型TCP/IP五层四层模型网络传输基本流程以太网通信原理IP地址理解
计算机网络背景 到目前为止我们之前所有的编程都是单机的不是多机互联。以前计算机被发明的时候是为了军事用途计算导弹轨迹等等。在实验室里电脑有很多电脑一个任务的完成肯定是多人协作完成的所以每个人处理的数据必然是不同的而且这些电脑是相互独立的多台电脑联系起来十分的麻烦所以网络的产生是必然的事早期他们用的事软盘进行互联即a拿到了数据并处理后将这些数据拷贝到软盘在将这个软盘交给bb处理完后又将软盘交给c这样的效率太慢了 后来小松他们三人又添加了一台格外的计算机专门用来服务的并将他们所有的电脑用线连接起来小松处理完数据了交给服务器然后只用给小松说一声该你了小松就可以直接操作。此时就已经有了一个网络计算机互联的雏形了。后来随着人类的发展慢慢的向上面这种小型局域网就越来越多了。后面什么贝尔实验室清华大学实验室等也有可能需要展开协作所以有了这个需求就逐渐产生了一个区域的子网和另一个区域的子网能够互联接触。 在一个局域网内一台主机将数据交给交换机交换机交给另一台主机如果该数据的目的不再该局域网内交换机则会交给路由器让路由器去找。 后来长距离传输则会产生一个问题传输的信号是会衰减下来的所以数据需要经过各种路由器这样又会产生一个问题如果正确的导向数据发送到哪个位置又如何知道这个数据是从哪里来的。所以长距离传输会有各种各样的问题出现。 局域网和广域网的概念没有标准化所以看情况去理解比如你家的wifi可以看作局域网比如你们村的所有网络也是由一个路由器而来的所以也能看作一个局域网我们整个中国也可以看作一个局域网因为访问外网也需要经过路由器 我国的计算机技术还是可以的有很多自主研发的科技。虽然上世纪我国用算盘打出了原子弹确实上一代人非常的励志。两弹一星还有氢弹卫星呢这些东西拿算盘打出来吗这些再用算盘打的话难度太大了。美国人大概在八十年代末把阿帕网的网络技术公开然后我国九二年就如公网了。不要觉得九二年怎么样当时马云等你所知道的大部分人都没听过互联网说明我国看待网络技术比大部分人要早九二年之后我国就入公网了当时是拉了一根网线这网的宽带并不大主要用户发送邮件用于学术交流。到了九六年的时候马云才去了国外在美国见到的互联网像什么马化腾网易的老板丁磊还有搜狐老板张朝阳现在不是在将张朝阳物理课还有李彦宏他们都算是早期听过互联网这个概念的基本都是九六年到九九年之间然后陆陆续续开始做互联网公司了。当时国家入网后有人也开始搞网吧最早九十年代在咖啡厅里的网吧一个小时大概是10块、20块现在这网费放到现在对于普通人来说都算偏贵的何况九十年代的十块。这就是我们国家入网后有了很多关于互联网的故事。所以其实我们国家在互联网发展这一块其实并不比美国人晚计算机技术虽然比美国人晚了十三年但网络技术我们一点都没晚更重要的是我们的网络技术在互联网应用方面我国做的是最好的我们有支付宝嘀嘀打车美团虽然这些互联网公司也被大家吐槽市面上有人骂但是不得不承认在互联网应用领域我国一点都不差并且我国的网络技术上还有部分内容是遥遥领先的比如5G比如无线通信技术还有ipv6技术。 互联网发展这么快你总得拉网线、建光纤吧建服务器、得建机房吧还要建各种信号塔这玩意儿在国家层面就必须要有地去建拉网线搞个路由器交换机怎样架设个网络这些都是谁的工作啊我想告诉大家每个国家都有他自己的叫做电信运营商。像我们中国典型的就是中国联通、中国电信、中国移动现在包括华为也算是了现在的华为业务是否广泛了。美国人有高通欧洲有诺基亚。互联网发展一定是由国家支持的如果自己这能够赚到钱这一定有私人企业去弄他们会花钱去盖基站但是因为这是亏钱的事所以最开始的时候运营商不愿意做些事都是国家政策上的扶持才搞起来的 所以互联网能够快速的发展是因为大部分稍微靠前点的国家呢。都会有自己的电信业务提供商都会给自己的内部去建基站拉网线做光纤去做这个事情。所以非洲没有非洲的互联网就是不行吧。中东地区的互联网也不行吧为什么呢就是因为他们当地的运营商。可能是因为特殊原因最后没有办法把这些基站什么东西建起来所以他们不可能有互联网公司。 那么后面呢关于网络的部分的故事呢还是非常多的。那么后面呢我给大家再慢慢展开。 协议 一台计算机内部本质也是一个小型网络计算机体系结构中有网络网络中也有体系结构。长距离传输必然会有很多成本为了降低成本所以有了协议的产生什么叫做协议协议就是一种约定下面我来给大家讲个故事来帮助大家理解什么是协议 在以前电话费对贫困的家庭来说也算是一笔不小的消费所以你和你爸约定电话响一声代表你平安电话响两声表示我没钱了电话响三声表示有事情需要和你讲话。 这声响每一声都有不同的含义而这个含义不用解释双方早就已经有了共识。目的尽可能减少通信成本。 长距离通信会产生以下问题所以以下每一层都有该层的协议 1.如何定位主机 -------ip协议 2.你怎么保证数据能准确的到达下一个设备--------数据链路层 3.如果设备故障数据丢失了怎么办 ------------tcp协议 4.传送数据不是目的能应用数据才是目的你怎么处理发来的数据---------http、https、ftp、smtp协议… 这些问题不仅发送方有接收方也同样有 如何具体理解协议是个什么东西呢在我们收快递的时候不仅有你要收的东西还会有一个东西—快递单。 在快递员路由快递的时候和你收快递的时候你都能根据这个快递单判断出这个快递是不是自己的。所以一个物品要被发出去必须有快递单被包裹起来。这个快递单也叫做协议报头 那具体用C语言是怎么实现的呢是用结构体实现的发送的信息属性填进去再将你要发的内容给拷贝进来就成为了协议报文 网络是分层的为什么是分层的因为能分层耦合度低维护成本就会低每层之间不会相互影响我坏了不会影响你的操作。如何理解分层呢给大家举个例子 我和你打电话的时候我和你是通过中国话协议来交流的在通讯设备层在用光电信号进行交流如果是两个外国人用英语另一种协议来交流在通讯设备层并不需要改变该层的协议 OSI七层模型 具体是如何分层的呢 因为是协议需要人制定所以就有组织站出来定制网络分层组织叫做OSI在定制的时候需要考虑诸多问题而OSI就制定的很好把网络分为了7层每一层都有相关、相对应的物理设备比如路由器、交换机OSI七层模型是一种框架性的设计方法其主要功能就是帮助不同类型的主机实现数据传输。它最大的优点是将服务、接口和协议这三个概念明确地区分开来通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。 但是呢有几层工程实践的时候发现写不到操作系统里面有两层在操作系统中设计不合适将三层表示为一层在应用层比较合适所以就有了TCP/IP五层模型但我们只讲四层物理层主要是硬件知识不讲所以也可以叫TCP/IP四层模型 TCP/IP五层四层模型 以下介绍只需大致知道是干什么的即可 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(发热众多因素会导致传输效率降低该功能就是放大光电信号)工作在物理层. 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层. 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.(如果发送失败了怎么办这就这一层解决的) 应用层: 负责应用程序间沟通如简单电子邮件传输SMTP、文件传输协议FTP、网络远程访问协议Telnet等. 我们的网络编程主要就是针对应用层接收数据转化为图像和声音被用户看到 网络协议栈和我们之前学的操作系统有什么关系 和操作系统的分层结构一样用户不能够直接访问底层必须从上到下的贯穿访问 所以网络通信的本质就是贯穿协议栈的过程 网络传输基本流程 两台主机通过TCP/IP协议通讯的过程如下 两态主机底层通过以太网进行通信。 为什么叫做以太网这名字是怎么由来的声音传播是要介质的科学家假说出光的传播也要介质宇宙中一定存在我们看不到的介质取名为以太所以科学家们信心满满去证明却证明出宇宙大部分是真空的没有这种介质为了纪念人类这次实验在计算机中实现了将光电信号从这台主机传到另一台主机刚好网络的初衷也是传播就将这种网络称为了以太网 我们之前提到了网络协议栈结构中每一层都有协议数据包是如何封装和分用的呢 如何理解我们以发送微信消息为例 在网络协议栈中有两种不同的认知我们可以认为同层协议在直接通信也可以理解成为向下交付。这就像在生活中我们使用微信一样认为直接在和对方沟通实际上通信的过程是不断的解包和分用 基于以上过程我们能够推断出 1.几乎任何层的协议都要提供一种能力将报头和有效载荷分离的能力 2.几乎任何层的协议都要在报头中提供决定将自己的有效载荷交付给上层的哪一个协议能力–分用 这是大部分协议的共性为了我们学习具体协议的时候都会有这两个问题这样我们面对封装和解包才不会困惑 以太网通信原理 以太网通信每台主机上都要有唯一一个自己的标识符 给大家举个例子帮助大家理解 老师叫张三是只有张三自己听到了这句话吗所有人都会听到收到会在大脑里判断老师是不是叫的自己不是自己就不用执行老师的指令会抛弃掉这条信息。张三发现是自己就会和老师搭上话建立了连接 以太网同一原理 Mac地址每一张网卡都有自己的地址Mac地址全球唯一能在局域网中标明自己的唯一性 每个主机收到后在数据链路层进行判断发现不是发给自己的就会丢弃而我们用户只在乎用户层所以我们用户感觉不到。 站在系统的角度看待这网络资源也是共享资源如果有两台机器同时向以太网中发数据则会发送数据碰撞会发送的碰撞的区域也被叫做碰撞域。那需要我们互斥访问以太网互斥访问的方式并不是加锁而是有一套自己的避免碰撞的算法如果我发送消息发现了会碰撞则会重新发送 那这样会产生一个问题主机越多碰撞的概率越大这也就解释了一个现象你家里的wifi有很多人连接后会很卡在学校的运动会大型会议的时候数据网络也很卡。 如何解决这个问题呢交换机能划分碰撞域 交换机发现消息目的地不在左边的区域则会将消息发送到右边区域。这样一定程度上缓解了数据碰撞问题。 IP地址理解 上面讲的是在一个局域网内的通信原理。现在有多个局域网如果我们想将信息传到另一个局域网那些设备是怎么知道信息要传到另一个局域网呢 他们通过IP地址来判断IP地址能标识在全网中的唯一性。那IP地址和Mac地址有什么区别呢 给大家举个例子假如说你要从吉林长春到四川成都旅游 其中你第一步可以先从长春到北京第二步从北京到西安第三步从西安到成都。 源IP地址-目的IP地址就是从长春到成都源Mac地址-目的Mac地址就是第一、二、三步。 IP地址为我们未来每一个阶段提供方向目标方便进行路径选择 Mac地址上一站从哪里来下一站到哪里去。该类地址一直在变化 一个信息具体是如何从一个局域网传到另一个局域网的呢 局域网的通信方式有以太网令牌环网加锁的思想防止的数据碰撞无线LAN手机 我们也能从上图看到尽管IP层以下局域网的通信方式不同IP层协议屏蔽了底层网络的差异化靠的就是工作在IP层的路由器。IP协议实现了全球主机的软件虚拟层一切皆是IP报文这也就是为什么网络能很快席卷全球能够让手机、电脑等通用起来 网络通信的基本脉络图 在传输层协议报文我们把它叫做数据段或数据报。在网络层协议报文我们把它叫做数据段。在链路层协议报文叫做数据帧 ifconfig指令可查看网卡情况