最常考察的面试的网络问题


1.计算机网络体系结构

 

1.OSI七层模型:

--7应用层6表示层5会话层4运输层3网络层2数据链路层1物理层

2.TCP/IP四层模型:

--4应用层3运输层2网际层1网络接口层

3.五层协议模型:

--5应用层4运输层3网络层2数据链路层2物理层

2.TCP/UDP特点

1. UDP(用户数据报协议):

--无连接,尽最大可能交付,吴拥塞控制,面向报文

2. TCP(传输控制协议):

--面向连接,提供可靠交付,流量控制,拥塞控制,提供全双工控制,面向字节流.

3.TCP的三次握手(请求数据过程)

 

客户端->服务端:SYN(同步),ACK(确认),1为是,0为否,seq(自己的序号)

服务端->客户端:SYN=1,ACK=1,seq=y(自己的序号),ack=x+1

客户端->服务端:ACK=1,seq=x+1,ack=y+1

服务端收到客户端的确认后,连接确立,开始数据传输

 

第三次握手是为了防止失效的连接请求到达服务器,让服务器错误打开连接。失效的连接请求是指,客户端发送的连接请求在网络中滞留,客户端因为没及时收到服务器端发送的连接确认,因此就重新发送了连接请求。滞留的连接请求并不是丢失,之后还是会到达服务器。如果不进行第三次握手,那么服务器会误认为客户端重新请求连接,然后打开了连接。但是并不是客户端真正打开这个连接,因此客户端不会给服务器发送数据,这个连接就白白浪费了。

4TCP四次挥手(传输数据过程)

 

 

客户端->服务端:FIN=1(表示发送连接释放报文段) FIN=1,seq=u

服务端->客户端:此时TCP处于半关闭状态,服务端可以给客户端发送数据,但客户端不能给服务端发数据ACK=1,seq=v,ack=u+1(发送数据);FIN=1,ACK=1,seq=w,ack=u+1(B不需要连接时发送);

客户端->服务端:a收到后(FIN=1,ACK=1,seq=w,ack=u+1),进入TIME_WAIT状态,等待2MSL时间后释放连接 ACK=1,seq=u+1,ack=w+1;B收到A的确认后释放连接

 

3. HTTP协议(长连接,短连接,cookies,sessions)

短连接:HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重新建立一个HTTP会话。

而从HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头加入这行代码:Connection:keep-alive

短连接连接步骤,优缺点及使用场景:建立连接——数据传输——关闭连接...建立连接——数据传输——关闭连接||||优点:服务器来说管理较为简单,使服务端的压力没那么大.缺点:较多的tcp建立和关闭操作,请求时间长,用户体验差||||场景:连接数多,用户操作不频繁,例如web网站中的http请求

 

长连接:在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接需要客户端和服务端都支持长连接。

HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。

长连接步骤,优缺点及使用场景:建立连接——数据传输...(保持连接)...数据传输——关闭连接||||优点:长连接可以省去较多的TCP建立和关闭的操作,减少浪费,节约时间。缺点:给服务端造成过大的压力||||场景:对于频繁请求资源的客户来说,较适用长连接

4.cookiessession区别与联系

--Cookies是存放在客户端,session是存放在服务器端的

--Cookies是属于Session对象的一种。但有不同,Cookies不会占服务器资源,是存在客服端内存或者一个cookie的文本文件中;而“Session”则会占用服务器资源。所以,尽量不要使用Session,而使用Cookies。Cookies不一定安全

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页