计算机基础:
【1】冯· 诺依曼体系:
ENIAC,1946/2/14诞生,世界上第一台通用计算机。
CPU(中央处理器,Central Processing Unit):运算器、控制器、寄存器、缓存
存储器:内存、RAM(Random Access Memory)存储器内部有大量的存储单元
Input:下指令、提供数据等
Output:输出数据加工的结果
程序=指令+数据;算法+数据结构
NIC: Network Interface Card,网络接口卡/网络适配器,是计算机连接网络的设备
显卡:Video Card,Graphic Card,显示接口卡/显示适配器,是计算机进行数模信号转换的设备
【2】计算机的启动过程:
计算机的整个启动过程分成四个阶段:
1)BIOS:Basic Input/Output System,基本输出输入系统,进行硬件自检,通过则将控制权交给下一阶段的启动程序--->启动顺序(Boot Sequence)
2)主引导记录,MBR(Master boot record),512字节。
3)硬盘启动:告知计算机操作系统在哪个分区
4)操作系统:控制权交给操作系统之后,操作系统的内核被载入内存
OSI七层参考模型(Open System Interconnect),即开放式系统互联
应用层:通过人机交互的界面提供各种各样的服务
表示层:为上层用户解决用户信息语法问题,编码、解码、加密、解密
会话层:在两个节点之间建立端链接,提供对话控制机制,建立、维持、终止会话进程
传输层:通过端口号区分上层不同的服务,数据分段,TCP(面向连接的)/UDP(面向无连接)
网络层:通过IP地址进行逻辑寻址,建立两个节点之间的连接;路由器在此层工作
数据链路层:逻辑链路控制层 LLC 为上层提供服务;提供FCS校验;数据分帧
媒介访问控制层 MAC—物理地址;网桥/交换机工作在此层
物理层:定义电气、电压、光学特性、接口规范 中继器/集线器,传送比特流
PDU 协议数据单元
- 上三层 数据 data message
- 传输层 数据段 segment
- 网络层 数据包 packet
- 数据链路层 数据帧 frame
- 物理层 比特流 bit
报文封装与解封装:
以用户浏览网站为例说明数据的封装、解封装过程。
当用户输入要浏览的网站信息后就由应用层产生相关的数据,通过表示层转换成为计算机可识别的ASCII码,再由会话层产生相应的主机进程传给传输层。传输层将以上信息作为数据并加上相应的端口号信息以便目的主机辨别此报文,得知具体应由本机的哪个任务来处理;在网络层加上IP地址使报文能确认应到达具体某个主机,再在数据链路层加上MAC地址,转成bit流信息,从而在网络上传输。报文在网络上被各主机接收,通过检查报文的目的MAC地址判断是否是自己需要处理的报文,如果发现MAC地址与自己不一致,则丢弃该报文,一致就去掉MAC信息送给网络层判断其IP地址;然后根据报文的目的端口号确定是由本机的哪个进程来处理,这就是报文的解封装过程。
TCP/IP协议栈道
几种常见三层协议
IP 网际网络协议
ICMP 网络控制管理协议 Ping 测试连通性指令
ARP 地址解析协议
端口号
0-65535 1-1023(著名端口) 1024-65535(动态端口、高端口)
几种常见的应用层服务及端口号
FTP(文件传输协议) 21
Telnet(远程登录 ) 23
HTTP(超文本传输协议) 80
DNS(域名解析服务) 53
HTTPS(安全HTTP) 443
传输层协议
一、TCP--面向连接的可靠传输协议
面向连接--三次握手
可靠--可靠的传输机制、确认、重传、排序、流控(滑动窗口)
TCP报头:
1、端口号:用来标识同一台计算机的不同的应用进程。
1)源端口:源端口和IP地址的作用是标识报文的返回地址。
2)目的端口:端口指明接收方计算机上的应用程序接口。
TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接。
2、序号和确认号:是TCP可靠传输的关键部分。序号是本报文段发送的数据组的第一个字节的序号。在TCP传送的流中,每一个字节一个序号。e.g.一个报文段的序号为300,此报文段数据部分共有100字节,则下一个报文段的序号为400。所以序号确保了TCP传输的有序性。确认号,即ACK,指明下一个期待收到的字节序号,表明该序号之前的所有数据已经正确无误的收到。确认号只有当ACK标志为1时才有效。比如建立连接时,SYN报文的ACK标志位为0。
3、数据偏移/首部长度:4bits。由于首部可能含有可选项内容,因此TCP报头的长度是不确定的,报头不包含任何任选字段则长度为20字节,4位首部长度字段所能表示的最大值为1111,转化为10进制为15,15*32/8 = 60,故报头最大长度为60字节。首部长度也叫数据偏移,是因为首部长度实际上指示了数据区在报文段中的起始偏移值。
4、保留:为将来定义新的用途保留,现在一般置0。
5、控制位:URG ACK PSH RST SYN FIN,共6个,每一个标志位表示一个控制功能。
1)URG:紧急指针标志,为1时表示紧急指针有效,为0则忽略紧急指针。
2)ACK:确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。
3)PSH:push标志,为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。
4)RST:重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。
5)SYN:同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1。
6)FIN:finish标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。
6、窗口:滑动窗口大小,用来告知发送端接受端的缓存大小,以此控制发送端发送数据的速率,从而达到流量控制。窗口大小时一个16bit字段,因而窗口大小最大为65535。
7、校验和:奇偶校验,此校验和是对整个的 TCP 报文段,包括 TCP 头部和 TCP 数据,以 16 位字进行计算所得。由发送端计算和存储,并由接收端进行验证。
8、紧急指针:只有当 URG 标志置 1 时紧急指针才有效。紧急指针是一个正的偏移量,和顺序号字段中的值相加表示紧急数据最后一个字节的序号。 TCP 的紧急方式是发送端向另一端发送紧急数据的一种方式。
9、选项和填充:最常见的可选字段是最长报文大小,又称为MSS(Maximum Segment Size),每个连接方通常都在通信的第一个报文段(为建立连接而设置SYN标志为1的那个段)中指明这个选项,它表示本端所能接受的最大报文段的长度。选项长度不一定是32位的整数倍,所以要加填充位,即在这个字段中加入额外的零,以保证TCP头是32的整数倍。
10、数据部分: TCP 报文段中的数据部分是可选的。在一个连接建立和一个连接终止时,双方交换的报文段仅有 TCP 首部。如果一方没有数据要发送,也使用没有任何数据的首部来确认收到的数据。在处理超时的许多情况中,也会发送不带任何数据的报文段。
TCP3次握手
ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1
SYN(SYNchronization) : 在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此, SYN置1就表示这是一个连接请求或连接接受报文。
FIN (finish):即完,终结的意思, 用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。
TCP4次断开 本端和对端各发送了一次请求和确认
当客户A 没有东西要发送时就要释放 A 这边的连接,A会发送一个报文(没有数据),其中 FIN 设置为1, 服务器B收到后会给应用程序一个信,这时A那边的连接已经关闭,即A不再发送信息(但仍可接收信息)。 A收到B的确认后进入等待状态,等待B请求释放连接, B数据发送完成后就向A请求连接释放,也是用FIN=1 表示, 并且用 ack = u+1(如图), A收到后回复一个确认信息,并进入 TIME_WAIT 状态, 等待 2MSL 时间。
TCP窗口:
UDP:非面向连接的不可靠传输协议
网络层:IP协议
1、版本:IP协议的版本,目前的IP协议版本号为4,下一代IP协议版本号为6。
2、首部长度:IP报头的长度。固定部分的长度(20字节)和可变部分的长度之和。共占4位。最大为1111,即10进制的15,代表IP报头的最大长度可以为15个32bits(4字节),也就是最长可为15*4=60字节,除去固定部分的长度20字节,可变部分的长度最大为40字节。
3、服务类型:Type Of Service。
4、总长度:IP报文的总长度。报头的长度和数据部分的长度之和。
5、标识:唯一的标识主机发送的每一分数据报。通常每发送一个报文,它的值加一。当IP报文长度超过传输网络的MTU(最大传输单元)时必须分片,这个标识字段的值被复制到所有数据分片的标识字段中,使得这些分片在达到最终目的地时可以依照标识字段的内容重新组成原先的数据。
6、标志:共3位。R、DF、MF三位。目前只有后两位有效,DF位:为1表示不分片,为0表示分片。MF:为1表示“更多的片”,为0表示这是最后一片。
7、片位移:本分片在原先数据报文中相对首位的偏移位。(需要再乘以8)
8、生存时间:IP报文所允许通过的路由器的最大数量。每经过一个路由器,TTL减1,当为0时,路由器将该数据报丢弃。TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为 64。发送 ICMP 回显应答时经常把 TTL 设为最大值 255。
9、协议:指出IP报文携带的数据使用的是那种协议,以便目的主机的IP层能知道要将数据报上交到哪个进程(不同的协议有专门不同的进程处理)。和端口号类似,此处采用协议号,TCP的协议号为6,UDP的协议号为17。ICMP的协议号为1,IGMP的协议号为2.
10、首部校验和:计算IP头部的校验和,检查IP报头的完整性。
11、源IP地址:标识IP数据报的源端设备。
12、目的IP地址:标识IP数据报的目的地址。
IPv4地址
32位二进制,分为网络位和主机位(网络位标识所在网段,主机位唯一标识某主机)
分为ABCDE 五类,主类网
在默认情况下通过第一个8位就可以辨别类别;
A 0 0000000---0 1111111 0-127
B 10 000000---10 111111 128-191
C 110 00000---110 11111 192-223
D 1110 0000---1110 1111 224-239
E 1111 0000----1111 1110 240-254
单播地址:ABC 一对一
组播地址:D
科研使用:E
在单播地址中还存在私有地址和公有地址分类:
公有地址:全球唯一性 需要付费使用
私有地址:本地唯一性 无需付费
特殊ip地址:
0.0.0.0/0 无效地址/缺省地址
255.255.255.255 受限广播地址
127.0.0.1/8 本地环回地址
192.168.1.00000000/24 代表本网段内所有主机—主机位全0
192.168.1.11111111/24 代表本网段内的广播地址—主机位全1
169.254.0.0/16 本地私有地址