网络要分层及相关协议(转)

以下文章来源于CS指南 ,作者大白 这篇文章我会首先结合我们日常的软件系统开发介绍 「“为什么网络要分层”?」 ,随后我会介绍 「“OSI 7 层模型”」 以及 「“ TCP/IP 4层模型 ”」。我会详细介绍目前广泛使用的 「“ TCP/IP 4层模型 ”」 包括每一层做的事情以及相关的协议介绍。 01 为什么网络要分层? 说到分层,我们先从我们平时使用框架开发一个后台程序来说,我们往往会按照每一层做不同的事情的原则将系统分为 三层(复杂的系统分层可能会更多): Repository(数据库操作) Service(业务操作) Controller(前后端数据交互) 「复杂的系统需要分层,因为每一层都需要专注于一类事情。我们的网络分层的原因也是一样,每一层只专注于做一类事情。」 「为什么计算机网络要分层呢?」 ,我们再来较为系统的说一说: 「各层之间相互独立」:各层之间相互独立,各层之间不需要关心其他层是如何实现的,只需要知道自己如何调用下层提供好的功能就可以了(可以简单理解为接口调用)「。这个和我们对开发时系统进行分层是一个道理。」 「提高了整体灵活性」 :每一层都可以使用最适合的技术来实现,你只需要保证你提供的功能以及暴露的接口的规则没有改变就行了。「这个和我们平时开发系统的时候要求的高内聚、低耦合的原则也是可以对应上的。」 「大问题化小」 :分层可以将复杂的网络间题分解为许多比较小的、界线比较清晰简单的小问题来处理和解决。这样使得复杂的计算机网络系统变得易于设计,实现和标准化。 「这个和我们平时开发的时候,一般会将系统功能分解,然后将复杂的问题分解为容易理解的更小的问题是相对应的,这些较小的问题具有更好的边界(目标和接口)定义。」 说到计算机网络分层,我想到了计算机世界非常非常有名的一句话,这里分享一下: 「计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决,计算机整个体系从上到下都是按照严格的层次结构设计的。」 即:如果一层不够那就加两层吧! 「为了更好地去了解网络分层,我们先来看一个虽然失败,但是却提供了很多不错的理论基础的OSI七层模型。」 02 OSI七层模型 OSI七层模型的大体结构以及每一层提供的功能如下。「每一层都专注做一件事情,并且每一层都需要使用下一层提供的功能比如传输层需要使用网络层提供的路有和寻址功能,这样传输层才知道把数据传输到哪里去。」 OSI七层模型 「OSI的七层体系结构概念清楚,理论也很完整,但是它比较复杂而且不实用,而且有些功能在多个层中重复出现。」 上面这种图可能比较抽象,再来一个比较生动的图片。下面这个图片是我在国外的一个网站上看到的,非常赞! 在这里顺带提一下:「为什么最开始的时候一直被一些大公司甚至一些国家政府支持的OSI七层模型会失败呢?」 OSI的专家缺乏实际经验,他们在完成OSI标准时缺乏商业驱动力 OSI的协议实现起来过分复杂,而且运行效率很低 OSI制定标准的周期太长,因而使得按OSI标准生产的设备无法及时进入市场(20世纪90年代初期,虽然整套的OSI国际标准都已经制定出来,但基于TCP/IP的互联网已经抢先在全球相当大的范围成功运行了) OSI的层次划分不太合理,有些功能在多个层次中重复出现。 03 TCP/IP 4层模型 这是目前被广泛采用的一种模型,我们可以将 TCP / […]

计算机网络

(转:) 文章目录结构: 一 OSI与TCP/IP各层的结构与功能,都有哪些协议 – 运输层主要使用以下两种协议: UDP的主要特点: TCP的主要特点: – 域名系统(Domain Name System缩写DNS,Domain Name被译为域名) HTTP协议 – 五层协议的体系结构 1 应用层(application layer) 2 运输层(transport layer) 3 网络层(network layer) 4 数据链路层(data link layer) 5 物理层(physical layer) 二 TCP三次握手和四次挥手(面试常客) – 为什么要三次握手? 为什么要传回SYN(发起一个新链接)? 传了SYN,为啥还要传ACK(确认序号有效)? 为什么要四次挥手? 三 TCP、UDP协议的区别 四 TCP协议如何保证可靠传输 – 超时重传 停止等待协议 滑动窗口 流量控制 拥塞控制 五 在浏览器中输入url地址 ->> 显示主页的过程(面试常客) 六 状态码 […]

lWoHvYe 无悔,专一