计算机网络部分面试题

从输入网址到显示网页,过程 ?

客户端发起请求 -> DNS域名解析 –> 发起TCP的三次握手 –> 建立TCP连接后发起http请求 –> 服务器响应http请求,浏览器得到html代码 –> 浏览器解析html代码,并请求html代码中的资源(如JavaScript、css、图片等) –> 浏览器对页面进行渲染呈现给用户。

详细了解:在浏览器中输入www.baidu.com后执行的全部过程


TCP与UDP的区别?

①TCP协议是有连接的,有连接的意思是开始传输实际数据之前TCP的客户端和服务器端必须通过三次握手建立连接,会话结束之后通过四次挥手结束连接。而UDP是无连接的
②TCP协议保证数据按序发送,按序到达,提供超时重传来保证可靠性,但是UDP不保证按序到达,甚至不保证到达,只是努力交付,即便是按序发送的序列,也不保证按序送到。
③TCP有流量控制和拥塞控制,而UDP没有,所以UDP及时网络拥堵客户端的发送速率也不会有影响
④TCP协议所需资源多,TCP首部需20个字节(不算可选项),UDP首部字段只需8个字节。
⑤TCP只支持一对一通信,而UDP支持一对一,一对多,多对多通信
⑥TCP是面向字节流,可靠的服务,UDP是面向报文,不可靠的服务
⑦TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般


TCP三次握手

第一次握手:建立连接时,客户端发送SYN包(SYN=1)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

详细了解: TCP/IP 三次握手和四次挥手


TCP四次挥手

第一次挥手:Client发送一个FIN=1的TCP报文段到Server,表示自己没有数据要发送了,想断开连接。

第二次挥手:Server收到上面的报文段后,发送ACK确认已收到。若Server还有需要发送的数据,继续发送完毕。

第三次挥手:当Server也没有要继续发送的数据了,发送一个FIN=1的TCP报文段到Client,表示自己没有数据要发送了,将断开连接,并且断开Server到Client的连接,释放相应的资源。

第四次挥手:Client收到Server的FIN=1的TCP报文段,发送ACK确认消息已经收到。Client做完5中的事情后,等待2MSL,没啥音信了,就认为对面已经正确关闭了,自己也断开了到Server的TCP连接。

详细了解: TCP/IP 三次握手和四次挥手


TCP四次分手中,主动关闭方最后为什么要等待2MSL(Maximum Segment Lifetime)之后才关闭连接?

一、保证TCP协议的全双工连接能够可靠关闭
二、保证这次连接的重复数据段从网络中消失
先说第一点,如果Client直接CLOSED了,那么由于IP协议的不可靠性或者是其它网络原因,导致Server没有收到Client最后回复的ACK。那么Server就会在超时之后继续发送FIN,此时由于Client已经CLOSED了,就找不到与重发的FIN对应的连接,最后Server就会收到RST而不是ACK,Server就会以为是连接错误把问题报告给高层。这样的情况虽然不会造成数据丢失,但是却导致TCP协议不符合可靠连接的要求。所以,Client不是直接进入CLOSED,而是要保持TIME_WAIT,当再次收到FIN的时候,能够保证对方收到ACK,最后正确的关闭连接。
再说第二点,如果Client直接CLOSED,然后又再向Server发起一个新连接,我们不能保证这个新连接与刚关闭的连接的端口号是不同的。也就是说有可能新连接和老连接的端口号是相同的。一般来说不会发生什么问题,但是还是有特殊情况出现:假设新连接和已经关闭的老连接端口号是一样的,如果前一次连接的某些数据仍然滞留在网络中,这些延迟数据在建立新连接之后才到达Server,由于新连接和老连接的端口号是一样的,又因为TCP协议判断不同连接的依据是socket pair,于是,TCP协议就认为那个延迟的数据是属于新连接的,这样就和真正的新连接的数据包发生混淆了。所以TCP连接还要在TIME_WAIT状态等待2倍MSL,这样可以保证本次连接的所有数据都从网络中消失。


试简单说明下列协议的作用:IP、ARP、RARP和ICMP。

IP协议:实现网络互连。使参与互连的性能各异的网络从用户看起来好像是一个统一的网络。

ARP协议:完成IP地址到MAC地址的映射。

RARP:使只知道自己硬件地址的主机能够知道其IP地址。

ICMP:允许主机或路由器报告差错情况和提供有关异常情况的报告。从而提高IP数据报交付成功的机会。
这里写图片描述
详细信息:ARP地址协议


Http报文的格式

一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成

1.请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。
2.请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息。
3.最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。
4.请求数据不在GET方法中使用,而是在POST方法中使用。

HTTP响应也由三个部分组成,分别是:状态行、消息报头、响应正文。

详细信息:HTTP HTTPS 协议


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值