计算机网络基础(第一篇:概述)

0 写在前面

自从下定决心奔着Java后端开发这条道之后(众所周知,算法岗神仙打架的现象太严重!笔者还是打算不去趟这趟混水了),笔者费尽心思、想方设法混迹于各大技术论坛、社区,试图摸索出一套适合自己的Java后端技术路线,正所谓磨刀不误砍柴工,笔者坚信做任何一件事情之前,首先必须做好充分的调研工作。我们知道学技术没有捷径可走,但至少少走一些弯路!不总结不要紧,由于笔者非科班出身,发现自己欠缺太多太多基础知识,没办法呀,只好慢慢补呗,自己选择的路跪着也要走下去~~好了,言归正传,接下来咱们开始补课!

关于计算机网络基础,在确定教材之前笔者也去调研了一下,想要跟大家推荐下面这一本经典中的经典:《计算机网络:自顶向下方法》。刚开始看可能觉得语言稍微有一些晦涩,不过不要紧,多读几遍自然就理解了,俗话说书读百遍其意自现!倘若读起来真的很吃力,笔者也建议先去读一些相关的技术博客,对计算机网络有一个大致的了解之后再仔细研读,我相信会有不一样的收获。
在这里插入图片描述

1 什么是因特网,网络的网络?

因特网是一个世界范围的计算机网络,它互联了遍及全世界数十亿计算设备,用因特网术语来讲,我们把这些个计算设备成为主机(host)或端系统(end system)。在因特网中,每个端系统具有一个称为IP地址的地址。网络把主机连接起来,而互连网(internet)是把多种不同的网络连接起来,因此互连网是网络的网络。而互联网(Internet)是全球范围的互连网。
在这里插入图片描述

2 ISP

互联网服务提供商 ISP 可以从互联网管理机构获得许多 IP 地址,同时拥有通信线路以及路由器等联网设备,个人或机构向 ISP 缴纳一定的费用就可以接入互联网。在这里插入图片描述
目前的互联网是一种多层次 ISP 结构,ISP 根据覆盖面积的大小分为第一层 ISP、区域 ISP 和接入 ISP。互联网交换点 IXP 允许两个 ISP 直接相连而不用经过第三个 ISP。在这里插入图片描述

3 计算机网络的体系结构

为了给网络协议的涉及提供一个结构,网络设计者以分层的方式组织协议以及实现这些协议的网络硬件和软件。每个协议属于这些层次之一,各层所有的协议被称为协议栈(protocol stack)。
在这里插入图片描述

3.1 因特网协议栈

因特网的协议栈由5个层次组成,即上图中的五层协议:应用层、运输层、网络层、链路层和物理层(自顶向下说的就是这个意思)。

  • 应用层:是网络应用程序以及它们的应用层协议存留的地方。因特网的应用层包括许多协议,例如HTTP(它提供了Web文档的请求和传送)、SMTP(提供电子邮件保温的传输)、和FTP(提供两个端系统之间的文件传输)。另外就是,我们平时使用的像www.csdn.com这样友好的端系统名字(域名),在网络中它其实有另外的存在形式,即32bit的IP地址,而提供域名到IP地址转换功能的一个特定的应用层协议叫做域名系统(DNS)。应用层协议分布在多个端系统上,一个端系统中的应用程序使用协议于另一个端系统中的程序交换信息分组,我们把这种位于应用层的信息分组成为报文(message)。
  • 运输层:因特网中,有两种运输协议,即大名鼎鼎的TCPUDP两位老大哥,利用其中的任何一个都能运输应用层报文。我们把运输层的分组成文报文段(segment)。
  • 网络层:因特网的网络层负责将称为数据报(datagram)的网络层分组从一台主机传输到另一台主机。因特网的网络层包括著名的网际协议IP,该协议定义了在数据报中的各个字段以及端系统和路由器如何作用于这些字段。IP仅有一一个,所有具有网络层的因特网组件必须运行IP。网络层还包括决定路由的路由选择协议。但通常我们把网络层简单的成为IP层。
  • 链路层:网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供数据传输服务。。链路层的例子包括以太网WiFi电缆接入网的DOCSIS协议。网络层下传给链路层的一个数据报可能被沿途不同链路上的不同链路层协议处理。数据链路层把网络层传下来的分组封装成(frame)
  • 物理层:考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。

3.2 OSI(开放系统互连)模型

至此,我们对因特网协议栈有了大致的了解,不过需要注意的是,它并不是唯一的协议栈。20世纪70年代后期,国际标准化组织ISO提出计算机网络围绕7层来组织,被称为开放系统互连模型,即OSI。
相比因特网协议栈,OSI模型中附加了两个层,分别是:

  • 表示层:使通信的应用程序能够解释交换数据的含义。这些服务包括数据压缩和数据加密(它们是自解释的)以及数据描述(这使得应用程序不必担心在各台计算机中表示/存储的内部格式不同的问题)。
  • 会话层:建立及管理会话。提供了数据交换的定界和同步功能,包括了建立检查点和恢复方案的方法。

因特网协议栈不包含这两层,他们认为这应该留给应用程序开发者处理。
实际上数据向下传输的过程,就是添加下层协议所需要的首部或者尾部的过程,相反,而向上层协议传输的过程就是不断拆开首部和尾部的过程。

4 四种延时类型

节点总时延 = 处理时延 + 排队时延 + 传输时延 + 传播时延

  • 处理时延:主机或路由器收到分组时进行处理所需要的时间,例如分析首部、从分组中提取数据、进行差错检验或查找适当的路由等。
  • 排队时延:分组在路由器的输入队列和输出队列中排队等待的时间,取决于网络当前的通信量。一个特定分组的排队时延长度取决于先期到达的正在排队等待向链路传输的分组数量。
  • 传输时延:主机或路由器传输数据帧所需要的时间。换句话说,传输时延是路由器推出分组所需要的时间。
  • 传播时延:电磁波在信道中传播所需要花费的时间,电磁波传播的速度接近光速。

5 电路交换与分组交换

  • 电路交换:电路交换用于电话通信系统,两个用户要通信之前需要建立一条专用的物理链路,并且在整个通信过程中始终占用该链路。由于通信的过程中不可能一直在使用传输线路,因此电路交换对线路的利用率很低,往往不到 10%。
  • 分组交换:每个分组都有首部和尾部,包含了源地址和目的地址等控制信息,在同一个传输线路上同时传输多个分组互相不会影响,因此在同一条传输线路上允许同时传输多个分组,也就是说分组交换不需要占用传输线路。

笔者水平有限,若有表述不对的地方,请各位包含并留言批评指正,感谢!

Ref:
1.《计算机网络:自顶向下方法》
2. https://github.com/CyC2018/

发布了21 篇原创文章 · 获赞 0 · 访问量 532

猜你喜欢

转载自blog.csdn.net/CiaoTigre/article/details/104712858
今日推荐