计算机网络-网络模型


1. OSI 七层模型是什么?每一层的作用是什么?

OSI七层模型分别是:应用层(它是为计算机用户提供服务的最顶层)

表示层(数据处理比如说加密等操作)

会话层(管理、建立、重连应用程序之间的会话)

传输层(为两台主机之间的通信提供通用的数据传输服务)

网络层(路由选择和分组转发)

数据链路层(帧编码和误差纠正控制)

物理层(透明的传输比特)

2.TCP/IP与OSI的七层模型有什么异同?

首先TCP/IP只有四层,包括有:

  • 应用层:该层可以近似等于OSI模型中的应用层、表示层、会话层,它的功能是为用户程序提供信息交换的服务,定义了消息交换的格式,消息会交给下一层进行传输,常见的有SMTP、HTTP、FTP/SFTP等
  • 传输层:该层的功能与OSI模型中的传输层是一致的,其主要功能是为两台主机之间的通信提供通用的数据传输服务,包括保证数据传输的可靠性等
  • 网络层:该层的功能与OSI模型中的网络层是一致的,其主要功能是为分组的转发提供依据,可以总结为路由选择和分组转发

ARP协议是属于网络层的下层的

  • 网络接口层:该层的功能与OSI模型中是物理层和数据链路层的集合,其功能可以总结为加强物理层提供的比特透明传输,提供差错检查服务,使网络层感知到下层的物理信号传输是无差错的。

3. 为什么要做网络分层?

这是因为网络负责传输的功能,需要非常复杂的过程,既要保证数据能够顺利到达,又希望数据能够无查错的到达,想要一步登天,将各种逻辑塞到一层里是非常困难而且难以维护的。

复杂的系统需要分层,因为每一层都需要专注于一类事情和功能,网络分层的原因也是一样的

  • 各层之间相互独立,各层之间不需要关心其底层或者高层是如何实现的,只需要知道服务访问点的相关信息即可。
  • 提高了整体的灵活性,每一层都可以使用最合适的技术来进行实现,你只需要保证你提供的功能以及暴露的接口的规则没有改变就可以了,符合高内聚低耦合的原则
  • 复杂的问题可以化简,分层可以把复杂的网络通信问题拆分成一个个的小问题,自顶向下设计,细化各部分的职责,这些较小的问题的好的实现,最终可以导致系统的好的实现。

4. 讲讲TCP和UDP的区别

我认为这个问题可以分为这几个方面进行回答

  • 是否会建立连接:TCP为了保证可靠传输,会在双方进行通信之前进行连接的建立,而UDP并不保证数据的可靠传输,它十分简单,在数据发送完毕后传输即结束
  • 是否会是可靠的:TCP连接是可靠传输,同时还提供了拥塞控制机制,超时重传、确认机制、基于滑动窗口协议实现发送窗口和接收窗口等,因此TCP连接十分复杂,也十分可靠,它能够保证数据无差错,不丢失,不重复等
  • 是否有状态:TCP的传输是有状态的,由于滑动窗口是基于字节流的,因此在TCP传输的过程中,双方都是不断的维护这个窗口,这个窗口由三个指标进行确定,窗口中的第一个字节的序号,窗口中最后一个字节的序号,还没有发送出去的最后一个字节的序号,通过这三个序号就可以准确知道,当前哪些数据是没有发送的,哪些数据已经发送了,在接收窗口同理,也可以同时知道哪些数据是没有接收,哪些数据已经接收了

文章作者: 穿山甲
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 穿山甲 !
  目录