http与tcp面试题5

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/strivenoend/article/details/84780051

1.HTTPS的加密方式是什么,讲讲整个加密解密流程。

 加密方式:

1)、对称密码算法:指加密和解密使用相同的密钥,速度高,可加密内容较大,用来加密会话过程中的消息。典型算法DES、AES、RC5、IDEA(分组加密)RC4。

  2)、非对称密码算法:又称为公钥加密算法,是指加密和解密使用不同的密钥,加密速度较慢,但能提供更好的身份认证技术,用来加密对称加密的密钥(公开的密钥用于加密,私有的密钥用于解密)典型的算法RSA、DSA、DH。

   3)、散列算法:将文件内容通过此算法加密变成固定长度的值(散列值),这个过程可以使用密钥也可以不使用。这种散列变化是不可逆的,也就是说不能从散列值编程原文,因此散列变化通道常用语验证原文是否被篡改。典型的算法MD5、SHA、BASE64、CRC等。
注意:SSL协议在建立链路时,SSL首先对对称加密的密钥进行对公加密,链路建立好之后,SSL对传输内容使用对称加密。

2.Http和Https有什么区别。

Https在Http的基础上加入了SSL/TSL协议,SSL依靠证书来验证服务器的身份,并为服务器与浏览器之间的通信加密。

3.TCP/IP如何保证可靠性,说说TCP头的结构。

 (1)、三次握手。
      (2)、将数据截断为合理的长度。应用数据被分割成TCP认为最合适发送的数据块。
      (3)、超时重发。
      (4)、对于收到的请求,给予确认响应。
      (5)、校验出包有错,丢弃报文段,不响应。
      (6)、对失序数据进行重新排序,发送于客户端。
      (7)、能够丢弃重复数据。
      (8)、流量控制。TCP连接的两端都有缓存大小控制,接收端只允许发送端发送自己缓存剩余大小的数据。有效防止缓存溢出。
      (9)、拥塞控制。当网络阻塞时,减少数据的发送。

TCP头结构:
   (1)、源端口(source port)16位的字段,定义了发送这个报文段的主机中的应用程序的端口号。
   (2)、目的端口(destination port)16位的字段,定义了接收这个报文段的主机中的应用程序的端口号。
   (3)、序列号(sequence number)32位的字段,定义了指派给本报文段第一个数据字节的编号。为了保证连接性,要发送的每一个字节都要编上号。序号可以告诉终点,报文段中的第一个字节是这个序列中的哪一个字节。在建立连接是,双方使用各自的随机数生成器生产一个初始序号(inital squence number,ISN),通常两个方向上的ISN是不同的。
   (4)、确认号(acknowledgment nimber)32位字段定义了报文段的接收方期望从对方接收的字节编码。如果报文段的接收方成功地接收了对方发来的编号为x的字节,那么它就返回x+1作为确认号,确认可以和数据捎带在一起发送。
   (5)、头部长度(Hlen)(header length)这个4字节字段指出TCP段的头部长度,以32位字段来衡量,头部长度并不规定并可以根据选项字段中设置的参数面改变。
   (6)、保留(reserved)这个保留字段占用6位,它被保留以提供将来使用。
   (7)、URG 紧急数据(urgent data)---这是一条紧急信息。
   (8)、ACK 确认已收到段
   (9)、PSH 请求在缓冲区尚未填满时发送消息,注意TCP可以等待缓冲区填满之后再发送段,如果需要立即传送,应用程序必须利用push参数来通知协议。
   (10)、RST 申请重置连接。
   (11)、SYN 此消息用于在建立连接时同步传输数据的计时器。
   (12)、FIN 该属性申明发送端已经发送出被传输数据的最后一个字节。
   (13)、窗口大小(window)16位字段,这个字段定义的是发送TCP的窗口大小,以字节为单位。窗口最大长度是65535字节,这个值通常被称为接收窗口(rwnd),并由接收方来决定。这种情况下,发送方必须服从接收方的指示。
   (14)、校验和(checksum)16位字段包含的是检验和,检验和是差错控制的手段之一。
   (15)、紧急指针(urgent point)该字段占用2字节,与URG代码位一起使用并且申明及时使存在着缓冲区溢出也必须紧急接收的数据末端。因此,如果有些数据需要不按照顺序被送往目的应用程序,那么发送端的应用程序必须利用紧急数据参数通知TCP。
   (16)、选项(option)该字段为变长且可以忽略。他的最大长度为3字节,用于解决一些辅助任务----比如,选择最大段长。选项可以位于TCP头部的末端,其长度必须是8的倍数。
   (17)、填充(padding)该字段长度不固定,这是个用于补充头部字段使得它的长度为32位字的整数倍的一个伪字段9

 

猜你喜欢

转载自blog.csdn.net/strivenoend/article/details/84780051