计算机网络面试常考知识点复习

一、计算机网络的概念

计算机网络就是一些互联的、自治的计算机系统的集合。

功能:数据通信、资源共享、分布式处理、提高可靠性、负载均衡。

二、OSI七层模型、TCP/IP模型、五层模型

OSI七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

TCP/IP:网络接口层、网际层、传输层、应用层

五层模型(*):物理层、数据链路层、网络层、传输层、应用层。

各个层的功能

物理层:物理层的传输单位是比特,任务是透明的传输比特流,功能是在物理媒体上为数据端设备透明地传输原始比特流。

数据链路层:传输单位是帧。任务是将网络层传来的IP数据报组装成帧。功能为成帧、差错控制、流量控制和传输管理等。

网络层:传输单位是数据报,关键问题是对分组(协议数据单元)进行路由选择,实现流量控制、拥塞控制和网际互联等。

传输层(运输层):传输单位是报文段(TCP)或者用户数据段(UDP),传输层负责主机中两个进程之间的通信,功能是为端到端连接提供可靠的传输服务,为端到端提供流量控制、差错控制、服务质量、数据传输管理等功能。

应用层:采用不同的应用协议来解决不同类型的应用要求。典型协议有文件传送FTP,电子邮件的SMTP,万维网的HTTP。


三、传输层(*)

1.TCP和UDP的区别

(1)TCP面向连接;UDP是无连接的,即发送数据之前不需要建立连接;

(2)TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付;TCP通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。

(3)UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。

(4)每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信

(5)TCP对系统资源要求较多,UDP对系统资源要求较少。

2.TCP可靠传输(序号+确认+重传)

(1)序号:TCP首部的序号字段用来保证数据能有序提交给应用层,TCP连接发送的每个字节都编上一个序号。

(2)确认:TCP首部的确认号是期望收到对方的下一个报文段的数据的第一个字节的序号。

(3)重传:

         超时重传:TCP每发送一个报文段,就对报文段设置一次计时器。计时器设置的重传时间到期但还未收到确认时,就要重传。

         冗余ACK:冗余ACK是再次确认某个报文段的ACK,而发送方先前已经收到过该报文段的确认。(连续三次就重传)。

3.TCP流量控制

        如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。
        利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。
        设A向B发送数据。在连接建立时,B告诉了A:“我的接收窗口是rwnd = 400”(这里的rwnd表示receiver window)。因此,发送方的发送窗口不能超过接收方给出的接收窗口的数值。

        TCP为每一个连接设有一个持续计时器。只要TCP连接的一方收到对方的零窗口通知就启动持续计时器。若持续计时器设置的时间到期,就发送一个零窗口探测报文段(携有1字节的数据),那么收到这个报文段的一方就重新设置持续计时器。

4.TCP拥塞控制

(1)慢开始和拥塞避免(发送方检测到超时)

慢开始:拥塞窗口cwnd初试为1,每经过一个传输轮次(往返时延RTT),拥塞窗口cwnd加倍(指数增长),当到达一个规定的慢开始门限ssthresh,然后改用拥塞避免算法。

拥塞避免:发送端的拥塞窗口cwnd每经过一个往返时延RTT就增加一个MSS(最大报文段长度)大小,使cwnd线性缓慢增长。当出现一次超时(网络拥塞)时,令慢开始门限ssthresh等于当前cwnd的一半。

处理过程:无论是慢开始还是拥塞避免阶段,只要发送方检测到超时事件的发生,就要把慢开始门限设置为出现拥塞的cwnd的一半。然后把cwnd设为1,执行慢开始。这样做的目的是迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完。

(2)快重传和快恢复(收到冗余ACK)

快重传:当发送方连续收到三个冗余ACK(重复确认)时,直接重传对方尚未收到的报文段,而不必等待那个报文段设置的重传计时器超时。

快恢复:发送端收到三个冗余ACK时,执行“乘法减少”算法,把慢开始门限设置为出现拥塞时发送方cwnd的一半。同时把cwnd(开始值)也设置为这个值。然后开始执行拥塞避免算法,使拥塞窗口线性增大。

5.TCP三次握手、四次挥手

(1)客户机的TCP首先向服务器TCP发送一个连接请求报文段。SYN=1

(2)服务器TCP收到连接请求报文段后,如同意建立连接,就像客户机发回确认,并为该TCP连接分配TCP缓存和变量。ACK=SYN=1

(3)客户机收到确认报文段后,还要向服务器给出确认,并为该连接分配缓存和变量。ACK=1

注意(*):服务器资源是在第二次握手时分配的,客户端资源是在第三次握手分配的,所以服务器易受SYN洪范攻击

为什么要三次握手?第一次握手,客户端发了个连接请求消息到服务端,服务端收到信息后知道自己与客户端是可以连接成功的,但此时客户端并不知道服务端是否已经接收到了它的请求,所以服务端接收到消息后的应答,客户端得到服务端的反馈后,才确定自己与服务端是可以连接上的,这就是第二次握手。为什么需要第三次握手呢?第三次握手是为了防止已经失效的连接请求报文段突然又传到服务端,因而产生错误。譬如发起请求遇到类似这样的情况:客户端发出去的第一个连接请求由于某些原因在网络节点中滞留了导致延迟,直到连接释放的某个时间点才到达服务端,这是一个早已失效的报文,但是此时服务端仍然认为这是客户端的建立连接请求第一次握手,于是服务端回应了客户端,第二次握手。如果只有两次握手,那么到这里,连接就建立了,但是此时客户端并没有任何数据要发送,而服务端还在傻傻的等候佳音,造成很大的资源浪费。所以需要第三次握手,只有客户端再次回应一下,就可以避免这种情况。

6.套接字

套接字唯一地标识网络中的一台主机和其上的一个应用(进程)。

套接字=(主机IP地址,端口号)

四、网络层

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值