zoukankan      html  css  js  c++  java
  • 计算机网络基础 之一:概述

    前言

    本来这段时间是打算好好写写 SpringMVC 的源码分析的,但是上来阅读相关的参考资料的时候产生了回顾网络基础的想法,因此有了这个专栏。首推书籍,当然是《计算机网络》(谢希仁 编著),我读的是第七版,本专栏也将大量引用谢老师的文字,就不一一注明了。这个专栏计划是仔细写写计算机网络的体系结构,因此我着重会从此书的前六章去切入,后面几章的知识在我看来要用的时候去查阅就行了。

    你此刻所读到的文字,就来源于网络,大多数人并不了解这与写个纸条给别人有什么区别,里面蕴含了多少令人头痛又着迷的知识,就结果而言,使用者对网络的感觉是正确的。计算机网络体系结构的层层封装,向上支持,向下透明,使得每个人都无须去关注细节问题,而对于渴望深入了解它们的人而言,深究下去,可以看到这纸条源头的大树,根系是多么发达,由根部一层一层向上的结构,使得计算机网络拥有着如何的生机。

    分层

    计算机网络是个非常复杂的系统。为了说明这一点,可以设想一种最简单的情况:连接在网络上的两台计算机要互相传送文件。显然,在这两台计算机之间必须有一条传送数据的通路。但这还远远不够。至少还有以下几项工作需要去完成:

    1. 发起通信的计算机必须将数据通信的通路进行激活(activate)。所谓“激活”就是要发出一些信令,保证要传送的计算机数据能在这条通路上正确发送和接收。
    2. 要告诉网络如何识别接收数据的计算机。
    3. 发起通信的计算机必须查明对方计算机是否己开机,并且与网络连接正常。
    4. 发起通信的计算机中的应用程序必须弄清楚,在对方计算机中的文件管理程序是否已做好接收文件和存储文件的准备工作。
    5. 若计算机的文件格式不兼容,则至少其中一台计算机应完成格式转换功能。
    6. 对出现的各种差错和意外事故,如数据传送错误、重复或丢失,网络中某个结点交换机出现故障等,应当有可靠的措施保证对方计算机最终能够收到正确的文件。

    还可以列举出一些要做的其他工作。由此可见,相互通信的两个计算机系统必须高度协调工作才行,而这种“协调”是相当复杂的。为了设计这样复杂的计算机网络,早在最初的ARPANET设计时即提出了分层的方法。“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。

    具有五层协议的体系结构

    这里写图片描述

    可以看到图中所示的这几种体系结构,OSI 体系结构不实用,所以 TCP/IP的体系结构广泛实际应用,为什么,因为TCP/IP简单。不过我们在学习的时候,把两者结合一下来理解,会好一些。

    计算机网络缩影

    这里写图片描述

    其实计算机网络的缩影就是如此,两台主机,一台路由,那么大一点呢?
    这里写图片描述
    如图,两台主机以及路由其实是网络中的小小一部分。那么我们常说的服务器呢?
    这里写图片描述

    结语

    就是如此,接下来的每一章,我都会来分析其中的一层,自底向上。

  • 相关阅读:
    C++11 vector使用emplace_back代替push_back
    Centos6.4 编译安装 nginx php
    Centos 编译安装nodejs&express框架
    zookeeper 入门(二)
    zookeeper 入门(一)
    Paxos算法1-算法形成理论[转载]
    yum只下载软件不安装的两种方法
    Centos 6.4 安装dnsmasq
    Centos 6.4 安装erlang&rabbitmq
    Centos 6.4 安装Python 2.7 python-pip
  • 原文地址:https://www.cnblogs.com/Sherlock-J/p/12925956.html
Copyright © 2011-2022 走看看