PART1
1.TCP和UDP的区别是什么?
2.TCP报文首部格式是什么?
3.TCP三次握手的过程
4.为什么TCP要三次握手?
5.TCP三次握手的数据报可以携带数据吗?
6.半连接队列是什么?
7.SYN 洪泛攻击是什么?
8.TCP四次挥手的过程
9.为什么要四次挥手?
10.HTTP和HTTPS的区别?
11.MAC地址和IP地址的区别?
12.OSI是什么?有哪些层?
13.DNS域名解析是做什么的?有哪些步骤?
14.TCP/IP层次模型是什么?
15.IP地址是什么?IP地址有哪几类?
16.子网掩码是什么?
17.公网IP地址和私网IP地址区别是什么?
18.NAT是什么?
19. IPv4和IPv6地址格式的区别?
PART2
1.TCP和UDP的区别是什么?
UDP
TCP
2.TCP报文首部格式是什么?
源端口和目的端口:分别占据2个字节,IP地址+端口号就可以确定一个进程地址。
序号(Seq):本报文发送的数据的第一个字节的序号。在TCP连接中,字节流中的每一个字节都按顺序编号 。
确认号(ack):期望收到对方下一个报文段的第一个数据字节的序号。若 ack=X,则表示前X-1个字节都已经正确收到。
数据偏移(首部长度):报文段的数据起始处距离报文段起始处有多远,也就是报文首部的长度。
保留6位:置为0,供日后使用。
标志位(共6位):
3.TCP三次握手的过程
客户端发送请求连接报文:SYN=1, seq = x,表明本报文发送的数据的第一个字节的序号。
服务器端接受请求,发送接收请求的响应报文:SYN=1, ack = x+1, seq = y 表明接收到了客户端发来的报文,希望收到的下一个报文的数据的第一个字节为x+1
客户端接收到了服务器端的响应报文后,发送一个ACK报文: ack = y+1, seq = x+1。此时客户端出于连接已建立的状态,等到服务器端接收到ACK报文,服务器端也会处于连接已建立的状态,至此,双方建立起了TCP连接。
4.为什么TCP要三次握手?
建立可靠的通信通道。双方都确认字节与对方的发送和接收是正常的。
第一次握手:服务器端确认对方的发送和自己的接收是正常的。
第二次握手:客户端确认自己的发送和接收,对方的发送和接收都是正常的。
第三次握手:服务器端确认自己的发送和接收,对方的发送和接受是正常的。
5.TCP三次握手的数据报可以携带数据吗?
前两次不可以。第三次可以。
假如第一次握手可以携带数据,那么恶意攻击者可以在第一次握手时携带大量的数据,并且发送非常多的请求连接报文段,这样服务器端会一直在接收这些报文段,没有空处理正常的连接请求。
6.半连接队列是什么?
服务器收到了请求连接报文,但连接还没有完全建立起来,服务器会把这些请求连接放在半连接队列中。
7.SYN 洪泛攻击是什么?
客户端在短时间内伪造很多不存在的IP地址,并且向服务器端发送非常多的SYN请求。
服务器端回复这些SYN包,并且等待客户端确认。由于源地址不存在,服务器端需要不断重复回复,直到超时。这些伪造的SYN包将长时间占用半连接队列,导致正常的SYN包因为队列满而被丢弃。从而引发网络堵塞甚至系统瘫痪。
8.TCP四次挥手的过程
第一次挥手:客户端发送FIN报文:FIN=1, seq = u
第二次挥手:服务器端发送确认报文: ACK=1, ack = u+1, seq = v
此时TCP处于半关闭状态,客户端到服务器端的连接已释放。
第三次挥手:服务器端发送FIN报文: FIN=1, ACK=1, seq = w, ack = u+1
第四次挥手:客户端发送确认报文: ACK=1, ack = w+1, seq = u+1
此时服务器端到客户端的TCP连接并未释放,客户端需要等待一个报文来回时间才会进入关闭状态。目的是确保服务器端可以接收到ACK报文,如果服务器端在规定时间内没有收到ACK报文,会重发FIN报文,直到服务器端收到ACK报文,连接才完全关闭。
9.为什么要四次挥手?
TCP连接具有半连接的特性,连接的一方在结束了发送后,还能继续接收数据。
两次握手可以释放一方到另一方的连接。四次握手就能完全释放连接。
10.HTTP和HTTPS的区别?
HTTP | HTTPS |
明文传输数据,连接简单,无状态 | 使用TLS加密传输,TCP三次握手后,还要进行SSL握手,协商对称加密密钥 |
端口号为80 | 端口号为443 |
无需申请任何证书 | 服务器端需要申请证书,浏览器端需要安装对应的根证书 |
延时短 | 延时长 |
部署成本低 | 部署成本高,需要购买证书和加密解密数据占用更多的CPU资源 |
HTTPS保证了数据的保密性、完整性和验证了服务器的身份。
11.MAC地址和IP地址的区别?
MAC地址:在数据链路层使用,48位,物理地址,写在硬件设备的内部,是不可变的。
IP地址:在网络层使用,32位,可以改变。为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
12.OSI是什么?有哪些层?
OSI是开放式通信系统互连参考模型,一个试图把计算机在世界范围内互连为网络的标准框架。
应用层:
表示层
会话层
传输层
以上四层处理数据源和数据目的地之间的端到端通信
以下三层处理网络设备间的通信
网络层
数据链路层
物理层
13.DNS域名解析是做什么的?有哪些步骤?
将域名和IP地址互相映射。DNS服务器是基于UDP协议的。
步骤:
14.TCP/IP层次模型是什么?
应用层:合并了OSI模型中的应用层、表示层、会话层
传输层:建立端到端的连接
网络层:寻址和路由选择
网络接口层:物理介质访问、数据流传输
15.IP地址是什么?IP地址有哪几类?
IP地址是IP协议为因特网上的每一个网络和主机分配的逻辑地址,以此来屏蔽物理地址的差异性。
IP协议为因特网上的每一台主机和路由器都提供了全世界范围内唯一的32bit的标识符。
IP地址由网络号和主机号组成。
综上,每一台主机和路由器的IP地址在全世界范围内都是唯一的。、
IP地址常用的有A类、B类和C类
A类地址:0xxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx 首位必须为0
B类地址:10xxxxxx xxxxxxxx xxxxxxxx xxxxxxxx 前两位必须为10
C类地址:110xxxxx xxxxxxxx xxxxxxxx xxxxxxxx 前三位必须为100
不常用的由D类和E类地址
D类地址:1110xxxx xxxxxxxx xxxxxxxx xxxxxxxx 前四位必须为1110
组播地址,不区分网络号和主机号
E类地址:11110xxx xxxxxxxx xxxxxxxx xxxxxxxx 前五位必须为11110
实验地址:保留今后使用
16.子网掩码是什么?
子网掩码用于计算IP地址的网络号,子网掩码与IP地址进行与运算,可以得到网络号。
17.公网IP地址和私网IP地址区别是什么?
公网IP地址:可以直接访问互联网,在全世界范围内唯一
私网IP地址:不能用于访问互联网,在局域网内使用,在局域网的范围内唯一,在互联网上不唯一,所以不能用私有IP地址来访问主机。
18.NAT是什么?
NAT是网络地址转换,实现私网IP地址和公网IP地址之间的相互转换,将大量的私网IP地址转换为少量的公网IP地址,以减少对公网IP地址的占用。
静态转换:IP地址一对一转换,且不会再改变,某个私网IP地址只转换成某个公网IP地址
动态转换:当私网IP地址转换成公网IP地址时,公网IP地址是不确定的、随机的。一般用于共公网IP地址略少于私网IP地址的情况。
端口多路复用 PAT:把多个私网IP地址映射到一个公网IP地址的不同端口上,实现一对多映射。
19. IPv4和IPv6地址格式的区别?
IPv4地址32位,每8位表示一个段,用十进制表示,段与段之间用.隔开,共4段
172.16.0.1
IPv6地址128位,每16位表示一个段,用十六进制表示,段与段之间用:隔开,共8段
2000:0000:0000:1000:0000:FFFF:6666:0001
连续的几个段都是0,可以简记为::,一个IPv6地址里只能有一个::
2000::1000:0000:FFFF:6666:0001