Python重启之计算机网络基础

计算机的构成

  一台完整的计算机是由硬件系统和软件系统两大部分组成的。

    硬件系统主要有五大部分组成:运算器、控制器、存储器、输入设备、输出设备。

      运算器:负责算数运算与逻辑运算,与控制器共同组成了中央处理器(CPU)

      控制器:负责发送和接受指令。

      存储器:用来存储正在进行程序、将要进行程序的数据及刚处理完的数据。如内存(基于电的方式工作)、硬盘(基于磁的方式工作)。

      输入设备:用来进行输入的设备。如键盘、扫描仪等。

      输出设备:用来进行输出的设备。如显示器、音箱等。

      CPU里有运算器、控制器、寄存器(一种缓存)

      主板:主板一般为矩形电路板,上面安装了组成计算机的主要电路系统,一般有BIOS芯片、I/O控制芯片、键和面板控制开关接口、指示灯插接件、扩充插槽、主板及插卡的直流电源供电接插件等元件。

    软件是为了完成某一项特定工作而开发的程序。比如windows8操作系统主要用来控制电脑硬件协同工作的。软件分为系统软件和应用软件。

      系统软件:指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。

      系统软件举例:windows7、android、IOS、linux、unix等

      应用软件举例:QQ、腾讯视频等

    硬件系统之上——系统软件之上——应用软件之上——用户

    硬件是基础,硬件需要通过系统软件控制来启动硬件,并让各个硬件之间相互协同工作,在系统软件的基础上是用户,用户操控的是系统软件,并在系统软件的基础上安装相应的应用软件,来完成用户所需要的工作。所以说最底层的是硬件,硬件上一层是系统软件,系统软件上一层是应用软件,而最上层的则是用户。

N进制

  计算机中采用二进制主要原因

    1、技术实现简单:计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”和“0”表示。

    2、简化运算规则:两个二进制数和、积运算组合各有三种,运算规则简单,有利于简化计算机内部结构,提高运算速度。

    3、适合逻辑运算:逻辑代数是逻辑运算的理论依据,二进制只有两个数码,正好与逻辑代数种的“True”和“False”相吻合。

    4、易于进行转换:二进制与十进制数易于互相转换。

    5、用二进制表示数据具有抗干扰能力强、可靠性高等优点。因为每位数据只有高低两个状态,当受到一定程度的干扰时,仍能可靠地分辨出它是高还是低

  十进制数 5000 可以表示为: 5*10^3

  二进制数转换为十进制数:101100 = 1*2^(6-1)+1*2^(4-1)+1*2^(3-1)

  N进制数转换为十进制数:110 = 1*N^(3-1)+1*N^(2-1)

  二进制转换为八进制:三位合一

  二进制转换为十六进制:四位合一

  十进制转换为二进制:除2取余,余数从下至上排列。

机器数与真值

  机器数

    一个输在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0,负数为1。

  真值

    将带符号位的机器数对应的真正数值称为机器数的真值。

原码、反码和补码(二进制用B,十进制用D,八进制用O,十六进制用X)

  人们为了将符号位参与运算,并且只保留加法,从而简化计算机运算,发明了原码、反码和补码。这三个都是有符号的用二进制表示数的方法,均由符号位和数值位构成。

  原码(其实有点像机器数)

    原码是符号位加真值的绝对值。符号位正数为0,负数为1。

    例如(1)D的原码 ==(00000001)B    (-1)D的原码 == (10000001)B

    第一位是符号位,余下七位是数值为。因为第一位是符号位,所以八位二进制数的取值范围是【-127,127】。

  反码

    正数的反码就是其本身

    负数的反码是在其原码的基础上,符号位不变,其余取反。

    例如:(1)D的反码 == (00000001)B    (-1)D的反码 == (11111110)B

  补码

    正数的补码就是其本身

    负数的补码就是其反码+1

  综上所述:正数的原码、反码和补码都是原码;负数的原码就是其相反数的原码的符号位变为1,反码符号位1不变  其余取反,补码就是反码+1。

  在计算机系统中,数值一律用补码来表示(存储)。主要原因是:使用补码,可以将符号位和其他位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃,例如1与-1的相加,1的补码是(00000001)B,-1的补码是(11111111)B,相加之后等于0,也就是两个补码相加之后的结果是(00000000)B,这个结果就是1与-1相加的结果的原码。

网络通信原理(发送数据是一种封装的过程,接受数据则是解封装)

  互联网的本质就是一系列的网络协议。

  TCP/IP四层协议:应用层——传输层——网络层——网络接口层

  TCP/IP五层协议:应用层——传输层——网络层——数据链路层、物理层

  OSI七层:应用层、表示层、会话层——传输层——网络层——数据链路层、物理层  (记忆:应表会传网数物)

    物理层功能:主要时基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0。

    数据链路层的功能:定义了电信号的分组方式  (这一层有以太网协议)

      以太网协议(基于MAC的广播方式实现)

        协议规定一组电信号构成一个数据包,叫做帧

        每一数据帧分成:报头head和数据data两部分

        head包含:(固定18个字节)

          发送者、原地址(MAC),6个字节

          接受者、目标地址(MAC),6个字节

          数据类型,6个字节

        data包含:(最短46字节,最长1500字节)

          数据包的具体内容

        head+data=最短64B,最长1518B,超过最大限制就分片发送

      广播

        有了MAC地址,同一网络的两台主机就可以通信了(一台主机通过ARP协议获取另外一台主机的MAC地址),计算机通信基本靠吼。

    网络层功能:引入一套新的地址用来区分不同的广播域、子网,这套地址即网络地址。  (这一层有IP协议、ARP协议、ICMP、IGMP、RARP)

      如果所有的通信都采用以太网的广播方式,那么一台机器发送的包全世界都会收到,这就不仅仅是效率低的问题了,这会是一种灾难。(以太网包只能在一个局域网内发送,一个局域网是一个广播域,跨广播域通信只能通过路由转发)

      IP协议:规定网络地址的协议叫IP协议

        IP数据包也分为head和data部分,无须为IP包定义单独的栏位,直接放入以太网包的data部分。

        head(这里放源IP和目标IP)长度为20到60B  data最长65515B,而以太网数据包的data部分,最长只有1500B,因此,如果IP数据包超过了1500B,就需要分割成几个以太网数据包,分开发送了。

      ARP协议:广播的方式发送数据包,获取目标主机的MAC地址。(功能就是获取目标MAC,但前提是已知IP地址)

        ARP获取目标MAC时,会发送一个目标MAC全为F的一个以太网包,这种数据包的功能就是获取MAC地址

        同一子网:目标主机MAC,目标主机IP

        不同子网:网关MAC,目标主机IP

    传输层功能:建立端口到端口的通信(端口就是应用程序与网卡关联的编号)  (这一层有TCP协议、UDP协议)

      TCP协议:可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

      UDP协议:不可靠传输,报头部分一共只有8B,总长度不超过65535B,正好放进一个IP 数据包。

      其实在TCP或UDP之上封装了一层Socket抽象层(关于网络编程)

    会话层:用来建立会话的

    表示层:用来数据的压缩、解压缩、加密及解密

    应用层功能:规定应用程序的数据格式。  

    每层运行常见物理设备

      传输层——四层交换机、四层的路由器

      网络层——三层交换机、路由器

      数据链路层——网桥、以太网交换机、网卡

      物理层——中继器、集线器、双绞线

网络分类

  局域网:就是一个广播域

  城域网:规模局限在一座城市的范围内

  广域网:跨越国界、州界,甚至全球范围。

传输介质

  有线网:采用同轴电缆和双绞线来连接的计算机网络

  光纤网:是一种特殊的有线网,采用光导纤维作传输介质。光纤传输距离长,传输率高,可达数千兆,抗干扰性强,不会受到电子监听设备的监听,是高安全性网络的理想选择。缺点是价格高,且需要高水平的安装技术,所以尚未普及。

  无线网:用电磁波作为载体来传输数据,无线网联网费用较高。

字符编码

  计算机只认识数字,字符串——>(翻译过程)——>数字

  一个字符对应一个特定数字的标准,这个标准称为字符编码

  美国人规定了自己的ASCII码;中国人规定了自己的标准gb2312编码,规定了包含中文在内的字符——>数字的对应关系;日本人规定了自己的shift_JIS编码;韩国人规定了自己的Euc_kr编码。

  如果一篇文档用了多种语言,就要用到Unicode编码(世界的标准)

  ASCII用一个字节代表一个字符(ASCII只支持英文),Unicode(万国码,全球通用)用两个字节代表一个字符,生僻字需要用四个字节(Unicode浪费空间)

  utf-8能用多少字节表示一个字符就用多少字节表示,以节省内存空间。(utf-8也全球通用)utf-8用三个字节显示一个中文。

  gb2312和gbk:表示中文用两个字节

  Unicode和utf-8可以直接互相转换,Unicode也可以和gbk直接互相转换,但utf-8不能和gbk直接转换。

  

posted on 2019-08-02 19:02  Yncd  阅读(363)  评论(0)    收藏  举报

导航