[TOC]

计算机科学导论学习笔记

前言:当前作为一名IT互联网从业者,计算机技术日新月异,每天都有新概念、新技术的出现,而像我这样的万金油来说,越学到后面就越吃力,遇到瓶颈问题也随之增多,因为本身非科班出身,加之半路出家,针对于计算机基础知识掌握不牢或者说是不完整,所以我痛定思痛,下定决心重新学习计算机相关基础知识,从计算机科学导论,到计算机组成原理,到计算机网络、到操作系统,到数据结构,到程序算法、到应用开发、到安全运维开发。

今天 (2022年9月1日) 便从大神之路-起始篇,我们要站在巨人们的肩膀上,进行计算机科学导论的 学习,我将总结学习成果笔记,帮助后续入门学习的朋友。

随着现代计算机的发明,带来了新的学科,即计算机科学(简称计科)一词上一个非常广泛的概念,在此处我没将其定义为计算机相关的问题,现在计算机科学被划分成几个领域,总结归纳为两大类系统领域应用领域.

  • 系统领域:涵盖那些与硬件和软件构成直接有关的领域,例如计算机体系结构、计算机网络、安全问题、操作系统、算法、程序设计语言以及软件工程。
  • 应用领域:涵盖了与计算机使用有关的领域,例如数据库、云物联和人工智能。

参考书籍:【计算机科学导论-第三版 (Foundations Of Computer Science - Third Edition) 】作者: [美] 贝赫鲁兹.佛罗赞 (Behrouz Forouzan) PS: 当下已经第四版了、

参考视频:【计算机导论】计算机科学导论(大神之路-起始篇)


第 3 部分 计算机硬件与网络

此部分包含第56章,包含了计算机硬件的通用概念以及不同计算机的组成,其次介绍了计算机网络相关概念以及互联的。

原文地址: https://mp.weixin.qq.com/s/usJbZHe2Cfaurz6snVQyuA

6.计算机网络互联

本章将简单的学习一下计算机网络互联的相关知识,方便大家进行入门学习,会在后续黑皮书《计算机网络自顶而下方法》进行详细完整的学习,此节针对于想从业互联网的童鞋是必须掌握的技术,各类技术资格证考试也有涉及,特别是网络工程师软考。

早中期计算机的发展带动了商业、工业、科学和教育的巨大改变,与此同时网络也发生类似变革,技术的进步使得通信线路能传送更多、更快的信号。计算机网络领域的研究导致了新技术的产生,在全球各个地方交换文 本、音频和视频等数据,在任何时候快速、准确地下载或上载信息。

6.1 网络定义与分类

网络定义: 网络是一系列可用于通信的设备相互连接构成的,在一个网络中通信设备一般都通过有线或无线传输媒介(比如电缆或无线信号)互相连接。

设备可以是一台主机(或用另一种称呼,端系统),比如一台大型计算机、台式机、便携式计算机、工作站、手机或安全系统。

设备也可以是连接设备,例如路由器、交换机、调制解调器。

  • 路由器(Router):用来将一个网络与另一个网络相连接,即连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。*
  • 交换机(Switch):用来来一个将不同设备连接在一起,即它可以为接入交换机的任意两个网络节点(交换机、主机终端)提供独享的电信号通路。
  • 调制解调器:用于改变数据形式。

实际上你家里的路由器连接两台计算机、连接到网络电视,以及手机连接路由器发射出来的wifi信号,共同构造了一个网络。

网络分类: 按照覆盖范围大致分为 局域网、城域网、广域网

  • 局域网(Loxal Area Network,LAN) :局域网将主机互连,通常用于单个办公室、建筑或校园内的几个主机相连的私有网络,

  • 城域网(Metropolitan Area Network,MAN) :采用的技术基本上与局域网相类似只是规模要大一些,既可以覆盖一个城市,既可以是私人网,也可以是公用网。

    点对点广域网:是通过传输媒介(电缆或无线)连接两个通信设备的网络,我们常常成为专线。

    交换广域网:是一个有至少两个端的网络,用于当今全球通信的骨干网,交换广域网是几个点对点广域网通过开关连接产生的结合体。

  • 广域网(Wido Area Network,WAN):广域网则将交换机、路由器或调制解调器之类的连接设备互连,其地理跨度更大,可以横跨一个城镇、一个州、一个国家,甚至横跨世界。

局域网、城域网、广域网三者间的区别:

类别 局域网 城域网 广域网
覆盖范围 10公里以下 约是几十公里 几十公里到几万公里
接口类型 RJ-45 IP-VPN、Wireless LAN 串口 、T1 、POS 、ATM、E1
传输速率 10/100/1000/10000/10G/40G/100G 4kb/s的基础服务到2.5 Gb/s/10 Gb/s的租线业务 ISDN/PSTN/T1/E1/T3/E3/OC-3/OC-12/OC-48/OC-192
传输协议 PPP、HDLC TCP/IP 协议 以太网

当然除此之外,计算机网络的分类方法还可以有很多,例如:

  • 按网络使用的传输介质划分,可分为双绞线网、光纤网、无线网等;
  • 按网络数据传输速率划分,可分为带宽网和窄带网;
  • 按网络的拓扑结构划分,可分为总线形网络、星形网络、环形网络等。
WeiyiGeek.局域网、城域网、广域网

WeiyiGeek.局域网、城域网、广域网

温馨提示:通常局域网为机构(企业内部)私有网络,广域网则由通信公司创建并运营,并且租给使用它的机构(企业外部)。


6.2 因特网(互联网络)

定义:通常将两个或多个广域网互相连接时,它们构成一个互联网络或者说网际网,它由成千上万个互连的网络组成,不过当前说得更多的名称是互联网。

下图中将因特网展示为几个骨干网、供应商网络和客户网络,骨干网和供应商网络也被称为因特网服务供应商(ISP),骨干网通常被称为国际因特网服务供应商,供应商网络则被称为国内或地域性因特网服务供应商

  • 在第一层,骨干网为通信公司所拥有,其通过一些复杂的交换系统(网络对等交汇点 peering point)相互连接。
  • 在第二层,有一些规模较小的网络,这些网络称为供应商网络,它们付费使用骨干网上的一些服务,供应商网络与骨干网相连接也可以连接到其他供应商网络。
  • 在第三层,在供应商网络下层就是我们企业机构或者家庭用户的网络,统称为客户网络(在边缘,真正使用基于因特网服务的网络,向供应商网络付费得到服务)。
WeiyiGeek.互联网络示例图

WeiyiGeek.互联网络示例图


6.3 网络协议分层

因特网通过连接设备将大大小小的网络互相交织在一起构成的基本结构, 而为了产生沟通既需要硬件也需要软件设备, 并通过协议分层来互相配合通信的。

协议的定义

定义了发送器、接收器以及所有中间设备必须遵守以保证有效地通信的规则。
简单的通信可能只需要一条简单的协议,当通信变得复杂时,可能需要将任务分配到不同的协议层中,在这种情况下,我们在每一个协议层都需要一个协议或者协议分层

(1) 协议分层情景

假如,Ann和Maria两位用户需要通过进行交流并使用加密后的邮件相互传输,可以把Maria和Ann之间的通信分成三个协议层。

假设 Ann和Maria都各自拥有三台机器(或机器人)来完成每一个协议层的任务。

  • 在 Maria 这边, 将第一封邮件寄给Ann。Maria假设第三协议层机器是正在听她说话的Ann并对其说话,第三协议层的机器听她说话并且创作出明文(一封用英语写的信),并被传送到第二层的机器,第二协议层的机器对文本进行加密,将它创作成密文,并传送到第一协议层的机器。这个第一协议层的机器,也许是一个机器人,把密文装进信封,加上发信人和收信人地址,然后将信寄出。
  • 在 Ann 这边,第一协议层的机器从Ann的邮箱中取出邮件并通过发信人地址找出来自Maria的这一封。它从信封中取出密文并传递给第二协议层的机器,第二协议层的机器对密文进行解密,创作出明文并传递给第三协议层的机器,第三协议层的机器接受明文并且将它读出来,就像Maria在说话一样。

WeiyiGeek.协议分层情景

从上图可以看出是各机器或者通信协议是模块化的。

模块化指的是独立的协议层, 即一个协议层(模块)可以定义为一个具有输入和输出而不需要考虑输入是如何变成输出的黑匣子。
假如, 现有加密或解密无法保证她们的保密通信, 则可以直接替换掉第二协议层。

协议分层优势

  • 可以将大任务化简成几个更小、更简单的任务.
  • 可以将服务和其实施分开来, 每层使用更低层的服务,并向较高一层提供服务, 并且我们不需要考虑该层是如何实施的(透明的),使得所有协议层的中间系统变得简单。

协议分层劣势
也许有人会认为单一协议层可以使整个工作变简单,而且没有每个协议层都使用低一级协议层的服务并向高一级协议层提供服务的必要。
例如,Ann 和Maria可以自己制作能完成三项任务的机器。但是,就像之前提到的那样,一旦密码被破解,她们每一个人就得将整个机器换成新的而不是仅仅更换第二协议层。

(2) 协议分层原则

第一条原则规定,如果我们想达到双向通信,我们需要保证每一个协议层都可以进行两个对立且方向相反的工作。

例如,第三协议层的工作是去听(在一个方向上)和说(在另一个方向上),第二协议层同时需要能够进行加密和解密工作,第一协议层需要发送和接收邮件。

第二条重要原则是在两个站点中每一层的两个对象必须完全相同。

例如,在两个站点中第三层的对象都应该是明文信件,而在两个站点中第二层的对象都应该是密文信件,在第一层则都是一封信。

(3) 逻辑连接

逻辑连接的概念会帮助我们更好地理解在数据通信和建立数据关系网络中遇到的分层工作,即层与层之间通信的存在,例如Maria和Ann可以认为她们能够发送该协议层创作的对象是基于每层的逻辑(假想的)连接。

1
2
3
层3 (听/说)    <======= 逻辑连接 =======>   层3 (听/说)
层2 (加密/解密) <======= 逻辑连接 =======> 层3 (加密/解密)
层1 (发送/接收) <======= 逻辑连接 =======> 层1 (发送/接收)

6.4 TCP/IP 协议族模型

前面了解了协议分层和协议层之间的逻辑通信,而当前在因特网中使用的协议集(一组通过不同分层进行组织的协议)被称为TCP/IP协议族,TCP/IP协议族是一个分层协议,它由提供特定功能的交互式模块组成。

那TCP/IP是什么呢?又起了什么作用?

定义:TCP/IP是一组通信协议的代名词(其中包含一百多个协议),这组协议使任何具有网络设备的用户能访问和共享Internet上的信息,其中最重要的协议是传输控制协议(TCP)因特网协议(IP)

作用:TCP和IP是两个独立且紧密结合的协议,负责管理和引导数据报文在Internet上的传输,两者使用专门的报文头定义每个报文的内容。

  • TCP负责和远程主机的连接。
  • IP负责寻址,使报文被送到其该去的地方。

温馨提示:分层这个术语说明每一个高层协议都基于一个或多个低层协议提供的服务。


(1) 分层模型简介

TCP/IP四层模型的出现要早于OSI七层模型,它是由美国国防部创建的,所以有时又称DoD(Department of Defense)模型,是迄今为止发展最成功的通信协议,被用于构筑目前最大的、开放的互联网络系统Internet。

所以尽管OSI七层参考模型(后面介绍)得到了全世界的认同,但是互联网历史上和技术上的事实开发标准则是TCP/IP模型。

1
2
3
4
5
6
# TCP/IP 协议簇中的分层
应用层 - 层5
传输层 - 层4
网络层 - 层3
数据链路层 - 层2
物理层 - 层1

温馨提示: 为了简化了层次设备,又常常将TCP/IP模型说成四层,即将数据链路层物理层进行整合为网络接口层


分层模型架构

为了展示 TCP/IP 协议族中的分层是如何在两台主机通信中作用的,我们假设计算机A与计算机B通信示意图如下所示:

WeiyiGeek.TCP/IP 协议族分层架构

WeiyiGeek.TCP/IP 协议族分层架构

由图可知:

  • 两台主机都涉及5个协议层,同时源主机需要在应用层中创建消息并将其通过协议层向下发送,这样这条消息才能物理地发送至目标主机,目标主机需要在物理层接收通信并通过其他协议层将其发送至应用层。
  • 路由器只涉及三个协议层,由于路由器仅用来路由,所以在路由器中没有传输层或应用层。
  • 交换机只涉及两个协议层,数据链路层和物理层


地址和数据包名称

在模型中地址与数据包名称两个和协议分层有关的概念很值得一提,我们知道两台机器之间通信需要有两个地址即源地址和目标地址, 每个协议层一组有着不同的数据包名称,如下图所示协议层和在该协议层使用的地址以及数据包名称之间存在联系。

  • 在应用层,我们通常使用名称来定义提供服务的站点,比如 weiyigeek.top 或者邮箱地址 `master@weiyigeek.top`。
  • 在传输层,地址被称为端口号,这些端口号的作用是在源和目的之间定义应用层程序,端口号的作用是通过各程序的本地地址来辨别多个同时运行的本地程序,其范围是1-65535。
  • 在网络层,逻辑地址地址在整个因特网范围下是全球化的,网络层的地址独一无二地定义了该设备与因特网的连接。
  • 链路层地址,有时称为MAC地址,是在本地定义的地址,每一个链路层地址在计算机网络(局域网(LAN)或广域网(WAN))中定义一个特定的主机或者路由器。

WeiyiGeek.TCP/IP协议簇地址和数据包名称

温馨提示:虽然看上去我们需要5组地址,每个协议层一组,但是正常情况下我们只有4组,因为物理层不需要地址,这是由于物理层数据交换的单位是位,这使它无法得到地址。

模型数据封装流程

  1. 信息数据生成:当用户发送一个电子邮件时,它的字母或数字字符被转换成可以通过互联网传输的数据。
  2. 信息数据传输:通过对数据打包来实现互联网的传输,通过使用段传输功能确保在两端的信息主机的电子邮件系统之间可靠的通信。
  3. 信息数据发送、接收源、目网络地址:数据被放置在一个分组或者数据报中,其中包含了带有源和目的逻辑地址的网络报头,这些地址有助于网络设备在动态选定的路径上发送这些分组。
  4. 信息数据发送、接收源、目MAC地址:将目的数据链路层地址(MAC地址)加到数据链路报头,每一个网络设备必须将分组放置在帧中,该帧的报头包括在路径中下一台直接相连设备的物理地址。
  5. 信息数据底层传输:物理层传输的是比特,所以帧必须转换成一种1和0的模式,才能在通信介质上进行传输。
封装流程 数据格式 数据单位 TCP/IP 模型分层
0 用户消息数据 - -
1 APP头部+用户消息数据 报文 应用层
2 TCP头部+应用数据 TCP数据报/报文段 传输层
3 IP头部+TCP头部+应用数据 IP数据报/ 网络层
4 以太网头部(LH)+IP头部+TCP头部+应用数据+以太网尾部(LT) 以太网帧 数据链路层
5 比特流传输 101010101010110101110101010101010101…010101 位(bits)流 物理层


(2) 应用层

它是TCP/IP协议族中的最高层,应用层是为用户提供网络应用,并为这些应用提供网络支撑服务,把用户的数据发动到低层,为应用程序提供网络接口。

应用层模式
在计算机中两个程序需要通过网络基础设施互相发送消息,而在网络的生命周期中,应用程序发展出了两种模式客户机-服务器模式端到端模式

  • 客户机-服务器(C/S)模式:较为传统的模式,服务提供者是一个应用程序叫做服务器进程,这个进程一直持续运转,等待另一个叫做客户端进程的应用程序通过因特网连接要求服务。

    应用:万维网(WWW)和 超文本传输协议(HTTP)、文件传输协议(FTP)、安全外壳协议(SSH)、邮件服务

  • 端到端(P2P)模式: 它是一个新的模式,它不需要一个一直运行并等待客户端进程连接的服务器进程,端与端之间共享的,一台与网络相连接的计算机可以在一个时间段提供服务又在另一个时间段接收服务,一台计算机甚至可以在同一时间提供和接收服务。

    应用:网络电话、BT下载


C/S 结构应用介绍

万维网(缩写为WWW或仅是Web): Web是具有连接分布在世界各地的文档中信息的存储库,存储库中叫做网页的文档分布在全世界并且相关的文档都链接在一起。现在我们将为了描述链接的文本文档而创造的术语超文本改成了超媒体,来说明一个网页可以是文本文档、图像、音频文件或视频文件。

  • 客户端(浏览器):例如Google 浏览器、Firefox 浏览器 以及 Edge 浏览器,每个浏览器通常由三部分构成控制器(键盘或鼠标的输入)、客户端协议 (如HTTP或FTP) 和解释器(例如,HTML、Java 或 JavaScript)。
  • 服务器: 存储网页,每当请求到达时,相应的文档会发送至客户端。
  • 统一资源定位器(URL): 网页需要唯一地标识符来将它和其他网页区分开来,定义一个网站网页需要4个标识符,即协议、主机、端口和路径,例如:protocol://host:port/path
WeiyiGeek.Web请求示例

WeiyiGeek.Web请求示例

超文本传输协议(HTTP) : 用来定义如何编写客户机-服务器程序以便于从网络 中检索网页的协议,浏览器客户端发送请求,服务器返回响应,服务器使用的端口号为80,而客户机使用临时端口号1023~65535

文件传输协议(FTP):是TCP/IP提供的标准协议,用于从一台计算机复制文件到另一台计算机,在连接的生命周期中控制连接在整个交互式FTP会话中始终是监听的,而数据连接为每个文件传输活动打开和关闭。

  • 客户端有三部分组成:用户接口、客户端控制进程和客户端数据传输进程。

  • 服务器端有两部分组成:服务器控制进程(控制连接建立在控制进程间)和服务器数据传输进程 (数据连接建立在数据传输进程间)。

WeiyiGeek.文件传输协议

电子邮件(Email):其包含多种协议 POP3/ IMAP /SMTP, 它允许客户间通过邮件服务器进行相互交换信息。

  • POP3 的全称是 “Post Office Protocol 3”,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准, POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上, 同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的,不建议使用,因为POP3更易丢失邮件或多次下载相同的邮件
  • SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。
  • IMAP 全称是Internet Mail Access Protocol,即交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的,推荐使用,因为 IMAP 整体上为用户带来更为便捷和可靠的体验。

WeiyiGeek.邮件服务器

终端网络(TELNET):是(TErminaL NETwork)的缩写是最早的远程登录协议之一,虽然TELNET要求登录名和密码,但是以明文的形式发送数据,非常容易被嗅探到,所以由于安全问题不建议使用它,而采用安全外壳协议SSH来替代它。

安全外壳 (SSH):使用过Linux的朋友可能对它并不陌生,它是一个可以用作多个目的(如ssh远程登录和scp文件传输)的安全应用程序,但是它在最初是为了代替TELNET而设计的。

简单网络管理协议(Simple Network-manage Protocol,SNMP):专门设计用于管理网络设备(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议。

域名名称服务(DNS):TCP/IP协议族使用唯一定义了该主机和网络之间连接的IP地址,但是为了方便人们记忆通常使用字符串而不是数字化的地址,因此网络需要有一个可以将名称映射到地址的目录系统,DNS的出现正是为了解决此问题。

例如,博主的 blog.weiyigeek.top 博客站点域名,通过如下步骤将主机名词映射到对应的IP地址上。

WeiyiGeek.域名解析流程

WeiyiGeek.域名解析流程

温馨提示:推荐文章【运维之企业内部DNS主从服务搭建与安全配置实践】,文章地址( https://mp.weixin.qq.com/s/0EOyR4uEVe7T_4HbSxqK9w )

P2P 结构应用介绍

发展历史

  • 1987 年12月,当韦恩•贝尔创造了WWIV网,WWIV (第四次世界大战)公告栏软件的网络组件。

  • 1999年7月,伊恩•克拉克设计了新飞网(Freenet), 一个分散且抗审查的分布式数据存储,旨在通过一个端到端网络为言论自由提供具有匿名性的强有力的保障。

  • 1999-2001年,肖恩•范宁创造的一个Napster 的在线音乐文件分享服务逐渐受到欢迎,为后来的端到端文件分布模型奠定了基础。

  • 2000年3月发布Gnutella ,紧随其后(Kazza使用的)快道协议(FastTrack)、BT T载(BitTorrent)、WinMX和吉牛网(GNUnet)也各自在2001年3月、4月、5月和11月相继发布。

模式分类:把端到端(P2P)模式分成两类集中的分散的

  • 集中网络: 在该网络中目录系统列出同位体,但是文件的存储和下载都使用端到端模式完成,即一个同位体先通过一个中央服务器注册,然后同位体提供它的IP地址和它准备共享的文件列表。

  • 分散网络:在该网络中不依赖于集中目录系统,同位体组织形成一个在物理网络之上的逻辑网络称为重叠网络,基于重叠网络中节点之间的连接方式,分散P2P网络分成结构化的和未结构化的两大类。

    未结构化:节点随机地连在一起,进行搜索时可能导致查询涌入网络并造成巨大的流量。

    结构化:使用一组预设的规则来链接节点,它可以有效且高效地解决查询问题,最常用的技术就是分布式散列表(DHT),以及使用DHT应用包括 分布式数据结构(DDS)、内容分布式系统(CDS)、域名系统(DNS)和 P2P文件共享(BT下载)


(3) 传输层

它是TCP/IP协议族的核心部分,该层位于应用层和网络层之间,在源结点和目的结点的两个对等实体间提供可靠的端到端的数据通信,它从网络层接收服务并为应用层提供服务,并且在必要的时候把它们分成较小的单元,传递给网络层,并确保达到对方的各段信息准确无误。

为保证数据传输的可靠性,传输层协议也提供了确认、差错控制和流量控制等机制。

传输层服务

  • 进程间通信:传输层的第一个义务是提供进程间通信,一个进程是使用传输层服务的应用层实体(运行中的程序)

    即传输层协议目的是将消息送抵相应的进程。

  • 地址端口号:一个远程计算机可以同时运行多个服务器程序,就像一个或多个客户程序可以同时在多个本地计算机上运行一样。为了通信,我们必须定义本地主机、本地进程、远程主机和远程进程。为了定义这些进程,需要第二个标识符即端口号。

    在TCP/IP协议族中,端口号是 0 和 65 535 (16位)之间的整数,其中 0 - 1023 是服务使用,1024 - 65535 用于临时使用。

WeiyiGeek.传输层服务

WeiyiGeek.传输层服务

传输层协议

传输层最常用的协议有 UDP (用户数据报协议)和TCP (传输控制协议)这两个协议。

  • 用户数据报协议(UDP)是面向无连接的不可靠传输层协议,它除了提供进程间通信而不是主机间通信以外,没有向网络层服务添加任何东西。

    优点:极简单同时开销最少的协议

    缺点:传输不像TCP那样可靠

    应用:如果一个进程想要发送一条短的消息且不关心可靠性,那么就可以使用UDP,通过UDP发送一条短的消息比用TCP发送造成的发送者和接收者之间的互动要少得多

    数据包格式:UDP数据包(用户数据报),固定8字节的头,

    2字节(16位)源端口号 + 2字节(16位)目标端口号

    2字节(16位)包长度 + 2字节(16位)校验和

  • 传输控制协议(TCP):是一个面向连接的可靠协议,它明确地定义了连接设施、数据传输和连接拆卸段以提供面向连接的服务。

    优点:传输可靠链接需要经历四次握手三次挥手。

    缺点:协议不像UDP那样简单

    应用:通常用于计算机中一些程序服务需要可靠通信的场景。

    数据包格式:包头累计20字节。

    2字节源端口号 + 2字节目标端口号

    4字节序列号

    4字节确认应答号

    4bits数据偏移+6bits保留位+6bits控制位 + 2字节窗口大小

    2字节校验和 + 2字节紧急指针

在传输层,TCP将一些字节组合成一个叫做段的数据,TCP在每一段之前加上一个头(目的是方便控制),并且将这些段发送至网络层进行传输。

(5) 网络层

该层负责独立地将分组从源主机送往目的主机,为分组提供最佳路径的选择和交换功能,并使这一过程与它们所经过的路径和网络无关。与OSI参考模型中的网络层类似,即检查网络拓扑结构,以决定传输报文的最佳路由。

网络层服务

数据包封装:在源主机的网络层数据包中封装有效负荷(从上一层接收的数据),并且从来自目的主机网络层的数据包中解封装有效负荷,换句话说,网络层的一个责任是将有效负荷不加改动或利用地从源送到目的地,其有效负荷可以封装在几个网络层数据包中,如果在源主机或在路径中的路由器处时数据包为碎片状,网络层有责任等待直到所有碎片到达,对它们重新组合并发送至上层协议。

数据包传递:该层中的数据包传递是无连接且不可靠的。

  • 不可靠传递:在网络层传递的数据包是不可靠的,意味着数据包在传输时可能毁损、丢失或者重复。
  • 无连接传递:网络层的传递也是无连接的,网络层对每个数据包的处理是单独的,即属于相同传输层有效负荷的数据包之间是没有联系的,这是由于每个数据包都可能依照不同的路径到达目的地。

    例如:一个传输层数据包分成了4个网络层数据包,它们按顺序发出(1, 2, 3, 4),但是收到时它们的顺序是乱的(2, 4, 3, 1),目的地的传输层负责等待和接收所有数据包再将它们组合在一起并传送至应用层

WeiyiGeek.数据包封装与包传递

路由:网络层为将数据包从它的源传送到目的地而负责,并且还要从可能的网络路线中找到最优路线,所以可以通过路由和特定的策略来定义最优路线。


网络层协议

在网络层有很多协议,但最主要的协议叫做网际协议(IP), 而其他协议都是辅助协议,帮助IP完成它的职责。其中最常见的两类网络协议是IPv4和IPv6.

定义:用来标记每个设备和互联网之间的连接的标识符叫做网络地址或IP地址。

第4版网际协议(IPv4): 当下大多数系统默认使用该协议,但有该地址空间(2^32)有限和数据包格式较小 ,IPv4地址是一种32位的地址,例如192.168.1.1(带点的十进制表示法),全球可用的IPV4已不多了,所以最近几年里加紧了IPV6建设.

IPv4地址三种表示法:二进制表示法(以2为底)、带点的十进制表示法(以256为底)和十六进制表示法(以16为底)

IPv4地址中的分层:地址第一部分叫做前缀(定义网络);地址第二部分叫做后缀( 定义节点,即设备和网络的连接);即假设一个32 位IPv4地址的前缀(n)位则后缀为(32-n)位。

IPv4数据报:IP使用的数据包叫做数据报,其数据报是一种长度不一的数据包,包两个部分即头(包含路由通信地址)和有效负荷(数据),头(首)0部20字节(固定部分)40字节(可变部分),数据载荷为65535 - 首部

WeiyiGeek.ipv4

第6版网际协议(IPv6):是下一代IP版本,为了解决IPv4地址不够用以及安全性而出现,IPv6使用128位表示IP地址,每组 16 位 共8 组。例如 2409:8a60:1e2d:5780:9946:259c:6ce3:212c(冒号十六进制的格式)

IPv6地址两种表示法:二进制(用来在计算机中存储地址)、冒号十六进制(便于人类使用)

IPv6地址中的分层:站点(组织)、子网和到主机的连接。

IPv6数据报:此数据报也是包含头与有效负荷(数据)两部分。

WeiyiGeek.IPV6

参考地址:RFC 791: Internet Protocol (rfc-editor.org)


(5) 数据链路层

TCP/IP协议族没有定义数据链路层中的任何协议,此层是网络中连接起来后可以构成因特网的区域,其通信是节点对节点的(网络中具体哪台机器接收),上三层的通信都是端到端的。

网络中一点的数据单元需要穿过很多网络(LAN和WAN)才能到达另外一点,这些LAN和WAN都是通过路由器连在一起的, 传统上会将两个端主机和路由器看作节点,它们之间的网络看作链接。

WeiyiGeek.节点和链接

WeiyiGeek.节点和链接

局域网 (LAN):即有限的地理区域(如一个建筑或校园)而设计的计算机网络,通常是用于企业、工厂内部,但现在大多数的LAN也可以通过路由器转发链接到广域网(WAN)或因特网上,局域网可以是有线或无线网络:

  • 有线LAN网络:常用就是以太网是由罗伯特•梅特卡夫和大卫•博格斯在20世纪70年代开发的,发展经历了四代其数据速率也不断提高,标准以太网(10 Mbps)、快速以太网(100 Mbps)、千兆以太网(1 Gbps) 和 万兆以太网(10 Gbps)。

    标准以太网: 其数据速率为10 Mbps (每秒一千万位)的以太网技术认为是标准以太网。

    快速以太网: 其数据速率为100Mbps提升了10倍。

    千兆以太网: 其数据速率的需求促使了千兆以太网协议( 1000 Mbps)的设计,保持地址长度、帧格式以及最大和最小数据帧长度不变。

    万兆以太网: 其升级数据速率至10 Gbps, 保持数据帧大小和格式不变,同时允许LAN、MAN和WAN可能的互连。(当下只能由光纤介质实现)

以太网帧数据包格式:目的地址(6B)+ 源地址 (6B) + 类型 (2B) + 数据载荷 (46B ~ 1500B) + 循环校验位(4B), 注意其最小512位(64B),最大为12144位(1518B)

WeiyiGeek.以太网帧数据包

WeiyiGeek.以太网帧数据包

  • 无线LAN网络:在此LAN种传输媒介是空气,信号传输在空中进行,当无线LAN中主机相互通信时,他们在共享同样的媒介(多发访问),当下最常用的两种技术是无线以太网、蓝牙

    无线以太网:电气和电子工程师协会(IEEE)为无线LAN定义的规格,有时也被称为无线以太网或者WiFi (wireless fidelity 的缩写),定义了两种服务:基本服务集(BSS)和扩展服务集(ESS),第二个服务需要使用额外设备(接入点或AP)作为连接其他LAN或WAN的开关。

    蓝牙:最初是爱立信公司开启的一个项目,命名来自于统一了丹麦和挪威的丹麦国王 Harald Blaatand ( 940—981 ),此处 Blaatand 英译为Bluetooth即蓝牙。它是一种无线LAN技术,它用于连接不同功能的设备,如电话、笔记本电脑、计算机(台式机以及笔记本电脑)、照相机、打印机,甚至是咖啡机之类的设备,只要这些设备之间的距离比较短。蓝牙技术应用在多个领域场景无线鼠标和无线键盘/无线耳机等外围设备以及当下流行的IOT设备通过网关互联。 目前最新版本为 6.0

WeiyiGeek.BSS和ESS

广域网(WAN): 即它是由一个更大更多的网络组成的,提供人们在不同地域的计算机进行相互通信的,与LAN情况一样,WAN也可以分成有线和无线两类。

  • 有线 WAN 网络:当下以太网中由点对点的WAM或者是交换式WAN

    点对点WAN: 用几种点对点无线网来为连接到网络的居民和企业提供所谓的网络末端服务

    交换式有线WAN:可以用于连接网络的骨干网,过去为了这个目的设计了几个诸如SONET或ATM的协议,但是当下我们平常用户并不常用

    拨号上网服务:拨号网络或连接使用电话网络提供的服务来传输数据,例如,熟知的拨号调制解调器,它指构成这个设备的两个功能性实体信号调制器(通过数据制造信号)和信号解调器(从信号中恢复数据)

    数字用户线路(DSL):它主要用于提供高速网络连接,其技术是现有的电话上支持高速通信中最有前途的一种。它通过不同的首字母区分的技术(ADSL、VDSL, HDSL 和SDSL),其中最常用的是ASDL(非对称数字用户线路)允许用户同时使用语音频道和数据频道,在下游方向(从网络到居民)比在上游方向(从居民到网络)提供更快的速度(比特率),即下行速率(MAX 13.4 Mbps)大于上行速率(MAX 1.44 Mbps)。

    有线电视网络: 它的出现是为提高传输速率,解决DSL使用的现成的非屏蔽式双绞线电缆很容易受到干扰而导致数据速率存在极大限制

温馨提示:请注意 Mbps(兆比特每秒) 与 MBps(兆字节每秒) 传输单元的不同之处,后者需要除以8。

  • 无线 WAN 网络:为了能给没有搭设有线网络的地区以及使用无线网络上网的终端设备,必定需要无线WAN,当下出于目的而使用的几种技术。

全球互联接入:即WiMax是DSL或通过电缆连接因特网的无线版,它提供两种服务(固 定WiMax)将主要工作站与固定工作站或移动电话之类的移动工作站相连接。

手机移动网络:即我们生活中手机是通过的蜂窝式网络上网的,蜂窝式网络将地球划分成单元,手机与它们该时刻所在的单元内的固定天线通信,当用户移动到另一个单元时,通信存在于移动设备和新的天线之间。

卫星网络:由节点组合而成的节点一部分是卫星,它们提供地球上一点到另一点的通信,在网络中的一个节点可以是一个卫星、一个地球工作站或者一个最终用户终端或电话,其类似于蜂窝式网络,因此也将整个星球划分成了单元,它可以提供更远距离的传输通信。

WeiyiGeek.有线WAN与无线WAN

(6) 物理层

该层是TCP/IP协议簇最定层,其主要作用是将从数据链路层接收的位转换成用于传输的电磁信号,当位被转换成信号后,信号将被传送至传输媒介。

数据和信号:在物理层的通信是节点对节点的,节点间信息交换是通过电磁信号,即需要将位数据转换为电磁信号,然后才可发送到传输媒介(有线or无线)中进行传输。

模拟数据:呈现连续线性的值,例如,人发出的声音,在空气中就出现了一个模拟波,这个模拟波可以通过麦克风捕捉并转换成模拟信号或者采样并转换成数字信号。

数字数据:呈现是离散的值,例如,数据在计算机内存中是以0和1的形式存储的,它们可以转换成数字信号或者调制成用来通过媒介进行传输的模拟信号。

模拟信号:在一个时间段中有无限种不同的等级强度,就像当波从A值移动到B值的时候,它的路径经过并包括无限个值,

数字信号:与模拟信号不同的是,数字信号可以只拥有有限个定义的值,虽然每个值可以是任意数字,但通常只为1和0。

展示信号最简单的方法是将它们绘制在一组相互垂直的轴上,纵轴代表信号的值或强度,横轴代表时间。

WeiyiGeek.模拟与数字信号

WeiyiGeek.模拟与数字信号

数据信号间转换传输

数字传输:我们知道信息需要转换成数字信号或模拟信号来进行传输,如数据是数据化则需用数数转换技术(将数字数据转数字信号),如数据是模拟则需使用模数变换技术(将模拟信号转换成数字信号的方法)。

  • 数数转换:如果数据是数字化的并且需要传输数字信号,可以使用数字到数字的转换,将数字数据(0101…101)转换成数字信号进行传输。
  • 模数转换:如果模拟信号通过采样(模数变换)转换成数字数据(受到噪音干扰的影响更小),即对模拟信号取样来生成一个数字化数据,然后再通过数字数据转换成数字信号进行传输。

WeiyiGeek.数数与模数转换

模拟传输:虽然数字化传输效果很好但是其需要一个专用通道,例如,当我们在空气中进行传播时,空气属于所有人,而我们只能使用频道中可用的那一部分,基于可用的数据类型,可以用数模转换模模转换

  • 数模转换:基于数字数据的信息改变模拟信号的某个特征的过程。
  • 模模转换:基于模拟数据的信息改变模拟信号的某个特征的过程。
WeiyiGeek.数模与模模

WeiyiGeek.数模与模模

TCP/IP 协议簇模型(5层)总结:

TCP/IP 协议簇模型模型 常见协议 备注
应用层 ping(基于ICMP)、HTTP(基于TCP)、FTP(TCP)、telnet(TCP)、SSH(TCP)、DNS(基于UDP) 负责独立地将分组从源主机送往目的主机,为分组提供最佳路径的选择和交换功能。应用
传输层 用户数据报协议(UDP)、传输控制协议(TCP) 负责两台主机上的应用程序提供端到端(end to end)的通信,关心通信的起始端和目的端,而不在乎数据包中转的过程。TCP/UDP 数据报
网络层 IP、ARP/RARP、ICMP 负责独立地将分组从源主机送往目的主机,为分组提供最佳路径的选择和交换功能。IP 数据报
数据链路层 设备接口、Etherent、令牌环、帧中继、ISDN和分组交换网X.25 负责接收从网络层交来的IP数据报并将IP数据包通过底层物理网络发送出去。以太网帧头
物理层 - 负责将从数据链路层接收的位转换成用于传输的电磁信号,并传输到通信介质中。

TCP/IP模型与OSI参考模型的异同

相似点:两者均采用了层次结构并存在可比的传输层和网络层,两者都有应用层,均是一种基于协议数据单元的数据交换网络。

不同点:

  • OSI模型包括了7层,而TCP/IP模型只有4层;
  • OSI在网络层支持无连接和面向连接两种服务,而在传输层仅支持面向连接的服务。TCP/IP在网络层只支持无连接一种服务,但在传输层支持面向连接和无连接两种服务;
  • ICP/IP模型已经成为网络互联的事实标准,OSI模型仅仅作为理论的参考模型

为什么使用TCP/IP模型而没有用OSI参考模型?

主要原因是OSI模型比TCP/IP模型出现的晚,在OSI提出前,TCP/IP已经被广泛应用了。再者OSI并没有提供一个可以实现的方法,而是描述了一些概念,当真正实现起来又非常复杂,大部分公司也不愿意用OSI。相对于TCP/IP,后者协议比较简单,实现也容易,更符合市场的要求。综合各种因素,OSI最终没有被广泛应用。


6.5 传输介质

在物理层产生的电子信号需要通过传输介质来从一端传输到另一端,传输介质通常在物理层之下,并且受到物理层的直接控制。

即传输介质可大致定义为任何可以将信息从源传输到目标的介质,例如,我们的实体书信通过邮局进行邮寄,其传输介质可能是邮车、火车、飞机等。

在电信中,传输介质可以分为两大类导向介质无导向介质,而导向介质常用包括双绞线、同轴电缆和光纤,无导向介质是自由空间。

(1) 导向介质(有线)

定义:导向介质就是那些用来提供从一个设备到另一个设备的通道的。

常用三种导向介质:

  • 双绞线:它包括两根绞在一起的导线(通常是铜线),这两根导线是分别包着塑料绝缘的,双绞线中一根的作用是将信号传送到接收方,另一根的作用仅仅是接地参考,接收方使用两者的不同。将两根线绞在一起是为了防止噪音(干涉)影响两根线并制造出多余信号。

    例如,我们使用的座机电话线也是双绞线,他是ISP提供高数据率链接的DSL(数字用户线路)。

  • 同轴电缆:它有一个位于中心且密封在绝缘外壳中的实心(通常是铜导线)或绞合线作为核心导线,同时这个导线也依次密封在金属箔或金属网或二者构成的外金属包装和绝缘护套中,而不是使用两根线,这里的外层金属包装既用作抗噪音的屏蔽也作为补全电路的第二导体使用,整个电缆由塑料护套保护。

    例如,有传统的有线电视网络中整个网络由同轴电缆构成(闭路电视的连接线),而当下有线电视供应商把大多数的媒介换成了光纤电缆,混合网络也只在网络的边缘和靠近顾客房屋处使用同轴电缆。

  • 光纤电缆:它由玻璃或塑料构成,它以光的形式传递信号,该技术是使用一束光在进入密度较低介质时既不反射也不折射的特性,在玻璃或塑料介质外覆盖另一种密度较小的介质(称为包层)来导引光通过媒介。

    例如,光纤电缆通常在骨干网中使用,因为它的高带宽具有成本效益。

WeiyiGeek.导向介质

WeiyiGeek.导向介质

(2) 非导向介质(无线)

非导向介质不通过物理上的导体来传播电磁波,此种通信通常归为无线通信,信号通常在自由空间中传播,这样任何有能够接收信号的设备的人都可以使用它。

现在用三种不同范围的电磁波频谱来进行通信:无线电波、微波和红外波

  • 无线电波:频率在3 kHz〜1 GHz之间的电磁波通常叫做无线电波,它们通常用于无线电通信。

  • 微波:频率在1〜300 GHz的电磁波叫做微波(是没有方向性的),当天线传输微波时, 它们可以集中得很窄,也就是说发送和接收微波的天线需要对齐。

  • 红外波:频率在300 GHz〜400 THz之间(波长在770 nm〜1 mm之间),它可以用于短程通信, 对于长距离通信而言是无用的,其频率较高无法穿透墙壁,明显优势的特点防止了不同系统之间的干扰,一个房间内的短程通信系统不会受到下一个房间内的另一个系统的影响。

    例如,当使用红外遥控器时,不会受到邻居使用遥控器的干扰,另外我们不能在室外使用红外波,因为太阳光中的红外波会对通信产生干扰。

下图展示了电磁波谱中用于无线通信的波段,从3 kHz到900 THz。

WeiyiGeek.无线通信的波段

WeiyiGeek.无线通信的波段