现代社会,网络已经和水,电一样成为我们的不可或缺的日常需求了,可以说网络无处不在。作为一名用户,只需要学会如何使用网络即可,而作为一名计算机专业的学生,一名程序员有必要去深入了解其中原理。

因此,本章主要会介绍一些计算机网络的基本定义,网络的体系结构等,旨在学习计算机网络的基本概念,为接下来的网络编程打下良好的基础。

之前在大二在学过计算机网络,但是时间太久了很多已经都忘了,因此这篇博客也是对我自己知识的一次梳理,主要参考用书是谢希仁的《计算机网络》。

基础知识

计算机网络向用户提供的最重要的功能就是两个:

* 连通性:所谓连通是指网络使得用户能够交换信息,好像用户计算机是彼此相连的
* 共享性:资源可以共享,方便用户
网络可以看作是若干结点和连接这些结点的链路组成的,其中结点可以是计算机,集线器,路由器,交换机等。

网络是把很多计算机联系起来,而因特网把很多网络联系起来。因特网本身很复杂,但是从工作方式分为以下两大块:

1. 关于边缘部分:

边缘部分利用核心部分提供的服务,使得众多主机(端系统)能够进行通信,交换或者共享信息。更深一层的理解,
主机A和主机B通信,实际上是主机A的一个进程和主机B的一个进程通信。

端系统之间的通信一般可分为两大类,客户-服务器(CS模型),对等(P2P)。

2. 关于核心部分:

核心部分十分复杂,因为它要向边缘的大量主机提供服务,使得任何一个主机都能向其他主机通信。

其中,起关键作用的就是路由器,它也是一种专用计算机,主要是实现分组交换,也就是转发收到的分组。

分组优缺点:

计算机网络的性能指标

* 速率
* 带宽
* 吞吐量
* 时延
* 往返时间
具体可见谢希仁的《计算机网络》第六版 p19

计算机网络体系结构

主要有两个模型,一个是OSI七层模型,一个TCP/IP四层模型。

这是在《计算机网络》书中的一段文字和图片,用来说明网络体系结构,实际上,我们一般重点还是在TCP/IP四层协议上。

关于为什么要分层?书上也给出分层的好处:

技术
©2019-2020 Toolsou All rights reserved,
排序(一)冒泡排序法一文揭秘阿里、腾讯、百度的薪资职级大数据告诉你,中国女人有多累年薪20万属于什么水平?答案让人扎心!面试的时候突然遇到答不上的问题怎么办?SpringBoot实践(五):mybatis-plus中的BaseMapper,Iservice和ServiceImpl这些歌,程序员千万万万万别听!python中解决字典写入列表的问题中台透彻讲解GDOI2019 游记