1.IP地址作用?端口号作用?协议作用?五元组?
IP地址用来定位网络的主机号。
端口号用来定位主机的进程。
协议用来规定网络数据传输双方的数据格式。网络通信中所有网络设备都要共同遵循的一组规则和约定。包含语法、语义、时序。
五元组:源IP-标识源主机,源端口号-标识源主机中该次通信发送数据的进程,目的IP,目的端口号,协议号-双方约定的数据格式
2.TCP/IP四层模型每一层功能、联系、以及网络设备
应用层:负责程序间的沟通。如FTP文件传输协议,SMTP简单电子邮件传输,Telnet网络远程访问协议
应用层工作在用户态,传输层及以下工作在核心态
应用层传输的数据可能很大,如果直接传输就不好控制,因此当传输层的数据包大小超过MSS,就要将数据包分块,这样即使中途有丢失或损坏,只需要重写发一个分块,而不需要发送整个数据包。在TCP中,我们把每个分块称为一个TCP段。
传输层:负责两台主机间数据传输,为应用层提供网络支持。如TCP传输控制协议,能确保数据可靠的从源主机传输到目标主机。
IP协议会将传输层的报文作为数据部分,再加上IP包头组装成IP报文,如果IP报文大于MTU就会再次进行分片,得到一个即将发送到网络的IP报文。
网络层:负责地址管理和路由选择。IP 协议中通过IP地址标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输线路。路由器工作在网络层。
寻址相当于导航,路由相当于根据目的地选择路径。
生成IP头部后,接下来交给网络接口层在IP头部加上MAC头部,并封装为数据帧发送到网络上。
数据链路层:负责设备之间的数据帧的传送和识别。如帧同步,冲突检测,数据差错检验等工作。交换机工作在数据链路层。
物理层:负责光/电信号的传递方式。如现在以太网通用的网线(双绞线),早期采用的同轴电缆,光纤。物理层的能力决定了最大传输效率,传输距离,抗干扰性等。集线器就是工作在物理层。
5.应用层数据发送到网络上的封装过程
6.为什么要有TCP/IP模型
1.图灵机工作原理
图灵机主要功能就是读取纸带格子中的内容,然后交给控制单元识别字符是数字还是运算符指令,如果是数字则存入到图灵机状态中,如果是运算符,则通知运算符单元读取状态中的数值进行计算,计算结果最终返回给读写头,读写头把结果写入到纸带的格子中。
事实上,图灵机这个看起来很简单的工作方式,和我们今天的计算机是基本一样的。
程序执行的基本过程:
一个程序执行的时候,CPU 会根据程序计数器里的内存地址,从内存里面把需要执行的指令读取到指令寄存器里面执行,然后根据指令长度自增,开始顺序读取下一条指令。
CPU 从程序计数器读取指令、到执行、再到下一条指令,这个过程会不断循环,直到程序执行结束,这个不断循环的过程被称为 CPU 的指令周期。
2.冯诺依曼体系
五个部分,包括运算器、存储器、控制器、输入设备、输出设备,这五个部分被称为冯诺依曼模型。运算器、控制器是在中央处理器里的,存储器就我们常见的内存,输入输出设备则是计算机外接的设备,比如键盘就是输入设备,显示器就是输出设备。
存储单元和输入输出设备要与中央处理器打交道的话,离不开总线。
3.内存
我们的程序和数据都是存储在内存,存储的区域是线性的。
数据存储的单位是一个二进制位(bit),即 0 或 1。最小的存储单位是字节(byte),1 字节等于 8 位。
4.CPU
内有一些常见的组建,如寄存器,控制单元和逻辑单元等。
常见的寄存器种类:
通用寄存器,用来存放需要进行运算的数据,比如需要进行加和运算的两个数据。
程序计数器,用来存储 CPU 要执行下一条指令「所在的内存地址」,注意不是存储了下一条要执行的指令,此时指令还在内存中,程序计数器只是存储了下一条指令的地址。
指令寄存器,用来存放程序计数器指向的指令,也就是指令本身,指令被执行完成之前,指令都存储在这里。
5.总线
总线是用于 CPU 和内存以及其他设备之间的通信,总线可分为 3 种:
- 地址总线,用于指定 CPU 将要操作的内存地址;
- 数据总线,用于读写内存的数据;
- 控制总线,用于发送和接收信号,比如中断、设备复位等信号,CPU 收到信号后自然进行响应,这时也需要控制总线;
当 CPU 要读写内存数据的时候,一般需要通过两个总线:
首先要通过「地址总线」来指定内存的地址;
再通过「数据总线」来传输数据;