后台开发面试整理之计算机网络

Q:三次握手和四次握手的状态变化


Q:udp和tcp的最大长度

udp中用2个字节来记录报文程度大小,即65535个字节(64k)。但是由于ipv4报文允许的报文长定为65535个字节,所以单片能发送的最大长度为65535-20(ip首部)-8(upd首部)=65507字节。在实际应用中,用UDP协议发送时,用sendto函数最大能发送数据的长度为:65535-20(ip首部)-8(upd首部)=65507字节。用sendto函数发送数据时,如果发送数据长度大于该值,则函数会返回错误。

同时ip数据包的单片最大长度由MTU(最大传输单元)决定,超过最大长度,ip层将自动进行分包。在局域网中,以太网MTU为1500字节,如果使用PPP协议则为1500-8(PPP包头包尾)=1492字节。Internet的标准MTU为576字节。

对于没有传输保障性的udp来说,报文分片可以意味这报文段的丢失。所以,我们在进行udp编程时,应该避免报文分段。在局域网的以太网中,尽量将报文控制在1500-20(ip首部)-8(udp首部)=1472字节。对于internet则是576-20(ip首部)-8(udp首部)=548字节。

tcp是面向字节流的传输协议,最大长度由MSS决定。MSS会在3次握手建立连接时进行协商。并在发送时自动分片,由tcp协议层保障数据可靠传输。


Q:采用三次握手的原因

避免服务器接受了早已失效的连接请求,从而一直等待客户端请求,造成资源的浪费。


Q:采用四次握手的原因

为了确保通信双方都能通知对方需要释放连接。双方都可以把需要发送的数据全部发送出去。


Q:四次握手中,time_wait存在的原因

1、为了确保最后一个连接释放报文能够到达服务器,是服务器能够正常释放连接。如果最后一个ack未能达到服务器时,服务器将重发FIN报文。

2、确保失效的连接请求等重复报文能在网络中消失。


Q:tcp保证可靠传输的方式

1、确认与重传

2、数据校验

3、合理分片,并在接收后对分进行重新排序

4、流量控制

5、拥塞控制


Q:慢开始与拥塞避免

慢开始:当主机开始发送数据时,拥塞窗口由小到大逐渐增大,一个开始设置一个最大报文段的数值,每经过一个传输轮次,拥塞窗口加倍。

拥塞避免:每经过一个传输轮次,拥塞窗口加1.

慢开始&拥塞避免算法:设置一个阈值thresh,当拥塞窗口cwnd<thesh时,执行慢开始,否则执行拥塞避免。当出现网络拥塞时,令thresh=cwnd/2,cwnd=1重新开始慢开始。


Q:快重传与快恢复

快重传:接收方每收到一个失序报文,就立即发出重复确认。当发送方接受到3个重复确认时,立即重传未收到的报文,而不是区等待计时器。

快恢复:当发送方连续收到3个重复确认时,就把thresh设置为cwnd/2,cwnd设置为thresh/2,之后执行拥塞避免算法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值