网络知识常见问题
小刀网络 2023-08-04 08:54:30 0

1. 甚么是tcp/ip协议?

Tcp/ip协议是一个协议簇,是一系列协议的总称,其中最核心的就是ip协议和tcp协议,tcp/ip协议包括:ip、tcp、icmp(internet控制报文协议)、udp(用户数据报协议)、arp等,他们共同构成了一个复杂但是有层次的协议栈。Tcp/ip一共有四层,从上到下分别为:利用层、传输层、网络层、链接层。

IP协议:Internet Protocol的缩写,主要用于解决寻址和路由问题

Tcp协议:“Transmission Control P ro to co l”是传输协议,它位于IP协议之上,基于IP协议提供可靠的、字节流情势的通讯。


2. TCP协议和UDP协议的区分?

TCP协议是有连接状态的,udp是无连接状态的

Tcp传输的数据是以字节流的情势,udp是报文信息的情势

Tcp传递的信息是更安全,更有保证的,但是udp是尽可能去送到

TCP传递的数据是有序性的,udp是无序的

Tcp是更消耗资源的


3. TCP的三次握手,为何需要三次握手

在tcp/ip协议中,tcp协议提供了可靠的连接服务,采取三次握手建立一次连接

TCP的第一次握手:建立连接时,客户端向服务器端发送SYN包(syn=1),进入syn_send状态,等待服务器确认。(syn=1,seq=x)

TCP的第二次握手:服务端收到SYN包,一定要确认客户的syn包,同时自己也发送一个syn+ack给客户端,此时服务器进入syn_recv状态。(syn=1,ACK=1,seq=y,ack=k+1)

TCP的第三次握手:客户端收到服务器真个syn+ack包,向服务器发送确认包ack,此包发送终了,客户包和服务器端进入established状态,三次握手完成。(ack=1,seq=x+1,ack=y+1)

Tcp flags:

Urg:紧急指针标志,为0表示无效,1表示有效

ACK:确认序号标志,为1表示确认号有效,为0表示报文中不含确认号信息,疏忽

PSH:push标志,收到后尽快交给利用层序

RST:重置连接标志,

SYN:同步确认号,用于建立连接进程,如果syn=1,ack=0用户表示没有使用捎带的确认域,(syn=1,ack=1,表示捎带确认)

FIN:finish标志,用于释放连接

为何三次握手:如果第一次握手后,


4. TCP的滑动窗口作用

保证tcp的可靠性

保证tcp的流控特性

5. Tcp的四次挥手

四次挥手的目的时为了关闭连接

第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,客户端进入FIN_WAIT_1状态

第二次挥手:Server收到Client的FIN后,发送一个ack给client,确认需要为收到序号+1,server进入close_wait状态

第三次挥手:server发送一个FIN给client,用来关闭server到client的数据传送,server进入last_ack状态

第四次挥手:client收到server的FIN后,client进入time_wait状态,接着发送一个ack给server,确认序号为收到序号+1,server进入close状态,完成四次挥手。


6. HTTP和HTTPS的区分

http由:http+tcp+ip+mac

https:http+ssl+tcp+ip+mac

简单来讲:https是在http之上多了一个ssl协议

1) HTTPS需要到CA申请证书,HTTP不需要

2) HTTPS密闻传输,HTTP明文传输

3) 连接方式区别,HTTPS默许使用的是443端口,HTTP使用的是80端口

4) HTTPS=HTTP+加密+认证+完全性保护,较HTTP更安全

ssl:Security Sockets Layer,安全套接层,他是为网络通讯提供安全、数据完全性的一种安全协议;它是操作系统对外的API,SSL3.0后更名为TLS;它采取身份验证和数据加密保证网络通讯的安全和数据的完全性。

加密的方式:对称加密、非对称加密、哈希算法、数据签名

https的加密方式是配合证书+各种加密的组合方式


https确切的说不是一种协议,而是HTTP+SSL(TSL)的结合体。HTTP报文经过ssl(安全套接层)加密后交付给TCP层进行传输。SSL主要采取的是RSA(非对称加密)和AES(对称加密)结合的加密方式,先通过RSE加密AES的密钥,然后通过AES进行报文加密和解密。


使用数字证书签发机构颁发的证书来保证非对称加密进程本身的安全。


7. HTTP的主要特点

HTTP超文本传输协议

支持客户/服务器端模式、简单快速 、灵活、无连接、无状态

http要求结构:要求报文(要求行(url地址+协议+要求方法)+要求头信息)+要求正文

http响应结构:http响应报文(状态行(协议版本+状态码+状态描写)+响应头部)+响应正文


8. 在浏览器地址键入url,按下回车以后经历了哪些流程

1) DNS域名解析

2) TCP连接

3) 发送http要求

4) 服务器处理要求并返回http报文

5) 浏览器解析渲染页面

6) 连接结束


9. HTTP状态码

1)1XXX:唆使信息—表示要求已接收,继续处理

2)2XXX:成功—表示要求已被成功接收,理解、接受

3)3XXX:重定向—要完成要求一定要进行更进一步的操作

4)4XXX:客户端毛病,—要求有语法毛病或要求没法实现

5)5XXX:服务器端毛病,—服务器未能实现合法的要求

200 ok:正常返回信息

400 Bad Request:客户端要求有语法毛病,不能被服务器所理解

401 Unauthoried:要求未经过授权的,这个状态码一定要和www-authenticate报头域一起使用

403 Forbidden:服务器收到但是谢绝提供服务

404 Not Found:要求资源不存在,eg:输入的url地址毛病

500 Internal Server Error:服务器产生了不可预期的毛病

503 Server Unavailable:服务器当前不能处理客户端要求,一段时间可能会恢复


10. Get要求和POSt的要求区分

http报文层层面:get是放到URL里面的,post是放到报文体中的,较安全性post更安全一点

数据库层面:GET符合幂等性和安全性的,POST是不符合的,ge只能对进行查询,post可以进行增删改查

其他方面:GET可以被缓存、被存储,而POST不行


11. Cookie和Session的区分

cookie时服务器拜托浏览器存储一些数据,时存储在客户真个,session是存储在服务器真个

session相对cookie更加安全

斟酌到服务器负担,应当使用cookie

cookie最基本的用处时身份辨认,实现状态的会话事务

12. 甚么是重定向

重定向是服务器发起的跳转,要求客户端改用新的url重新发起要求,通常会自动进行,客户无感知

使用重定向时需要当心性能消耗,还要避免出现循环跳转

常见的重定向状态码是301和302,分别是“永久重定向”和“临时重定向”


13.为何要进行三次握手,一次行不行,二次行不行?

不行,只有经过三次握手,通讯双方(客户端和服务器)才能确认自己和对方具有接收信息和发送信息的能力。

第一次握手:客户端发送消息给服务器端,服务器端接收到信息后,能确认自己有接收信息的能力,客户端有发送信息的能力;

第二次握手:服务器端发送信息给客户端,客户端接收到信息后,能确认客户端有发送信息和接收信息的能,服务器端有发送信息和接收信息的能力;

第三次握手:客户端发送信息给服务器端,服务器端接收到信息后,服务器端能确认客户端有发送信息和接收信息能力。


#####14.为何要进行四次挥手,为何是四次?


由于tcp是全双工通讯的

1)第一次挥手

因此当主动方发送断开连接的要求(即FIN报文)给被动方时,仅仅代表主动方不会再发送要求给被动方,但是主动方仍旧可以接收数据报文。

2)第二次挥手

被动方此时有可能还有相应的数据报文需要发送,因此需要先发送ack报文给,告知主动方“我知道你想断开连接的要求了”。主要主动方变不回由于没有收到应对而继续发送断开的连接的要求了。

3)第三次挥手

被动方在处理完数据报文后,便发送给主动方FIN报文,这样可以保证数据通讯正常可靠完成。发送完FIN报文后,被动方进入LAST_ACK阶段(超时等待)。

4)第四次挥手

主动方发送ack报文进行连接中断的确认,这是被动方就直接释放连接,进入可用状态。


标签: 报文协议
相关信息推荐