计算机原理网络
互联网协议socket
计算机原理spa
机器数与真值翻译
一个数在计算机中的二进制表示,叫作这个数的机器数。3d
机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0,负数为1.blog
好比,十进制中的数 +3,计算机字长为8,转换成二进制就是00000011。若是是-3,就是10000011。这里的00000011和10000011就是机器数接口
真值:将带符号位的机器数对应的真正数值称为机器的真值。进程
00000001的真值为 +00000001 = +1ip
10000011的真值为 -00000001= -1基础
原码、反码、补码
人们为了将符号位参与运算,而且只保留加法,从而简化计算机运算,发明了原码,反码和补码。
原码,反码和补码都是有符号的用二进制表示数的方法,均由符号位和数值位构成。
1.原码:
原码是符号位上真值的绝对值,即用第一表示符号位,其他位表示值,好比若是是8位二进制:
【+1】原码为 0000 0001 【-1】原码为 1000 0001
第一位是符号位,余下7位是数值位。由于第一位是符号位,因此8位二进制数的取值范围就是:
[11111111,01111111]便是 【-127,+127】
2.反码:
反码的表示方法为:
正数的反码是其自己;
负数的反码是在其原码的基础上,符号位不变,其他各个位取反。
【+1】原码为[0000 0001] 反码为 0111 1110
【-1】 原码为[1000 0001] 反码为 1111 1110
3.补码:
补码的表示方法为:
正数的补码是其自己,
负数的补码是其原码的基础上,符号位不变,其他各位取反,最后+1,(即在反码的基础上+1)
【+1】原码为[0000 0001] 反码为 0111 1110 补码为 0111 1111
【-1】 原码为[1000 0001] 反码为 1111 1110 补码为 1111 1110
补码的绝对值:
-65的补码是 10111111
若直接将10111111转换成十进制,发现结果并非-65,而是191。
事实上,在计算机内,若是是一个二进制数,其最左边的位是1,则咱们能够断定它位负数,而且是用补码表示,若要获得一个负二进制补码的数值,
只要对补码所有取反并加1,就可获得其数值。
如:二进制值:10111111(-65的补码)
各位取反:01000000 加1: 01000001(+65)
在计算机系统中,数值一概用补码来表示和存储。缘由在于,使用补码,能够将符号位和数值域统一处理;同时,加法和减法也能够统一处理。
此外,补码与原码相互转换,其运算过程是相同的,不须要额外的硬件电路。
0000 0011
1000 0011
1111 1101
正数的补码是他自己
负数的补码是 反码(保留符号位,其他位数取反),而后最后一位加+1。也就是说 好比 数字3 它的正数补码,加上,负数补码,恰好是 0
从而把减法的运算转换成了加法的运算
互联网协议
物理层: 物理层功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0
数据链路层:数据链路层由来:单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思
数据链路层的功能:定义了电信号的分组方式
以太网协议:
早期的时候各个公司都有本身的分组方式,后来造成了统一的标准,即以太网协议ethernet
ethernet规定
一组电信号构成一个数据包,叫作‘帧’
每一数据帧分红:报头head和数据data两部分
head包含:(固定18个字节)
发送者/源地址,6个字节
接收者/目标地址,6个字节
数据类型,6个字节
data包含:(最短46字节,最长1500字节)
数据包的具体内容
head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送
mac地址:
head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具有网卡,发送端和接收端的地址即是指网卡的地址,即mac地址
mac地址:每块网卡出厂时都被烧制上一个世界惟一的mac地址,长度为48位2进制,一般由12位16进制数表示(前六位是厂商编号,后六位是流水线号)
网络层:
网络层功能:引入一套新的地址用来区分不一样的广播域/子网,这套地址即网络地址,IP地址。经过子网掩码判断是否处于同一个局域网。
arp协议:
可是在以太网协议中,发送信息,须要事先知道目标mac地址,此时就经过arp协议获取:
传输层:
传输层的由来:网络层的ip帮咱们区分子网,以太网层的mac帮咱们找到主机,而后你们使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序,
那么咱们经过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。
传输层功能:创建端口到端口的通讯
socket:
咱们常常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操做抽象为几个简单的接口供应用层调用以实现进程在网络中通讯。
咱们在理解网络传输的时候,是从物理层开始理解从直到应用层,
可是若是咱们在使用应用程序时候,应用程序发出的信息,要从应用层一层层解析,最后变为物理层的电信号进行传输。