一、硬件、软件
1946年2月14日,由美国军方定制的世界上第一台电子计算机-电子数字积分计算机在美国宾夕法尼亚大学问世。
硬件系统:运算器、控制器、存储器、输入设备、输出设备
内存和硬盘的区别
内存:基于电流方式工作;不通电就什么都没有了
硬盘:基于磁的方式工作;可以永久存放数据;机械手臂一圈圈读数据(类似黑胶唱片) ;参数:容量、转速(不过转速再快也快不过内存)
计算机硬件->操作系统软件->应用软件
用户可以操作应用软件,也可以控制操作系统(编程)
硬盘数据写到内存里,然后cpu从内存里读取数据。所以一开机之后,内存就被操作系统占了一部分空间
Cpu:包括运算器、控制器、寄存器(用来缓解cpu和内存的速度差)(搬水泥盖房子例子)
二、进制转换、原码、反码、补码
数据的表现形式
- 十进制
- 二进制
- 八进制
- 十六进制
进制转换
二进制/八进制/十六进制转十进制:底数变化,指数规律相同
十进制转二进制:除2取余法(你序卦列)
十六进制转二进制:一个十六进制位变成4个二进制位
二进制转八进制:三个一组分组,每三个二进制位转成一个八进制数位
二进制转十六进制:四个一组
机器数:一个数在计算机中的二进制表示形式,叫做这个数的机器数,机器数是带符号的,计算机用一个数的最高位存放符号,正数为0,负数为1
真值:将带符号位的机器数对应的真正数值称为机器数的真值
原码:符号位加上真值的绝对值,用第一位表示符号,其余位表示值。所以8位二进制数的取值范围是[-127,127]
反码:
正数的反码:其本身
负数的反码:在原码的基础上,符号位不变,其余各个位取反
补码:
正数的补码:其本身
负数的补码:在原码的基础上,符号位不变,其余各位取反,最后+1(即在反码的基础上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
在计算机系统中数值一律用补码来表示。这使得将减法运算转变成加法运算。
三、网络通信原理
互联网的本质就是一系列的协议
Osi七层协议:
- 应用层
- 表示层:解压
- 会话层
- 传输层:
功能:建立端口到端口的通信
端口是和网卡绑定的
传输层端口号为了标识一台电脑上的不同程序
端口范围:0-65535 (套接字编程)
Tcp协议(传输控制协议):可靠传输。Tcp数据包没有长度限制,但是通常长度不会超过ip数据包的长度
Udp协议(用户数据报协议):不可靠传输。报头部分一共有8个字节,总长度不超过65535字节,正好进一个ip数据包。
参考资料:
- 网络层:
如果全世界通信都用以太网的广播方式,那么一台机器发送的包全世界都能够收到,效率低
ip协议:规定网络地址的协议为ip协议
IPv4默认网关:跨网络通信
Ip数据包:head和body。Head里包含s_ip和d_ip。Ip数据包封装到以太网包的body内
网络层工作在数据链路层身上。
- 数据链路层:
定义了电信号的分组方式。统一标准:以太网协议。
一组电信号构成一个数据包,叫做“帧”
每一组数据帧分成:报头head(18个字节)和数据data两部分。Head里包含source_mac和destination_mac
Mac地址(物理地址):网卡的地址
局域网内的计算机用:广播
ARP协议:所有上层的包到最后都要封装上以太网头,然后通过以太网协议发送,在读及以太网协议时候,我们了解到,通信是基于mac的广播方式发送的,计算机在发包时,获取自身的mac是容易的,如何获取目标主机的mac,就需要通过arp协议
找网关之前,主机需要通过arp协议用广播的方式发送数据包,获取目标主机的mac地址。获取目标主机的mac地址之后就可以正常发包了。
源mac | 目标mac | 源ip | 目标ip | 数据部分 | |
发送端主机 | 发送端mac | FF:FF:FF:FF:FF:FF | 172.16.10.10/24 | 172.16.10.11/24 | 数据 |
目标mac内的FF:FF:FF:FF:FF:FF表示想要获取目标ip那台机器的mac地址
先获得本机和目标的ip地址,并判断两者是否在同一个局域网内
同一网络:广播
不同网络:目标地址栏写网关的ip地址,所有人都收到但是只有网关返回mac值给本机,通过arp获取的是网关的mac
- 物理层:
光线、电缆、双绞线、无线电波。主要是基于电器特性发送高低电压,高电压对应数字1,低电压对应数字0