博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算机原理、互联网协议基础
阅读量:5101 次
发布时间:2019-06-13

本文共 2723 字,大约阅读时间需要 9 分钟。

计算机原理

互联网协议

 

计算机原理

 


 

机器数与真值

一个数在计算机中的二进制表示,叫做这个数的机器数。

机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0,负数为1.

比如,十进制中的数 +3,计算机字长为8,转换成二进制就是00000011。如果是-3,就是10000011。这里的00000011和10000011就是机器数

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

00000001的真值为 +00000001 = +1

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
从而把减法的运算转换成了加法的运算

 

 

互联网协议

 


 

互联网的本质就是一系列协议,总称为互联网协议
互联网协议功能:定义计算机如何接入Internet,以及接入Internet的计算机通信的标准
互联网协议按照功能不同分为
osi七层协议 或者 TCP/IP五层协议 或者 TCP/IP四层   ,如下图所示
osi七层协议:
应用层,表示层,会话层 
传输层
网络层
数据链路层
物理层
背的时候:应表会传网数物

物理层: 物理层功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字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协议获取:

FF:FF:FF:FF:FF:FF表示mac地址最高位,在局域网中,我们肯定是知道对方IP的,将mac地址封装成这种方式发出去,目标IP地址的电脑接收到,响应,则就返回mac地址给原ip电脑,其他电脑发现找的不是自己就会忽视获取到mac地址后,就继续根据以太网协议,来进行封装和广播
 那如果目标IP不是在同一个局域网呢,此时通过计算(子网掩码)发现不在同一个局域网,目标IP会替换成为局域网网关,返回网关的mac地址
然后再继续广播,不过此时目标mac地址是网关的mac地址,原ip是自己,目标ip是一开始我们要找的电脑,我们通过网关来帮我们找目标ip,而不是我们直接找

 

 传输层:

传输层的由来:网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序,

那么我们通过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。

传输层功能:建立端口到端口的通信

 

socket:

 我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络中通信。

 

 

 

 我们在理解网络传输的时候,是从物理层开始理解从直到应用层,

但是如果我们在使用应用程序时候,应用程序发出的信息,要从应用层一层层解析,最后变为物理层的电信号进行传输。

 

 

转载于:https://www.cnblogs.com/gkx0731/p/9521807.html

你可能感兴趣的文章
IdentityServer4【Topic】之定义资源
查看>>
【SQLServer】将Job运行结果发送电子邮件通知用户
查看>>
js 易错点
查看>>
一封程序员的苦逼辞职信
查看>>
10月10日 2
查看>>
(转)正则表达之零宽断言(零宽度正预测先行断言)
查看>>
spring mvc 提供的几个常用的扩展点
查看>>
Spring对字段和集合的注入---依赖注入
查看>>
Java 学习 day09
查看>>
P4345 [SHOI2015]超能粒子炮·改
查看>>
暂且解决INSTALL_FAILED_SHARED_USER_INCOMPATIBLE错误
查看>>
Java获取网络IP
查看>>
远程调试
查看>>
「日常训练」Queue(Codeforces Round 303 Div.2 D)
查看>>
There has been an error processing your request[magento1.6]
查看>>
python带cookie登录
查看>>
想念你 2012-10-24 23:27
查看>>
MVC解决Json DataGrid返回的日期格式是/Date(20130450000365)
查看>>
ojective-C学习笔记(7)Foundation框架
查看>>
CDH5.14.0 安装失败,无法接受agent发出的检测信号
查看>>