精华内容
下载资源
问答
  • 程序员的两种职业特质

    千次阅读 多人点赞 2020-01-25 19:31:48
    对简单的敬畏 软件工程是复杂的工程,由于它几乎可以零成本试错,软件可以堆积到任意的复杂程度。一个简单的播放器软件,其复杂性也堪比建造幢...程序员认为伟大的东西一定是复杂的,简单的东西只能是玩具,或者工...

    对简单的敬畏

    软件工程是复杂的工程,由于它几乎可以零成本试错,软件可以堆积到任意的复杂程度。一个简单的播放器软件,其复杂性也堪比建造幢别墅,更别说制作一双皮鞋。

    这使得创造软件的 程序员失去了对简单的敬畏!

    我没有针对某个程序员或者某个公司的程序员,我指的是包括我自己在内的所有程序员,并且,这并没有携带贬义的意思。这只是一种职业特质。

    程序员认为伟大的东西一定是复杂的,简单的东西只能是玩具,或者工具。

    最近,我接触了eBPF,让我惊叹于它的小巧和精简,我称它为瑞士军刀。但是,当我琢磨着eBPF到底能做些什么的时候,我努力说服自己心存敬畏,但直到我接触了Open-NFP前,我做不到。

    我感觉我大约做到了时,我试着做点小东西,它们在:
    https://github.com/marywangran/simple_xdpdump
    https://github.com/marywangran/bpfilter_demo
    https://github.com/marywangran/bpfilter_demo
    https://github.com/marywangran/simple_xdp_router
    https://github.com/marywangran/ebpf_sockmap
    https://github.com/marywangran/simple_xdp_bridge
    这些小东西也只能是小玩具,它们终于还是不能上线的。无论怎样,我忍不住要展示给别人看,我就去展示了。

    很多人只是把eBPF看成一种工具,就像trace,probe之类的辅助性监控调试工具,把eBPF看作是内核的一种扩充而并非用eBPF实现一些功能,这就是为什么只要你关于eBPF的topic,十有八九都是bcc里的那些和trace,probe相关的例子,这也许是Linux原教旨主义者的情怀使然吧, “内核的事情内核管,其它的事情都在用户态”

    说实话,目前eBPF作为内核功能的扩充,其作用真的还十分有限,正是基于此,当我跟别人介绍用eBPF实现的一些小玩意儿的时候,大多数时候获得的只是嘲讽: “我觉得这不靠谱,不如写个内核模块呢…”

    不过,我一直试图去努力改变这种局面。我始终相信简单的东西并不总是无用,并非总是搬不上台面。

    对未知的敬畏

    世界是确定的吗?不知道。

    但软件的行为是确定的。

    不,软件底层是电子,那是量子力学的范畴,而量子世界是不确定的…

    我就知道有人会用类似上面这句回怼,不过我说的不是这回事。我指的是抽象层面的软件,也就是 “程序员用代码写成的程序,其逻辑是确定的。”

    debug有故障的程序是一个繁琐的过程,但是不论多么复杂,最终的结论一定是确定的,一个Linux内核的尸体vmcore就是它死时的映像,无论多么诡异的bug,分析这个vmcore都可以得到确定性的结论(可能又有人用踩内存来反驳了)。

    由于软件是确定的,长期跟确定打交道后,就会形成 世界是确定的 之定势。

    我老婆总是觉得跟我聊个事非常费劲,我自省过,但没有成功。我老婆是日语专业文科生,持有教师资格证,又做过HR,又做过小小学校家委会的头子,与人聊天是肯定没有问题的,那问题肯定出在我身上。

    自省是有难度的,那就用反射的方法。

    我试着找典型的程序员聊天,聊一些跟技术无关的话题。我说的典型的程序员指的是他们把时间都交给编程的。

    我发现,在他们的眼里,世界是确定的,非黑即白,他们容不得世界的灰色地带存在。

    如果你跟他们聊天气预报时,他们似乎不允许随机性的存在,他们希望有什么机制可以跟踪每一个水分子的行踪,当聊起最近的城市封锁时,他们认为仅仅铁路,航空,高速公路,国道的封锁是不够的,即便是连乡村的小路也围起来了,还会有蝙蝠侠飞出来的。

    至于公司如何知道员工的考勤情况,那一定是通过技术手段监控的,程序员的惯性思维通常是公司一定会在其OA app中安装监控,GPS之类的,另外还会记录员工从哪里接入了WIFI,监控员工的微信,钉钉聊天信息…

    其实哪里有这么复杂,这一点我倒是不那么较真儿,我相信两点,一是公司没必要这么麻烦,监控员工不是公司的要务,其次,公司没那技术。一般非程序员都没有这样的担心,此外,退一步说,即便是监控了,又如何呢?

    我想,这就是程序员心中的确定性的技术世界吧。万事都采用技术手段解决并不是最高效的,有时社会工程学更有效率,但是程序员根本不care和技术无关的社会工程学,不是吗?

    程序员的世界是确定的,世界是由技术组成的,于是任何问题都必须要有个闭环的答案。

    然而,世界没有想象的那么简单,但却也没有想象的那般复杂,干嘛非要确定性的闭环呢?

    人生会遇到很多很多不确定的问题,解决它们就是了,见招拆招,就这么简单的事,干嘛每件事非要较真儿去寻找确定性的技术方案呢。

    世界不是代码写成的,至少在我们的哲学认知里它不是,所以调试它是无效的,享受它才行。


    浙江温州皮鞋湿,下雨进水不会胖。

    展开全文
  • 补充说明关于计算机组成原理与底层的东西

    千次阅读 热门讨论 2009-09-24 00:03:00
    内存有两种状态,一种是写状态,就是你在数据线用高低电平放好一个数据(8位二进制),地址线用高低电平放好一个地址,然后电路以一个高电平或者低 电平,触发其写脚,数字就被拷贝到内部指定单元。读呢反过来,地址...

    今天看了肖老师的回答。其实我对硬件的了解也不多。做一点点的补充。有的了解。有的画出范围。去相应的系了解情况。

    肖老师您好,有一些问题想请教您.我对组成计算机最底层的元器件的工作原理一无所知,为人类制作出如此复杂的计算机而折服,同时也很疑惑,总结了以下一些问题:
    1.组成计算机的元器件除了晶体管,继电器等还有哪些?他们都是起什么作用的?
    2.为什么一通电计算机就可以工作了呢?电流对哪些元器件起作用才使计算机工作的?
    3.计算机识别0和1,在计算机中0和1是通过什么元器件表示的?
    4.为什么计算机能处理图像和声音,cpu内部运算器好像只是完成加减乘除吧,怎么处理这些东西的?
    5.计算机刚出现时,没有键盘,用机器语言编程,怎样把0和1输入计算机,用的什么器件?
    6.内存为什么可以存储呢?
        问的问题可能比较幼稚,但我真的想搞明白。这些东西老困扰着我,我是软件工程专业的学生,在学组成原理,数据结构,接口之类的课时老觉得心里没底,糊里糊涂的,我始终觉得自己根本不了解计算机。希望老师能指点一下。谢谢您老师。

    ===========================

    我的回答:

    哇哦,这些问题,貌似有点难。

    这位同学,这些其实都是《计算机组成原理》里面的知识,应该由你们老师讲的,我觉得首先,你应该去问问你的老师,他收了你的学费的,应该给你讲解清楚。

    嗯,感谢你这么看得起我,我试着回答一下,先说明,我的不是书本上的标准答案,考试可别用我的答案啊。另外,估计你是大一的新生,学了计算机的专业,但是还没有基础,建议你这学期好好看看教科书,有些基础知识,教科书是正解。

    1、组成计算机的元器件除了晶体管,继电器等还有哪些?他们都是起什么作用的?

    嗯,应该说,这个问题过时了,倒退50年,你这么说是正确的,因为那会的计算机刚刚从电子管进步到晶体管,不过,目前都是超大规模集成电路计算,计 算机里面都是集成电路块,CPU,内存,甚至声音处理模块,图形卡上的GPU,都是超大规模集成电路,没有晶体管了。继电器则是第一台真正意义的计算机出 现前的东东,早就不用了。

                                                                            物理层之物理

    简单来说电路就是电路板上的东西。线。电阻。电容。电感。加上各种二极管。三极管。具体怎么用的这个去看电路的东西。微电子,电路专业重点研究这些。我们从来不关注。超出了计算机的研究范围。就是专门搞硬件的人对这个研究的也不多。
     

    2.为什么一通电计算机就可以工作了呢?电流对哪些元器件起作用才使计算机工作的?

    通电计算机并不能工作,通电通常是给计算机CPU的某根引脚加上一个高电平,这样从软件读入,这个端口从0变成1,由此引发一个中断信号,而中断跳 转的地址,是BIOS里面写好了的,CPU于是跳到这里开始执行机器码程序,并随之开始启动磁盘,从磁盘上读入OS操作系统,一步步BOOT,最终把整个 操作系统调入内存开始运行,这些是软件的工作。硬件就是保证加电后给出一路中断信号即可。

                                                                           物理层之编码(表示)

    计算机通电不能工作。而是设计计算机的时候赋予了编码的信息而让他工作的。比如第123根线有 000,001,010,011,100,101,110,111八种状态。假设第一个是开机。第二个是重启。第三个是关机。大概就是这样设计实现的。这 个是最基本的。是固定的。还有的是不固定的。可以修改的而组成了诸如ROM和RAM。这个东西计算机组成原理和微机原理里面有。具体的设计实现组成原理里 面有。

    宏观来说那个元件都起作用。至于让那个,不让那个CPU里面由门阵列和微处理器完成。


    3.计算机识别0和1,在计算机中0和1是通过什么元器件表示的?

    0和1都是由电路表示的,这个电路可能是集成块的一根引脚,也可能是一段导线,在计算机里面,大家通常把+5V作为1,0V作为0,这样,一个电 路,要么是1,要么是0,可以表示两种状态,由此引发了二进制的使用,我们在现代计算机里面使用的所有数字,最终在计算机内部都表示为二进制数值,连带 着,16进制也比较流行,因为它是2的整倍数,转换方便。

                                                                              物理层之应用

    0和1在不同的系统中是不同的表示。有的是有和没有表示0和1。有的是通过相位表示。这个需要有个时钟来找出正弦和余弦波。有的是 方波。有的是正波。有的是高电平。有的是低电平。有的是通过频率。有的是幅度。也就是高低电平。这个东西电路和数字逻辑,计算机组成原理,计算机网络里面 都用。


    4.为什么计算机能处理图像和声音,cpu内部运算器好像只是完成加减乘除吧,怎么处理这些东西的?

    所有的图像和声音,都是“数据”,这和我们做个数组,里面填些数字没有差别,仅仅是我们用户对其使用的定义不同而已,一段数据,我们说,它是音频, 它就是音频,说它是视频,它就是视频,其实数据本身是无属性的,看使用者用什么方式理解它。当然,如果我们把视频数据用音频放,放出来可能是杂音而已,数 据主要看来源,看用途,中间存储和传输,是无属性的。

    既然是数据,CPU当然能加减乘除,其实大多数时候,我们的CPU只有一种计算,就是加法,所有的四则运算,都是最终转换成加法运算执行的,当然, 这种转换有时候是硬件执行,Intel系列的CPU是CISC复杂指令集结构,它提供乘法指令,但是,内部转换成加法执行,而诸如PowerPC、Sun 的一些RISC精简指令集CPU,则只提供加法,要求应用程序自己完成这种转换。

    当然,有了计算法则,就可以套用公式了,一段数据,如何还原成声音或者图像,是有公式的,这是数学家的事情,不是程序员的事情。而现代计算机,都有音频和视频设备,公式逆运算出来的数据,直接推送到声卡或显卡,即可获得图形显示和声音。

                                                                               CPU的构成

    简单来说CPU是由运算器,控制器和存储组织构成的。第三个书上没说。其实现代计算机的为了加快速度越来越多的内存里面的东西放到了CPU里面。这样速度 可以加快。举个简单的例子。一个市面的CPU频率是2.0GHz而内存的我们用的是DDR2 800的东西。里面的速度不一样。我简单换一下。把内存换为DDR2 1G的条子。如果CPU要运算。从内存的取数据那么过去一个要1/1GHz 的时间*2的次数。而CPU这个时候完成了4次指令了。而实际上在数据通路的过程中数组通路是由总线来完成的。如果总线仲裁不通过。那么CPU需要等待更 多的时间。这样很不好。我们还发展那么快的CPU干什么。对吧。

                                                                               CPU的功能

    CPU里面的算术运算是运算器搞定的。有的是不需要大规模运算的。比如你把一个文件从C盘复制到了E盘。这个就不通过CPU。但是 要通过CPU的控制。CPU使用通道或者DMA来完成从硬盘到内存的读写工作。CPU去干它自己的事情。不然你一个复制粘贴后电脑定住了。完了电脑才好。 呵呵。估计你以为电脑坏了吧~~

    说完了CPU的功能。接下来说方式。无论是音频还是视频或者图像交给相应的硬件设备完成。CPU最多通过指令了解到“哦,你原来要这样。去吧!”下面的硬件就开始工作了。这个工作的过程是不经过CPU的直到1.出错了。像CPU报告:“错误解决不了。请指示。”2.“任务完成了。”


    5.计算机刚出现时,没有键盘,用机器语言编程,怎样把0和1输入计算机,用的什么器件?

    用按钮,一排8个按钮,按下表示1,不按表示0,把一个字节的数据,以8位二进制表示出来,按好按钮,然后有个确定按钮,一按,一个字节的数据就输入到计算机里面去了。最古老的机器码程序都是这么写的。

    当然,这样太慢,后来出现穿孔纸带,一排算一个字节,打孔算1,不打孔算0,一排8个位置,表示8位二进制数字,这样效率高一些,可以一次把几十上 百个Bytes打好,然后一次输入到计算机里面。有个扫描仪类似的东东,把纸带从一端插入,一按按钮,纸带过一遍,这些数据就都进去了。

    后来慢慢有了行编辑,有了电传打字机,慢慢又进化到显示器+键盘,然后又进化到图形界面,你现在看到的,是进化了60年的计算机。

                                                                                   存储器/输入输出

                                                                                       输入输出

    刚才说了内存和CPU速度不匹配的问题。其实硬盘的速度更慢。那个都是多少转一分钟。如果你让CPU去等硬盘的速度还不如去让 CPU去适应你敲键盘。还要几GHz的CPU干什么。早期的5000次加法一秒的绰绰有余。在最早的时候。计算机的鼻祖我始终认为是英国军情处的电子计算 机而不是那个什么美国货。那个时代的计算机是破译德军密码用的。用到了大量运算。为了保密。才使得美国佬说他们是计算机的发明人。说远了。那个时代的电器 工程师拨各个开关。再后来是计算机就是穿孔。一个纸条分割为若干个区域。1表示打孔。没孔表示0.然后计算机读。这样一次输入一个。太慢了。再后来有了卫 星机。卫星机负责输入和输出到运算机。大家的纸条的内容都到了卫星机里面。再后来的后来的后来的后来到了现在。里面的过程你去看操作系统。

                                                                                     存储器

    到了卫星机后渐渐的也就演变了。我们的计算机也不叫冯诺依曼机(系统)了。叫存储机(哈佛系统)①。你人输入的再快也赶不上CPU的 速度快。也就解放出来。存储系统有了内存。有了硬盘,磁带,光盘,优盘乃至你的PDA,手机。这个速度是一个比一个慢。但是可以通过多个数据通路的方法来电子的完成。而不是机械的完成。如果是机械的完成飞机到了今天发动机也就是那么快。而计算机的早就到了GHz。存储系统你看计算机系统结构(体系结构)的 书和计算机组成原理。

    6.内存为什么可以存储呢?
     

    内存是一种特殊的集成电路块,有三种引脚,一种是地址线,表示下个动作要碰触内部哪个单元,一般是8、16、32根,根据这个集成块内部能存储的数 据多少来说。一种是数据线,一般是8根,也有16根,32根,分表表示不同位宽的数据,还有一种是触发器,表示下面进行哪个动作。

    内存有两种状态,一种是写状态,就是你在数据线用高低电平放好一个数据(8位二进制),地址线用高低电平放好一个地址,然后电路以一个高电平或者低 电平,触发其写脚,数字就被拷贝到内部指定单元。读呢反过来,地址线放好地址,触发一个读脚,数据线上就可以读到高低电平,就是内部该单元的数据。

    内存其实就是可以保存状态的一个电路,如果我们把那个单元设置为高电平,一般说来只要不改它,下次无论什么时候读,都是高电平。磁盘,光盘其实都很类似,就是我们在某个点设置某个信号,这种材料能保证我们下次来读的时候,还能读到这个信号。

    内存种类很多,不过大体意思是这个意思。

    内存是通过电容实现的。不过不是普通的电容。具体的你看组成原理的书。

                                                                                               内存的工作方式

    内存有单元有四个大线。地址总线,数据总线,读写线和控制线。宏观内存只有三个线好比你的寝室楼。地址总线表示你房间在哪里。数据就是你和你室友,到底是谁?读写线表示开门后是进来还是出去。控制线是让不让开门。这个组成原理的存储结构那章有。后两个就是一根线。

    微观来说你们一层楼一次走廊只能走一个人。不然就不知道谁是谁了。宏观来说寝室楼可以各个楼层都走一个人。这样就是一个字一个字的传送而不是一位一位的。你问如果让我们楼层的每间单独传送怎么办。没办法。一次一位。但是计算机组成原理和体系结构里面相邻的地址在物理上是纵向设计的。

    1234

    5678


    1357

    2468

    实际的是下面的。一次也就是12 两个。一起。

    计算机硬件的还有很多东西。如果有疑问大概过了年我就会有很多时间上线了。到时候慢慢交流。

    先回答道这里吧,建议你应该多看看专业书。

    涉及的书:电路,数字逻辑,计算机组成原理,微机原理与汇编,单片机与嵌入式系统,操作系统,计算机系统结构,计算机网络。

    这个也就是CS专业的硬件的和理论的全部了。

    除了人工智能基本上剩下的都是软件了。其实人工智能也是软件的一种思想。

    GL

    注①哈佛结构和普林斯顿结构(冯诺依曼结构)其实并不是文中那样。只是在程序和代码的内存方面的分歧。不过早期的转变带来了计算机巨大的发展。详细请看http://student.csdn.net/space.php?uid=39017&do=blog&id=17610

    展开全文
  • 测试环境:win7+USB3.0 如果资料少的话,用U盘当然很好,如果资料中的小文件不多,总的文件也不大,用U盘也不错。 但如果文件多达400多G,小文件又很多,那U盘会慢...下面介绍集中方法,通过一根网线连接台电脑,传

    测试环境:win7+USB3.0

    如果资料少的话,用U盘当然很好,如果资料中的小文件不多,总的文件也不大,用U盘也不错。

    但如果文件多达400多G,小文件又很多,那U盘会慢的让人发狂,在USB3.0环境下测试时,有一个文件5G多,但小文件非常多,测试显示时间需要8个小时,每秒copy的速率只有100Kb左右,这样的速度,一天估计就别想干别的了。

    下面介绍集中方法,通过一根网线连接两台电脑,传资料,平均速率在12M以上,10多G的小文件几分钟就可传完。

    方案一:
    一条线两头直接接电脑,这种线一头要用568A标准做,一头用586B标准做。
    
    适用于两台相邻电脑,交查互连的网线不要太长,一般超过5米就很难连接成功。
    
    568A标准:白绿,绿,白橙,蓝,白蓝,橙,白棕,棕
    
    568B标准:白橙,橙,白绿,蓝,白蓝,绿,白棕,棕
    
    两台电脑连接后,对电脑进行设置,实现两台电脑组成局域网。
    1.  设置IP地址:

    要组成局域网,那么局域网内电脑的IP地址要在同一网段。
    我把两台电脑的IP地址分别设置成为:172.16.105.62和172.16.105.63
    
    2.   通过一个ping程序命令来验证一下两台电脑是否已经相连相通。
    
    快捷键:win + R ,调出运行窗口,输入以下命令:ping 
    172.16.105.62-t 并回车或点“确定”
    注意:以上ping程序命令操作是在电脑IP地址为172.16.105.63上来操作的,反之亦然,如果搞错,自己ping自己的电脑那么永远是通的,就返映不出目标电脑的连接情况了两台电脑的网络防火墙要关闭,网络防火墙会拦截ping命令发出的数据至此两台电脑组成局域网成功。在同一局域网的电脑可以实现诸多功能,如共享文件夹、共享打印机、局域网游戏对战等等。
    方案二:
    使用软件:飞鸽传书
    只要在一个局域网之内,任何台电脑之间均可相互传东西,但是这个软件不好的一点在于功能过于简单,只能传一些小的文件,且使用起来不太方便,但传输速度还是很好的,且不会担心像使用QQ传送一样出现泄密问题。
    方案三:还是使用网线将两台电脑相连
    使用普通的网线即可,然后使用一个软件:飞秋
    优点:完全兼容飞鸽传书(IPMSG)协议,局域网传送方便,速度快,操作简单,同时具有QQ中的一些功能,是飞鸽的完善代替者
    个人觉得是目前用的最好的传输软件,没有之一。  完全兼容网上广为流传的 飞鸽传书 并比原来飞鸽功能更加强大


     - 不需要服务器支持.
    - 支持文件/文件夹的传送 (支持大文件传送[4G以上]), 发送方和接收方都可查看传送进度功能.
    - 可以建立无需服务器的 聊天室,具有群聊天室的功能.
    - 分组功能
    - 搜索用户功能,可通过输入用户名、组名、 IP等来查找我的好友.对于汉字可输入拼音或汉字的第一个拼音来查找.
    - 组权限功能,可能每组设置不同的权限,例如屏蔽该组成员的信息,对该组成员隐身等。
    - 给所有在线的用户群发消息及分组群发功能.
    - 黑名单功能
    - 隐身功能,及对某特定组进行隐身功能
    - 自定义备注名功能
    - 个性头像、个性形象及个性签名功能
    - 共享文件功能
    - 远程协助功能,让你轻松实现 远程维护、远程展示、共享桌面等功能,即时远程沟通。
    - 语音聊天功能,可以语音对话,轻松实现协同办公。
    - 自定义表情功能、支持截屏、支持 GIF动画
    - 随手涂鸦功能,能把您的创意想法得以很好的表达。
    - 垃圾信息屏蔽功能
    - 用户上下线进行通知功能
    - 限制传送文件速度功能
    - 皮肤颜色设置
    - 日程安排与记事功能
    - 日程提醒功能;它可以实现年、月、周、日、小时、分、秒的提醒,提醒同时可以执行动作(提示窗口、播放音乐、执行指定程序、关机等)。甚至每年的第几个月提醒、第几月的星期几提醒等特殊的提醒。
    更多的使用技巧和关于飞秋的资料请自行百度。
    1、下载飞秋,下载即用,不用安装。
    2、 下载解压完成后,直接双击启动,就可打开飞秋,界面几乎和以前的QQ一模一样
    3、如果是两台电脑之间想快传,就把两台的 IP 设置在同一个网段,如一个是 172.16.105.47 ,另一个是 172.16.105.48即可。
    然后传文件,超大也无压力,建群,共享,加好友,都无压力
    That`s all ,enjoy it!

    展开全文
  • 互联网的组成 互联网从工作方式上可以划分为大块: (1)边缘部分:由连接在互联网上的大量主机组成,由用户直接使用的部分。 这些主机包括了一切可以联网的设备,包括电脑,手机,联网的摄像头,更大的有...

    互联网的组成

    互联网从工作方式上可以划分为两大块

    (1)边缘部分:由连接在互联网上的大量主机组成,由用户直接使用的部分。

    这些主机包括了一切可以联网的设备,包括电脑,手机,联网的摄像头,更大的有互联网公司中的服务主机等。

    (2)核心部分:由大量网络和连接这些网络的路由器组成。主要为边缘部分提供服务。

    互联网的边缘部分

    两台主机之间的相互通信,称为计算机之间的通信,在网络的边缘部分,主机之间的通信方式分为两种:

    • 客户 - 服务器方式

    两台主机间的通信,其实就是分别运行在两台主机上的进程之间的相互通信。客户 - 服务器方式通信,从名字上看,就是一个是客户,一个是服务器。客户就是要被服务的,而服务器就是提供服务的。客户向服务器发送请求,服务器响应提供服务。

    场景:我们使用搜索引擎搜索东西,这就是典型的客户服务器的方式。

    【1】客户与服务器都要使用网络核心部分提供的服务
    【2】客户发送请求时需要知道服务器的地址
    【3】服务器可以同时接受处理多台服务器提供的服务请求,且不需要知道客户程序的地址
    【4】在客户与服务器之间建立连接后,可以进行双向通信
    【5】服务器启动后会一直运行,服务器需要较为复杂的硬件和系统的支持

    • 对等方式

    对等的连接方式就是指通信双方的地位是平等的,并不区分客户和服务器,两者相互平等的进行访问

    互联网的核心部分

    互联网的核心部分是由网络和连接网络的路由器组成。

    核心部分主要为边缘部分提供联通服务。就是将两个通信的主机联通,使主机之间可以相互的通信。

    路由器:(一种特殊计算机,并不是主机)核心部分中的主要组成。路由器将一个个的网络进行连接,使网络与网络之间相互连通。而实现联通的功能就是实现分组交换,就是路由器将收到的分组再进行转发,就相当于一个转发消息的中继站。

    三种交换方式

    首先说在信发展过程中的三种交换方式:

    • 电路交换

    固定电话之间的通信方式就是电路交换,两台电话机之间通过一根电话线进行通话。 电话之间是同过交换机将许多的电话连接起来,从而可以使其两两之间可以相互的通话。而交换机就是起着交换的作用。当许多交换机连接起来就构成了一个巨大的电话网络。

    交换:(将物理链路虚拟化)按照某种方式动态的分配传输线路的资源。

    当电话铃声响起,接通后通信双方之间就建立起了一条用于通信的物理通路。这条通路就是通信两端所占用的通信资源,而这份通信资源在双方结束通话前,是不能被其他的用户所占用的,具有独占性,只有在通信完毕后交换机才会释放这份通信资源。

    【1】电路交换是面向连接的,安全性好,可靠性高

    【2】通话的时间内,通话的两个用户始终占用着端对端的资源。

    【3】电路交换的个步骤:建立连接(占用通信资源)— 通话(始终占用通信资源) —释放连接(释放通信资源)

    缺点:线路的传输效率低,对于计算机的是数据交换来说,计算机机数据的传输是突发性的,在被用户占用的通信资源在大部分的时间里都是空闲着的,因此浪费了大量的通信资源。

    • 分组交换
    分组交换采用存储转发的技术,路由器使用分组交换的技术

    报文:我们要发送的整块数据称为一个报文
    分组:在发送前将较长的报文划分为较小的数据段,每个大小为的1024 bit,每个数据段前加一个保存控制信息的首部就构成了一个分组。每个分组又称为,而首部又称为包头,是互联网中传输的是数据单元。

    首部:其中包含了目的地址源地址等重要信息,因此,分组才能在网络中选择正确的路径。

    路由器每收到一个分组,先将其存储下来,再根据分组的首部,检查转发表,将其转发到另一个路由器。经过不断的转发最终将分组转发到目的地址。路由器之间必须不交换彼此掌握的路由信息,来创建和动态维护路由器中的转发表,使得转发表的信息能够不断更新。

    短分组存储在路由器的内存中,提高了转发的速率。

    分组转发的过程中,转发时之占用到下一个路由器之间的来链路,动态的占用一段一段的链路,并不会占用整个端对端的通信线路,对于突发性的计算机数据传输来说,提高通信资源的利用率。

    优点

    • 高效:在分组的传输过程中是动态的分配传输带宽的,对通信链路是逐段占用的
    • 灵活:为每一个分组独立选则最合适的转发路由
    • 迅速:以分组作为传输单位可以先不建立连接就能向其他主机转发分组
    • 可靠:保证可靠性的网络协议,分布式的多路由交换的分组交换网,使网络有很好的生存性

    缺点

    • 时延:分组转发时需要排队会造成一定的时延。

    • 分组携带的(首部)控制信息也带来了一定的额外开销

    • 整个分组交换网需要专门的管理和控制机制

    • 报文交换

    在古代的邮政通信,也属于存储转发的技术,在近代的电报通信采用了基于存储转发的报文交换。

    报文交换的本质与分组交换类似,都是进行断续的转发,先将数据转发到某一节点,再将数据转发到下一节点,直至到达目的地址。

    与分组交换的最大区别就是,在传输时并不将报文分成小的分组,而是对于整个报文进行转发。

    三种交换的主要特点:

    • 电路交换:整个报文从源点到达终点,不中断,像在一条管道中传输
    • 分组交换:将报文分成多个分组,再将单个分组传送到相邻的节点,存储下来,再根据转发表进行转发到笑一个节点
    • 报文交换:整个报文传输到相邻节点,存储下来,再根据转发表,转发到下一个节点
    展开全文
  • XML中常用的两种验证模式

    千次阅读 2018-03-09 09:58:26
    当时看到了有点印象的东西,决定记下来XML文件的验证模式保证了XML文件的准确性,而比较常用的两种验证模式有:DTD和XSDDTD(Doucument Type Definition)即文档类型定义,是一种XML约束模式语言,是XML文件的验证...
  • 涉及诸如float或者double这两种浮点型数据的处理时,偶尔总会有一些怪怪的现象,不知道大家注意过没,举几个常见的栗子: 典型现象(一):条件判断超预期 System.out.println( 1f == 0.9999999f ); // 打印:false ...
  • unity按钮实现场景切换的两种方法

    千次阅读 2019-10-29 08:48:54
    unity按钮控制场景切换的两种方法 先讲大家最关注的点,让按钮点击了之后切换场景,可以纯代码,也可以用unity带的右边的东西实现,进主题 1 用unity带的右边的东西实现 创建一个button之后会出现这些东西,上面的...
  • jsp中include 的两种用法

    千次阅读 2018-09-13 22:34:24
    1.两种用法 静态include: <%@ inlcude file =”header.jsp” %> 此时引入的是静态的jsp文件,它将引入的jsp中的源代码原封不动地附加到当前文件中,所以在jsp程序中使用这个指令的时候file里面的值...
  • 计算机的层次结构计算机系统的基本组成计算机硬件的基本组成计算机的软件与硬件的关系计算机的工作过程(指令执行的过程)3.计算机的性能指标 ==(重点)==二、计算机发展历程1.计算机硬件的发展2. 计算机的分类按...
  • WebService两种发布协议--SOAP和REST的区别 1、 SOAP是一种具体的通讯协议,REST是一种规范. 2、 SOAP(Simple Object Access Protocol)简单对象访问协议,是基于HTTP的一种异构系统通信的协议,说白了就是...
  • 首先以下内容是查找网上资料后了解的利用qrcode.js生成二维码的额两种方式,canvas(即画布)方式和table方式(原文地址http://www.helloweba.com/view-blog-226.html): 具体做的demo如下: 1、页面元素:地址...
  • 什么是动态代理?假如我有一个user对象,该对象里面有4个方法,增、删、改、查,...同理,谁操作了这个东西,你需要给我留下记录,免得我不知道是谁做的。所以,我应该在每一个方法的前面加权限校验,在每一个方法的...
  • 两种开源聊天机器人的性能测试(一)——ChatterBot

    万次阅读 多人点赞 2017-10-03 17:24:03
    因为最近在学习自然语言处理的相关知识,QQ小冰这个东西最近又很热,所以就试着玩了下个开源聊天机器人,在这里分享一点小经验,希望对有共同兴趣的人能起到那么一点作用。  我主要测试了个聊天机器人,一个是...
  • Vivado中两种RTL原理图的查看方法和区别

    万次阅读 多人点赞 2020-02-11 16:36:44
    不过,我们可以将他们映射到 LUT 上实现—— 一 FPGA 上有的是的东西。 举个例子 一个计数器的电路就跃然纸上了,其实计数器和 CPU 都是一样的(真的)。 右键某个元件,在菜单中选择 Go to Source, ...
  • 在很多的UI设计上,透明处理作为一个又炫又实用的方法受到很多人的喜爱,就像曾经...但是光支持Alpha通道也不能解决所有事情,比如说让这个图片框动态调节透明度就不行了(是不是太矫情了,微软明明提供了GDI+这么强大的东西
  • JAVABEAN是什么和总结JAVABEAN的两种使用方式

    万次阅读 多人点赞 2015-02-07 00:14:14
    二、 javabean 的两种使用方式:(嵌入 java 代码方式和使用 jsp 标记符方式)【也就是 当作普通的类来使用 或 者在  jsp   中  页面处理时有特殊的 标记符处理 方式】 以下是使用 javabean 的每个...
  • 这个真是绝了,本人就是穿小白鞋一周就会穿成小脏鞋的那种,有了这个在鞋的时候全方位喷一下,真的就再也不会脏了耶! 其实呢,当年买它,是宝宝在法国的时候,去北欧玩,穿的雪地靴,踩在雪里,雪都能化进鞋...
  • URL组成详解

    万次阅读 2018-06-02 22:36:11
    转自:https://blog.csdn.net/ergouge/article/details/8185219转自:http://www.cnblogs.com/woodyblog/p/6005414.htmlURL的组成格式最近在学习...URL组成格式图中中括号是可选项protocol 协议,常用的协议是httph...
  • 计算机的基本组成

    万次阅读 2017-11-08 14:47:39
    一、冯诺依曼计算机特点 1、 计算机有五大部件组成。 2、 指令和数据以同等地位存储在存储器中, 可按地址寻访。 3、指令和数据用二进制表示。...输入设备:将人能看懂的东西转换成计算机能识别的。
  • 计算机组成原理知识点

    万次阅读 多人点赞 2017-09-25 11:17:08
    计算机组成原理(Computer Organization)是依据计算机体系结构,在确定且分配了硬件子系统的概念结构和功能特性的基础上,设计计算机各部件的具体组成,以及它们之间的连接关系,实现机器指令级的各种功能和特性,这...
  • 计算机组成原理面试知识点总结

    万次阅读 多人点赞 2016-08-29 10:50:33
    计算机组成原理面试知识点总结
  • 计算机底层是什么东西

    万次阅读 多人点赞 2018-09-13 15:19:16
    代码写着写着,突然特别想知道计算机底层到底是什么东西。 最近特意看了一些文章,谨以此文章记录一下自己的想法。 ①数据传输 首先先大概描述一下 数据传输过程 A计算机(服务器)<-------->网络传输...
  • 运算器组成实验 一、 实验目的 熟悉 Logisim软件平台。 掌握运算器基本工作原理 掌握运算溢出检测的原理和实现方法; 理解有符号数和无符号数运算的区别; 理解基于补码的加/减运算实现原理; 熟悉运算器的数据传输...
  • 计算机的硬件软件组成

    万次阅读 多人点赞 2017-09-18 21:04:47
    计算机的硬件组成和软件系统 本节概述 本节包括计算机的硬件组成和软件系统个部分。 计算机上的硬件由CPU、控制器、运算器、存储器、输入/输出接口电路和系统总线等构成。CPU如同微型计算机的心脏,它的性能...
  • 复习笔记——计算机组成原理

    千次阅读 多人点赞 2016-04-10 16:53:48
    但这种方法还是有其缺点,那就是如果需要果酱饼干的顾客很多,需要巧克力饼干的顾客相对较少,显然对果酱饼干的需求量会远多于对巧克力饼干的需求量,可是放置两种饼干的空间是一样大的,于是可能出现这种情况:存放...
  • Web Components 是个什么样的东西

    万次阅读 2016-08-31 11:01:33
    React 的components 等等,无一不是前端组件化的一实现和探索,但是提上议程的 Web Components 标准是个怎样的东西,相关的一些框架或者类库,如 React,Angular2,甚至是 x-tag,polymer 现在实
  • 静态链接库(LIB)和动态链接库(DLL),DLL的静态加载和动态加载,两种LIB文件。 一、 静态链接库(LIB,也简称“静态库”)与动态链接库(DLL,也简称“动态库”)的区别  静态链接库与动态链接库都是共享...
  • 单片机到底是个什么东西

    万次阅读 多人点赞 2017-12-21 08:06:16
    东西本身一模一样,早期只有电路板没有芯片,后来半导体工艺发展后有了微型器件,所以人把一些电路利用半导体工艺直接作死到一个芯片中去形成了IC。 (2)不同点。电路板体积较大,功率大;芯片体积小,功率...
  • 计算机五大组成部分

    万次阅读 2018-02-28 21:30:29
    · 主机部分:系统单元,就是被主机壳保护的东西,有一堆板子,cpu与主储存器(内存)等; · 输出单元:屏幕、打印机等 整部主机重点是中央处理器(CPU),CPU使用一个具有特定功能的芯片,里面含有微指令集。由于...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 303,199
精华内容 121,279
关键字:

两种东西组成新东西