计算机网络面试问题-运输层

运输层(重点)

网页地址栏中输入域名后发生什么?

  1. 用户PC中的客户端进程会发送一个DNS查询请求报文,其内容为:域名www.porttest.com所对应的IP地址是什么?
  2. DNS查询请求报文需要使用运输层的UDP协议封装成运输层用户数据报,UDP首部源端口号从短暂端口号中挑一个未被占用的(pick 49152),用来表示DNS客户端进程,目的端口号设置为53
  3. 将UDP用户数据报封装在IP数据报中,通过以太网发送给DNS服务器
  4. DNS服务器端收到该数据报后,从中解封出UDP用户数据报,DNS服务器端进程解析DNS查询请求报文的内容,然后按其要求查找对应的IP地址,之后,会给用户PC发送DNS响应报文,其内容为:域名www.porttest.com所对应的IP地址是192.168.0.3,DNS响应报文需要使用运输层的UDP协议,封装成UDP用户数据报,源端口号设置为53,目的端口号为49152,之后将UDP用户数据报封装在IP数据报中,通过以太网发送给用户PC
  5. 用户PC收到该用户数据报后,从中解封出UDP用户数据报
  6. 将UDP用户数据报的数据载荷部分,即DNS响应报文,交付给用户PC中的DNS客户端进程,DNS客户端进程解析DNS响应报文的内容,就可知道自己之前所请求的web服务器的域名所对应的IP地址为192.168.0.3
  7. 用户PC中的HTTP客户端进程向Web服务器发送HTTP请求报文,内容为:首页内容是什么?
  8. HTTP请求报文需要使用运输层的TCP协议封装成TCP报文段,首都中源端口:pick 49152,目的端口:80,之后将TCP报文段封装在IP数据报中,通过以太网发送给Web服务器
  9. Web服务器收到该数据报后,从中解析出TCP报文段,目的端口号80表明将TCP报文段的数据载荷部分(即HTTP请求报文)交付给本服务器中的HTTP服务器端进程。HTTP服务器端进程解析HTTP请求报文的内容,然后按其要求查找首页内容,之后会给用户PC发送HTTP响应报文,其内容为:HTTP客户端所请求的首页内容,HTTP响应报文需要使用运输层的TCP协议封装成TCP报文段,其首部中源端口号:80,目的端口号:49152,之后将TCP报文段封装在IP数据报中,通过以太网发送给用户PC
  10. 用户PC收到该数据报后,从中解封出TCP报文段,49152表明应将TCP报文段的数据载荷部分(即HTTP响应报文)交付给用户PC中的HTTP客户端进程
  11. HTTP客户端进程解析HTTP响应报文的内容,并在网页浏览器中进行显示
  12. done!网页浏览器中可看到Web服务器所提供的的首页内容啦

在这里插入图片描述

TCP与UDP的区别?

在这里插入图片描述

TCP流量控制?

在这里插入图片描述

TCP拥塞控制?

  • 定义:在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫做拥塞(想成堵车)
     

  • 四种拥塞控制算法:
    在这里插入图片描述

  1. 慢开始-倍增
    每个传输轮次结束后,拥塞窗口值按指数规律增大
    慢开始指一开始向网络注入的报文段少,而不是指拥塞窗口值增长速度慢

  2. 拥塞避免-递增
    每个传输轮次结束后,拥塞窗口值 +1
    在这里插入图片描述

  3. 快重传
    目的:采用快重传算法,可以让发送方尽早知道发生了个别报文段的丢失
    概念:所谓快重传,就是使发送方尽快进行重传,而不是等超时重传计时器超时再重传
    策略:发送方一旦收到3个连续的重复确认,就将相应的报文段立即重传,而不是等该报文段的充实重传计时器

  4. 快恢复
    策略:发送方一旦收到3个重复确认,就知道现在只是丢失了个别的报文段。于是不启动慢开始算法,而执行快恢复算法
    发送方将慢开始门限值和拥塞窗口值调整为当前窗口的一半;开始执行拥塞避免算法
    也有的快恢复实现是把快恢复开始时的拥塞窗口值再增大一些,即等于 新的慢开始门限值+3
    加入快重传和快恢复

TCP可靠传输的实现?

TCP基于以字节为单位的滑动窗口来实现可靠传输

具体实现可以类比数据链路层的选择重传协议

注意:接收方发送的ACK字段的值是 我想要收到的下一个序号
 

TCP的三次握手?!!!

在这里插入图片描述
在这里插入图片描述

  • 三报文而不是两报文?
    为了防止已失效的连接请求报文段突然又传送到了TCP服务器,因而导致错误

TCP的四次挥手?

在这里插入图片描述

在这里插入图片描述

TCP报文段首部格式?

在这里插入图片描述

  1. 源端口号:16比特,用来表示发送该TCP报文段的应用进程
  2. 目的端口号:16比特,用来表示接收该TCP报文段的应用进程
  3. 序号:32比特,本TCP报文段数据载荷的第一个字节的序号
  4. 确认号:32比特,期望收到的下一个TCP报文段的数据载荷和第一个字节的序号,同时也是对之前收到的所有数据的确认
  5. 数据偏移:以四字节为单位,指出TCP报文段的数据载荷部分的起始处距离TCP报文段的起始处有多远
  6. 窗口:发送本报文段的一方的接收窗口(用于流量控制)
  7. 校验和:检查是否出现误码
  8. 同步标志位SYN:TCP连接建立时用来同步序号
    终止标志位FIN:用来释放TCP连接
    复位标志位RST:用来复位TCP连接(TCP连接出现异常)
    推送标志位PSH:尽快上交应用进程
    紧急标志位URG:==1紧急指针字段有效,==0紧急指针字段无效
  9. 紧急指针:字节为单位,指明紧急数据的长度
  10. 填充:确保报文段首部能被4整除
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值