前言

1、眼过千遍,不如手过一遍
2、内容太多,梳理理解记忆
3、菜鸟初学,写笔记的方式容易坚持下来,并且不易分心。

于是有了这篇计算机网络学习笔记,如有问题,欢迎指正。

一、概述

1、因特网

因特网是一个世界范围的计算机网络,即它是一个互联了全世界的计算设备的网络。

因特网术语中,计算机网络又称为主机(host)或端系统(end system)。

因特网服务供应商—internet Service Provider (ISP);

2、协议

  • 协议,网络协议的简称,是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。
  • 它的三要素是:语法、语义、时序。
  • 为了使数据在网络上从源到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议(protocol),
  • 它最终体现为在网络上传输的数据包的格式。

因特网中广泛的使用了协议,不同的协议之间用于完成不同的通信任务。

3、网络边缘

  • 主机=端系统

    • 客户端 client
    • 服务器 server
  • 接入网

    • 指将端系统连接到其边缘路由器的物理链路

    • 家庭接入网类型

      • 数字用户线(Digital Subscriber Line,DSL

    • 电缆因特网(cable Internet)

      混合光纤同轴(Hybrid Fiber Coax, HFC

    • 光纤到户(Fiber To The Home,FTTH

      • 光纤网络端接收器(Optical Network Terminator,ONT
      • 光纤线路端接收器(Optical Line Terminator,OLT

    • 企业和家庭接入网(主流):以太网和WiFi

  • 边缘路由器

    • 端系统到其他任何远程端系统路径上的第一台路由器
  • 物理媒体

    • 双绞线缆
    • 同轴电缆
    • 光纤
    • 陆地无线电信道
    • 卫星无线电信道

4、网络核心

  • 分组交换

    • 端系统彼此交换报文(message)
    • 源端向目的端发送报文,将长报文划分为较小的数据块,称之为分组。
    • 每个分组通过 通信链路 和**分组交换机(packet switch)**传送
  • 电路交换

  • 网络的网络

    因特网交换点(Internet Exchange Point,IXP

5、协议分层-协议栈

  • 各层的所有协议被称为 协议栈(Protocol stack)

  • 因特网的协议栈由五个层次组成:

    • 物理层、链路层、网络层、运输层、应用层

(1)应用层

​ 应用层是网络应用程序及它们的应用层协议存留的地方。因特网的应用层包括许多协议。

​ 例如:

​ HTTP:提供了Web文档的请求和发送

​ SMTP:提供了电子邮件报文的传输

​ FTP:两个端系统之间的文件传输

​ 端系统之间的应用程序书使用协议交换信息的分组,称为 报文

(2)运输层

  • 因特网的运输层在应用程序端点之间传送应用层报文。
  • 两个运输层协议,TCPUDP ,这两个都能运输应用层报文。
    • TCP向它的应用程序提供了面向连接的服务。这种服务包括了应用层报文向目的地确保发送方、接收方速率匹配。
    • TCP也将长报文划分为短报文,并提供拥塞控制机制。因此当网络堵塞时,源抑制其传输速率
    • UDP 协议向它的应用程序提供无连接服务。这是一种不提供不必要的服务,没有可靠性,没有流量控制,也没有拥塞控制。
  • 我们把运输层分组称为 报文段
  • 运输层向网络层递交运输层报文段和目的地址。

(3)网络层

  • 网络层分组被称为 数据报
  • 网络层将数据报从一台主机移动到另一台主机。
  • 网络层通过源和目的地之间的一系列路由器路由数据报。
  • 网络层协议
    • IP 协议

      • 该协议定义了在数据报中的各个字段以及端系统和路由器如何作用于这些字段。
      • 所有网络层的因特网组件必须运行IP协议
    • 路由选择协议
      • 数据报根据该路由从源传输到目的地。
  • 网络层也被简称为IP层。

(4)链路层

  • 网络层通过源和目的地之间的一系列路由器路由数据报。为了将分组从一个结点(主机或路由器)移动到路径上的下一个结点,网络层必须依靠该链路层的服务。特别是在每个结点,网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个结点。在下个节点,链路层将数据报上传给网络层。
  • 链路层协议:
    • 以太网协议
    • WIFi协议
    • 电缆连接入网的DOCSIS协议
    • PPP协议
  • 链路层分组称为

(5)物理层

  • 虽然链路层的任务是将整个帧从一个网络元素移动到临近的网络元素,而物理层的任务是将该帧中的一个一个比特从一个结点移动到下一个结点。
  • 在物理层的协议仍然是与链路相关的,并且进一步与该链路(例如,双绞铜线、单模光纤)的实际传输媒体有关。
  • 物理层协议:
    • 以太网具有许多物理层协议:

      • 一个关于双绞铜线的、一个关于同轴电缆的、一个关于光纤的。
  • 在每种场合中,跨越这些链路移动一个比特是以不同的方式进行的。

6、协议分层-OSI模型

  • 开放系统互连模型,简称 OSI.
  • 国际化标准组织 — ISO
  • OSI参考模型是:
    • 应用层、表示层、会话层、传输层、网络层、链路层、物理层
    • 表示层作用:
      • 使通信的应用程序能够理解交换数据的含义。这些服务包括数据压缩和数据加密(它们是自解释的)以及数据描述。
    • 会话层作用:
      • 提供了数据交换定界和同步功能,包括建立检查点和恢复方案的方法

7、封装

​ 在发送主机端,一个应用层报文(application-layer Message,M)被传送给运输层。在最简单的情况下,运输层收取到报文并附上附加信息(所谓运输层首部信息,H)。该首部将被接收端的运输层使用。应用层报文和运输层首部信息一道构成了运输层报文段(transport-layer segment)。运输层报文段因此封装了应用层报文。

 附加的信息也许包含下列信息:
  • 允许接收端运输层向上向适当的应用程序交付报文信息

  • 差错检测位信息:该信息让接收方能够判断报文中的比特是否在途中已被改变。

    运输层则向网络层传递该报文段,网络层增加了如源和目的端系统地址等网络层首部信息,产生了网络层数据报。该数据报接下来被传递给链路层,链路层(自增)增加他自己的链路层首部信息并创建链路层帧。

8、网络攻击

  1. 病毒(virus): 一种需要某种形式的用户交互式来感染用户设备的恶意软件。典型例子就是发送的附件。

  2. 蠕虫(worm): 一种无需任何明显用户交互就能进入设备的恶意软件。

  3. 拒绝服务攻击(Denial-of-Service attack,DOS): DOS 攻击使得网络、主机或其他基础设施部分不能由合法用户使用。

    1. Web服务器、电子邮件服务器、DNS服务器和机构网络都能成为DOS攻击的目标。

      大多数因特网DoS攻击属于下列三种类型之一:

      ​ **弱点攻击:**向目标主机上运行的易受攻击的应用程序或者操作系统发送制作精细的报文。如果适当顺序的多个分组发送给这个程序或操作系统,该服务器会造成停止运行或崩溃。

      ​ **带宽洪泛:**攻击者向目标发送大量的分组,分组之多使目标的接入链路变得拥塞,使合法的分组无法到达服务器。

      ​ **连接洪泛:**攻击者在目标主机中创建大量的半开或全开TCP连接。主机会因这些连接而陷入困境。并停止接收合法的连接。

  4. 嗅探分组:

    ​ 在无线传输设备的附近放置一台被动的接收机,该接收机就能得到传输的每个分组的副本。这些分组包含了各种敏感信息。记录这些敏感信息的被动接收机被称为分组嗅探器(packet sniffer)。

  5. IP哄骗

    ​ 将具有虚假源地址的分组注入到因特网的能力叫IP哄骗(IP spoofing)。

二、应用层

1、网络应用程序体系结构

​ 应用程序网络体系结构(application architecture) 由应用程序研发者设计,规定了如何在各终端系统上组织该应用程序。

​ 两种主流体系结构:C/S 体系结构 和 P2P(对等)体系结构。

 客户-服务器体系结构(client-server architecture)中,有一个总是打开的主机被称为服务器。特征:1、通过服务器通信,客户之家不直接通信。2、服务器具有周知、固定的IP地址例如:Web、FTP、Telent和EmailP2P体系结构(P2P architecture)中:对位于数据中心的专用服务器有最小(或者没有)的依赖。相反,应用程序在间断连接的主机对之间使用直接通信。这些主机被称为对等方。适用于流行、密集型应用例如:文件共享、对等方协助下载加速器(迅雷)、IPTV等特性:自扩展性

2、进程通信

  • 程序之间进行通信的实际上是 进程(process)

    • 一个进程可以被认为是运行在端系统的一个程序,当进程运行在相同的端系统上,它们使用进程间通讯机制相互通信。进程间通信的规则由端系统上的操作系统确定。而在两个不同端系统上的进程,通过跨越计算机网络交换报文而相互通信。
  • 在给定的一对进程之间的通信会话场景中,发起通信(即在会话开始时发起与其他进程的联系)的进程被标示为 客户,在会话开始时等待联系的进程是 服务器

  • 进程通过 套接字socket,一个软件接口)来向网络发送/接收报文。套接字是同一台主机内应用层和传输层之间的接口,也被称为应用程序和网络程序之间的应用程序编程接口(Application Programming Interface,API

  • 应用程序开发者可以控制套接字在应用层端的一切,但对套接字的运输层端几乎没有控制权。

  • 开发者对于运输层的控制仅限于:

    • 选择运输层协议
    • 也许能设定几个运输层参数,如最大缓存、最大把报文段长度等
  • 进程寻址:

    • 接收进程需要有个地址:

      • 主机的地址
      • 定义在目的主机中的接收进程的 标识符

3、可供应用程序使用的运输服务

  • (1)可靠数据运输(reliable data transfer)
  • (2)吞吐量
    • 可用吞吐量就是发送进程能够向接收进程交付的比特速率,随时间波动。
    • 运输层协议能够以某种特定的速率提供确保的可用吞吐量。
    • 具有吞吐量要求的应用程序被称为带宽敏感的应用
    • 弹性应用能够根据情况或多或少地利用可供使用的吞吐量。Email、FTP、Web传送都属于弹性应用。
  • (3)定时
  • (4)安全性

4、因特网提供的运输服务

  • 因特网为程序提供两个运输层协议,即UDP和TCP。

    • TCP服务

      • 面向连接的服务:在应用层数据报文开始传送前,TCP让客户和服务器互相交换运输层控制信息(三次握手)。在握手阶段后,一个TCP连接就在两个进程之间的套接字之间建立了。这条连接是全双工的,即连接双方的进程可以在此连接上同时进行报文收发。
      • 可靠数据传送服务:通信进程能够依靠TCP,无差错、按适当顺序交付所有发送的数据。
      • 安全套接字层(Secure Sockets Layer,SSL)
    • UDP服务
      • UDP是一种不提供不必要服务的轻量级运输协议,它仅提供最小服务,是无连接的,因此两个进程通信前是没有握手过程。

5、应用层协议

应用层协议(Application-layer protocol)定义了运行在不同端系统上的应用程序进程如何相互传递报文。特别是应用层协议定义了:

1、交换的报文类型,例如请求报文和响应报文。
2、各种报文类型的语法,如报文中的各个字段以及这些字段是如何描述的。
3、字段的语义,即这些字段中包含的信息的含义。
4、一个进程何时以及如何发送报文,对报文进行响应的规则。

HTTP:超文本传输协议。

SMTP:简单邮件传输协议

6、网络应用

(1)Web和HTTP

  • Web的应用层协议是 超文本传输协议(HyperText Transfer Protocol,HTTP),它是Web的核心。

  • HTTP由两个程序实现:一个客户程序、一个服务程序。它们分别运行在不同的端系统中,通过交换HTTP报文进行会话。

  • HTTP定义了这些报文的结构以及客户和服务器进行报文交换的方式。

  • Web页面(Web page)(也叫文档) 是由对象组成的。一个对象只是一个文件。诸如:一个HTML文件等。

  • HTTP并不保存客户任何信息,所以HTTP是一个无状态协议(Stateless Protocol)。

  • HTTP报文格式

    • 请求报文

      • 典型HTTP请求报文:
        GET /somedir/page.html HTTP/1.1
        HOST: www.someschool.edu
        Connection: close
        User-agent: Mozilla/5.0
        Accept-language: fr
        

    • 响应报文

      • 典型HTTP响应报文:
        HTTP/1.1 200 OK
        Connection: close
        Date: Tue, 09 Aug 2011 15:44:04 GMT
        Server: Apache/2.2.3 (centOS)
        Last-modified: Tue, 09 Aug 2011 15:44:04 GMT
        Content-Length: 6821
        Coneny-Type: text/html常见状态码:
        200 OK: 请求成功,信息在返回的响应报文中
        301 Moved Permanently: 请求的对象已被永久转移了,新的URL定义在响应报文的Location:首部行中。客户软件将自动获取新                        的URL。
        400 Bad Request: 一个通用差错代码,指示该请求不能被服务器理解。
        404 Not Found: 请求的文档不在服务器上。
        505 HTTP Version Not Supported: 服务器不支持请求报文使用HTTP协议版本。
        
  • 用户与服务器的交互—cookie

    cookie有四个组件:1、在HTTP请求报文中的一个cookie首部行。2、在HTTP响应报文中的一个cookie首部行。3、在用户端系统中保留一个cookie文件,并有用户浏览器进行管理。4、位于Web站点的一个后端数据库。
    

  • Web缓存

    Web缓存器(web cache)也叫代理服务器。它是能够代表初始Web服务器来满足HTTP请求的网络实体。

    web缓存器有自己的磁盘存储空间,并在存储空间中保存最近请求过对象的副本。

(2)FTP

  • HTTP和FTP都是文件传输协议,并且有很多共同的特点:

    • 它们都运行在TCP上。
  • 显著区别:
    • FTP使用了两个并行的TCP连接来传输文件,一个是控制连接(control connection),一个是数据连接(data connection)。
    • 控制连接用于两主机之间传输控制信息,如用户标识、口令、改变远程目录口令以及存放、获取命令。
    • 数据连接用于实际发送一个文件。
    • 因为FTP使用一个独立的控制连接,所以我们也称FTP的控制信息是带外(out-of-band)传送的。
    • HTTP协议是在传输文件的同一个TCP连接中发送请求和响应首部行的。因此,也可以说HTTP是带内(in-band)传送控制信息的
  • 对于FTP传输而言,控制连接贯穿了整个用户会话期间,但对话的每一次数据传输都要建立一个新的数据连接(即数据连接是非持续的)。

(3)SMTP

  • 因特网上的电子邮件webEmail

    • 组成:用户代理(user agent)、邮件服务器(mail server)、简单邮件传输协议(simple mail transfer protocol, SMTP
  • SMTP是因特网电子邮件中的应用层协议,它是用TCP可靠数据传输服务。

  • SMTP 与 HTTP相比:

    • 两个协议都用于两主机之间传输文件

      • HTTP是客户端向服务器传输文件(也称为对象)
      • SMTP是服务器向服务器传输文件(即电子邮件报文)
    • 都使用持续连接
    • 主要区别:
      • HTTP是拉协议(pull-protocol):TCP从客户端发起,从服务端拉取信息
      • SMTP是推协议(push-protocol): 发送邮件服务器把文件推向接收文件服务器。
      • SMTP要求每个报文(包括它们的body)使用7bit ASCII 码格式。HTTP则不受限制。
      • 处理一个包含文本、图形的文档时,HTTP将每个对象封装到它自己的HTTP响应报文中,而SMTP则是将所有报文对象放到一个报文中。
  • 电子邮件协议及其通信实体

    • 用户代理获取服务器报文间的协议:POP3、IMAP、HTTP:

      • 第三版邮局协议(Post Office Protocol, POP3
      • 因特网邮件访问协议(Internet Mail Access Protocol, IMAP

(4)DNS

  • 因特网的目录服务(Domain Name System,DNS),主要进行主机名到IP地址的转换服务。
  • 主机名——IP地址
    • 例如:www.xxx.com —— 192.168.0.0
  • DNS是:
    • 一个分层的DNS服务器实现的分布式数据库。
    • 一个使主机能够查询分布式数据库的应用层协议。
    • DNS协议运行在UDP上,使用53号端口。
  • DNS还提供了一些重要服务:
    • 主机别名(host aliasing): 应用程序可以调用DNS来获得主机别名对应的规范命名以及主机IP地址。
    • 邮件服务别名(mail server aliasing)
    • 负载分配(load distribuation): DNS也用于在冗余服务器之间进行负载分配。一个IP地址集合因此与同一个规范主机名相联系。DNS数据库存储这些IP地址集合。
  • DNS工作原理:
    • 集中式DNS服务器弊端:

      • 单点故障(a single point of failure):DNS服务器崩溃,整个因特网随之瘫痪。
      • 通信容量 (traffic volume):单个DNS服务器不得不处理所有的DNS查询
      • 远距离的集中式数据库(distant centralized database):远距离查询需要经过低速和拥塞的链路。导致严重时延。
      • 维护(maintenance):中央数据库庞大,每新加主机就得更新。
    • DNS采用分布式设计:
      • 根DNS服务器:服务器的网络。
      • 顶级域(Top-Level Domain,TLD)服务器:负责顶级域名如:com、org、net、edu以及所有国家的顶级域名如uk、ca、jp等。
      • 权威DNS服务器:在因特网上具有公共可访问主机的每个组织机构必须提供公共可访问的DNS记录。这些记录将这些主机名映射为IP地址。
      • 本地DNS服务器:一个本地DNS服务器严格来说并不属于该服务器的层次结构,但它对DNS层次结构是重要的。每个ISP(大学、一个系、一个公司、一个居民区的ISP)都有一台本地DNS服务器。
    • DNS查找过程
    • DNS记录和报文
      • 共同实现DNS分布式数据库的所有DNS服务器存储了 资源记录(Resource Record, RR
      • RR 提供了主机名到IP地址的映射。每个DNS响应报文包含了一条或多条资源记录。
      • 资源记录是一个包括了下列字段的4元组:(Name,Value,Type,TTL),其中TTL是该记录的生存时间
      • 例如:(relay1.bar.foo.com,145.37.93.126,A) 就是一条类型A的记录。

(5)P2P

  • 点对点协议(point to point, P2P): 成对间歇连接的主机(对等方)彼此之间直接通信。
  • 适合于P2P设计的应用:
    • 文件分发:

7、套接字编程

(1)TCP套接字编程

(2)UDP套接字编程

三、运输层

1、概述

  • 运输层位于应用层和网络层之间,是分层的网络体系结构的重要部分。
  • 运输层为运行在不同主机之间的应用进程提供了 逻辑通信 (logic communication)功能。
  • 运输层是在端系统实现的:
    • 在发送端,运输层将从发送应用程序进程接收到的报文转换成运输层分组——运输层 报文段(segment)
    • 然后运输层将这些运输层报文段传递给网络层,网络层将其封装成网络层分组(数据报)。并向目的地发送。
      • 网络层路由器仅作用于该数据报的网络层字段,不检查其里面封装的运输层报文段。
    • 在接收端,网络层从数据报中提取运输层报文段,并将该报文段向上交给运输层。运输层则接收处理收到的报文段,使该报文段为数据应用进程使用。

2、多路复用和多路分解

  • UDP(用户数据报协议)和TCP(传输控制协议)最基本的责任是将两个端系统间的交付服务扩展为运行在端系统上的两个进程之间的交付服务。将主机之间交付扩展到进程间交付被称为 运输层的多路复用(transport-layer multiplexing)和 多路分解(demultiplexing).
  • 每个运输层报文段中都有几个字段,在接收端,运输层检查这些字段,标识出接收套接字,进而将报文段定向到该套接字。将输出层报文段中的数据交付到正确的套接字的工作被称为 多路分解(demultiplexing)
  • 在源主机从不同套接字中收集数据块,并为每个数据块封装上首部信息(用于以后分解)从而生成报文段,然后将这些报文段传输给网络层。所有这些工作被称为多路复用。
  • 运输层多路复用要求:
    • 1、套接字有唯一标识符
    • 2、每个报文段有特殊字段来指示该报文段所要交付到的套接字,这些特殊字段是 源端口号字段(source port number filed)和 目的端口号字段(destination port number filed)。

3、无连接运输:UDP

(1)UDP报文段结构

  • 首部:源端口号、目的端口号、长度、检验和

    • 长度字段指示了UDP报文段中的字节数(首部+数据)
    • 接收方使用检验和来检查该报文是否出现了差错。

(2)UDP检验和:

  • UDP检验和提供了差错检测功能:检测传输过程中其中比特是否发生了改变。

(3)可靠数据传输原理

  • 数据可通过一条可靠信道完成可靠传输——可靠数据传输协议(reliable data transfer protocol)

  • 构造可靠数据传输协议

    • 1、经完全可靠信道的可靠数据传输:rdt 1.0

      • 最简单的情况:底层信道是完全可靠的,称为rdt1.0,该协议本身是简单。
      • 有限状态机(Finite-State Machine,FSM): 发送方和接收方中FSM都只有一个状态。
    • 2、经具有比特差错信道的可靠数据传输:rdt2.0

      • 自动重传请求(Automatic Repeat reQuest,ARQ)具有无应答重传机制的可靠数据传输协议。

      • ARQ还需要另外三种协议来处理存在比特差错的情况:

        • 差错检测
        • 接收方反馈
        • 重传

    • 3、流水线可靠数据传输协议—rdt 3.0

4、面向连接的运输:TCP

(1)TCP连接

  • TCP被称为是面向连接的(connection-oriented),这是因为在一个应用进程可以开始向另一个应用进程发送数据之前,这两个进程必须先相互“握手”,即它们必须相互发送某些预备报文段,以建立确保数据传输的参数。作为TCP连接建立的一部分,连接的双方都将初始化与TCP连接相关的许多TCP状态变量。

(2)TCP报文段结构

  • 最大报文段长度:(Maximum Segment Size,MSS);
  • TCP 报文段由首部字段和一个数据字段组成。
  • TCP首部字段:
    • 32bit 的 序号字段(sequence number filed)和 32bit 的 确认号字段(acknowledgment number filed)。这些字段被TCP发送方和接收方用来实现可靠数据传输服务。
    • 16bit 的 接收窗口字段(receive window field),该字段用于流量控制。用于指示接受方愿意接受的字节数量。
    • 4bit的 首部长度字段(header length filed),该字段指示了以32bit的字为单位的TCP首部长度。由于TCP选项字段的原因,TCP首部的长度是可变的。通常,选项字段为空,所以TCP首部的典型长度为20字节。
    • 可选和变长的 选项字段(options filed),该字段用于发送方和接收方协商最大报文段长度(MSS)时,或者在高速网络环境下用作窗口调节因子时使用。首部字段中还定义了一个时间戳选项。
    • 6bit的 标志字段(flag filed):ACK比特用于指示确认字段中的值是有效的。即该报文段中包括一个对已被成功接收报文段的确认。RST、SYN、FIN比特用于连接建立和拆除。当PSH比特被设置的时候,就指示接收方应立即将数据上交给上层。URG比特用来指示报文段里的存在着被发送端的上层实体设置为“紧急”的数据。紧急数据的最后一个字节由16bit的紧急数据指针指出。当紧急数据存在并指向紧急数据尾的指针的时候,TCP必须通知接收端的上层实体。

(3)序号和确认号

  • TCP把数据看成一个无结构、有序的字节流。序号是建立在传送的字节流之上,而不是建立在传送的报文段的序列上。
  • 一个报文段的序列号,因此是该报文段首字节的字节流编号。
  • 举例:假设一个数据流是由一个包含500 000字节的文件组成,其中MSS为1000字节,数据流的首字节编号为0,第二报文段分配序号是1000,第三报文段分配序号是2000,依次类推。每一个序号被填入到相应TCP报文段首部序号字段中。
  • 确认号:当接受字节流因某种原因中断时,接收方向发送方发送报文段时,会在该报文段中的确认号字段中填写第一个丢失字节的序号。

(4)三次握手(建立一条TCP连接)

第一步:客户端的TCP先向服务端的TCP发送一个特殊的TCP报文段。该报文段不包括应用层数据。但在报文段的首部,SYNbit 被置为1。因此这个特殊报文段被称为SYN报文段。另外,客户端会随机选择一个初始序号(client_isn),放置于该起始的TCP SYN报文段的序号字段中。该报文会封装在一个IP数据报中,并发送给服务器。第二步:当TCP SYN报文段的IP数据到达服务器主机,服务器会提取TCP SYN报文段,为该TCP连接分配缓存和变量,并向该客户TCP发送允许连接的报文段。这个允许连接的报文段也不包含应用层数据,但首部包含三个重要信息。首先,SYN bit 被置为1,其次,首部的确认号字段被置为client_isn + 1,最后,服务器选择自己的初始序号(server_isn)放到首部的序号字段中。该允许连接的报文段被称为SYNACK报文段。第三步:在收到SYNACK报文段中,客户也要给该连接分配缓存和变量,客户端则向服务端发送另一个报文段,作用是对服务器的允许连接报文段进行了一个确认(客户端通过将server_isn+1放置到TCP报文段首部的确认字段中来完成)。因为连接已经建立了,所以SYN bit被置为0,该三次握手的第三个阶段可以在报文段负载中携带客户到服务器的数据。

(4)四次挥手(关闭一条TCP连接)

第一步:客户应用进程发起一个关闭连接命令,client TCP 会向 server TCP发送一个特殊的TCP报文段。报文段中首部FIN bit 被置为1
第二步:server收到后会发送一个确认报文段,
第三步:然后再发送一个服务端的终止报文段,报文段中首部FIN bit 被置为1
第四步:客户端对这个终止报文段进行确认。

四、网络层

1、概述

​ 网络层将运输层报文段封装成一个网络层的分组,即 数据报

​ 路由器不运行应用层、传输层的协议。

其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。

2、转发和路由选择

  • 网络层的作用是将分组从一台主机移动到另一台主机,实现需要两种重要的网络层功能:

    • **转发:**当一条分组到达路由器的一条输入链路时,路由器将分组移动到适当的输出链路。
    • **路由选择:**当分组从发送方流向接收方时,网络层必须决定这些分组所采用的路由或路径。计算这些路径的算法被称为路由选择算法。

3、网络服务模型

  • 网络服务模型定义了分组在发送与接收端系统之间的端到端运输特性。
  • 在发送主机中,当运输层向网络层传递一个分组时,能由网络层提供的特定服务包括:
    • 确保交付。该服务确保分组将最终到达目的。
    • 具有时延上界的确保交付。该服务不仅确保分组的交付,而且在特定的主机到主机时延上界内(例如在100ms内)交付。
    • 有序分组交付:该服务确保分组以他们发送的顺序到达目的地。
    • 确保最小带宽。这种网络层服务模仿在发送和接收主机之间的一条特定比特率的传输链路行为。
    • 确保最大时延抖动,该服务确保位于发送方的两个相继分组之间的时间量等于在目的地接收到他们之间的时间量。
    • 安全性服务。 使用仅由源和目的主机所知晓的一个秘密会话秘钥,在源主机中的网络层能够加密向目的主机发送的所有数据报负载。
    • 两种重要的ATM服务模型:

      • 恒定比特率(Constant Bit Rate, CBR)ATM网络服务:
      • 可用比特率(Available Bit Rate, ABR)ATM网络服务:

4、虚电路和数据报网络

  • 仅在网络层提供连接服务的计算机网络称为虚电路网络(Virtual-Circuit,VC)
  • 仅在网络层提供无连接服务的计算机网络称为 数据报网络(datagram network)
  • 在网络层中,这些服务是由网络层向运输层提供的主机到主机的服务。
  • 在运输层中,这些服务则是运输层向应用层提供的进程到进程的服务。

(1)虚电路网络

  • 一条虚电路的组成如下:

    • 源和目的主机之间的路径(即一系列链路和路由器)。
    • VC号,沿着该路径的每段链路的一个号码。
    • 沿着该路径的每台路由器中的转发表表项。
  • 在虚电路中三个明显不同的阶段:
    • 虚电路建立:
    • 数据传送
    • 虚电路拆除

(2)数据报网络

  • 在数据报网络中,每当一个端系统要发送分组时,他就为该分组加上目的端系统的地址,然后将分组推进网络中。

5、路由器工作原理

  • 路由器体系结构

    • 输入端口
    • 交换结构
      • 经内存交换
      • 经总线交换
      • 经互连网络交换
    • 输出端口
    • 路由选择处理器

6、网际协议:因特网中的转发和编址

  • 网际协议(IP):因特网编址和转发是IP的重要组件

  • 目前在使用的网际协议版本有两个:IPv4、IPv6

  • ICMP(Internet Control Message Protocol)Internet控制报文协议

    RIP(Routing Information Protocol)路由信息协议

    IP(Internet Protocol )(网际互连协议)

(1)数据报格式

  • 版本号:这4bit规定了数据报的IP协议版本。
  • 首部长度:因为一个IPv4数据报可包含一些可变数量的选项(这些变量包括在IPv4数据报首部中),故需要用4bit来确定IP数据报中数据部分实际从哪里开始。大多数IP数据报不包含选项,所以一般IP数据报具有20字节的首部。
  • 服务类型(TOS):TOS包含在IPv4首部中,以便使不同类型的IP数据报能相互区别开来。
  • 数据报长度:IP数据报的总长度
  • 标识、标志、片偏移:这三个字段跟IP分片有关,IPv6 不允许在路由器上对分组分片
  • 寿命(Time-To-Live,TTL):用来确保数据报不会永远在网络中循环。每当数据报由一台路由器处理时,该字段值减1,若TTL字段为0,则该数据报必须丢弃。
  • 首部检验和:用于帮助路由器检测收到的IP数据报中的bit错误
  • 源和目的IP地址
  • 选项:该字段允许首部字段被扩展,IPv6已经去掉了IP选项。
  • 数据(有效载荷)

(2)IP数据报分片

  • 一个链路层帧能承载的最大数据量叫做最大传输单元(Maximum Transmission Unit, MTU
  • 将IP数据报中的数据分片成多个较小的IP数据报,用单独的链路层帧封装这些较小的IP数据报,然后向输出链路上发送这些帧。每个这些较小的数据报都被称为 片(fragment)

(3)IPv4编址

  • ​ 主机和物理链路之间的边界叫接口
  • 获取主机地址:
    • 动态主机配置协议(Dynamic Host Configuration,DHCP):允许主机自动获取(被分配)一个IP地址。
    • 由于DHCP具有能将主机连接进一个网络的网络相关方面的自动能力,又常被称为即插即用协议。
  • 网络地址转换(Network Address Translation,NAT)

7、因特网控制报文协议

ICMP(Internet Control Message Protocol)Internet控制报文协议

  • ICMP通常被认为是IP的一部分,但从体系结构上讲它是位于IP之上的,因为ICMP报文是承载在IP分组中的。

8、IPv6

  • IPv6数据报格式

9、路由选择算法

(1)链路状态路由选择算法

(2)距离向量路由选择算法

(3)层次路由选择

五、链路层

1、概述

  • 将运行链路层协议的任何设备均成为 结点(node),结点包括主机、路由器、交换机和WiFi接入点。

  • 沿着通信路径连接相邻结点的通信信道称为 链路(link)

(1)链路层提供的服务

  • 链路层协议可能提供的服务包括:

    • 成帧(framing):每个网络层数据报传输经链路传送前,链路层协议将其用链路层帧封装起来。一个帧由一个数据字段和若干首部字段组成。其中网络层数据报就插在数据字段中。
    • 链路接入:媒体访问控制(Medium Access Control,MAC)协议规定了帧在链路上传输的规则。
    • 可靠交付:保证无差错的经链路层移动每个网络层数据报。
    • 差错检测和纠正

(2)链路层在何处实现

  • 链路层主体部分是在 **网络适配器(network adapter)**中实现的。
  • 网络适配器有时也称为 网络接口卡(Network Interface Card, NIC),适配器核心是链路层控制器。

2、差错检测和纠正技术

(1)奇偶校验

(2)检验和方法

(3)循环冗余检测

3、多路访问链路和协议

  • 网络链路有两种类型:点对点链路 和 广播链路。
  • 我们能够将任何多路访问协议划分为3种类型之一:信道划分协议、随机接入协议、轮流协议

(1)信道划分协议

​ 时分多路复用(TDM)

​ 频分多路复用(FDM)

​ 码多分址(Code Division Multiple Access,CDMA)

(2)随机接入协议

​ 在随机接入协议中,一个传输结点总是以信道的全部速率进行发送。当有碰撞时,涉及碰撞的每个结点反复的重发它的帧。直到该帧无碰撞的通过为止。

(3)轮流协议

4、交换局域网

(1)链路层寻址和ARP

  • MAC地址

    • 主机或路由器的适配器(即网络接口)具有链路层地址。
    • 链路层地址有各种不同的称呼:LAN地址、物理地址或Mac地址
  • 地址解析协议(ARP)
    • 因为存在网络层地址(IP)和链路层地址(Mac) ,所以它们之间需要相互转换,这是地址解析协议(Address Resolation Protocol,ARP)的任务。

(2)以太网

  • 以太网帧

(3)链路层交换机

5、数据中心网络

(1)负载均衡

  • 负载均衡器的任务是向主机分发请求,以主机当前的负载作为函数来在主机之间均衡负载。

六、无线网络和移动网络

1、概述

  • 无线网络体系结构:

    • 无线主机:wireless host,运行应用程序的端系统设备
    • 无线链路:无线通信链路(wireless communication link)
    • 基站:base station ,负责向与之关联的无线主机发送数据和从主机哪里接收数据,

2、无线链路和网络特征

  • 有线链路和无线链路的区别

    • 递减的信号强度,即路径损耗,电磁波穿透物体强度减弱
    • 来自其他源的干扰,频段冲突
    • 多径传播:当电磁波一部分受物体和地面反射,在接收方和发送方之间走了不同长度的路径。则会出现多径传播
  • 信噪比:(Signal-to-Noise Ratio, SNR )是所收到的信号和噪声强度的相对测量。SNR度量单位是分贝(dB).
  • CDMA:码分多址协议(Code Division Multiple Access,CDMA)属于信道划分协议一族。
    • 当不同主机使用一个共享媒体通信时,需要有一个协议来保证多个发送方发送的信号不在接收方互相干扰。

3、WiFi:802.11 无线LAN

(1)802.11体系结构

​ 802.11体系结构的基本构建模块是基本服务集(Basic server set,BSS)。

​ 一个BBS包含一个或者多个无线站点和一个接入点(Access Point,AP)(中央基站)。

(2)信道关联

服务集标识符(Service Set Identifier,SSID)

4、802.11 MAC协议

5、IEEE 802.11 帧

(1)有效载荷与CRC字段

​ 帧的核心是有效载荷,通常由一个IP数据报或者ARP分组组成。

​ 802.11 帧 包括一个循环冗余校验(CRC),从而接收方可以检测所收到的帧中的比特错误。

(2)地址字段

​ 802.11 帧中具有4个地址字段,其中每个都可以包含一个6字节的MAC地址

(3)序号、持续期和帧控制字段

6、802.11以外的标准:蓝牙和zigbee

IEEE 802.11 WiFi 标准主要针对相距多大100m的设备间的通信。

IEEE 802.15.1 短距离标准,蓝牙

IEEE 802.15.4 长距离标准,zigbee

(1) 蓝牙

​ IEEE 802.15.1 网络以小范围、低功率和低成本运行。它的本质是一个低功率、小范围、低速率的“电缆替代”技术。

​ 有时被称为无线个人区域网络(Wireless Personal Area NetWork,WPAN)标准。

​ IEEE 802.15.1 是自组织网络: 不需要网络基础设施来互连802.15.1设备。

(2)ZigBee

IEEE的第二个个人区域网络标准802.14.5 [IEEE 802.15.4],被称为ZigBee。适用于家庭温度、光线传感器、安全设备、墙上安装的开关。

特点:简单、低功率、低工作周期、低成本设备。

ZIgBee定义了20Kbps、40Kbps、100Kbps、250Kbps信道速率,这取决于信道的频率

7、蜂窝因特网的接入

  • 全球移动通信系统:GSM(早期:Group Special Mobile)
  • 1G:第一代系统,模拟FDMA系统,专门用于语音通信。
  • 2G:数字2G系统,初始2G系统也是为语音而设计,后来扩展了对数据(Internet)的支持(2.5G)
  • 3G:支持语音和数据,增强数据能力和更高速的无线接入链路。

(1)2G蜂窝网体系结构:与电话网的语音连接

蜂窝(cellular):由一个蜂窝网覆盖的区域被分成许多被称作小区(cell)的地理覆盖区域,每个小区都有自己的收发基站(Base Transceiver Stiation,BTS)负责向位于其小区内的移动站点发送和接收信号。

(2)3G蜂窝数据网:将因特网扩展到蜂窝用户

(3)4G:LTE

​ 由3GPP 提出的4G **长期演化(4G Long-Term-Evolution,LTE)**标准,与3G相比有两个重要创新:

  • 演化的分组核(Evolved Packet Core, EPC),EPC是一个简化的全IP核心网络。该网络将分离的电路交换蜂窝语音网和分组交换蜂窝数据网统一起来。

    • LTE无线电接入网(LTE Radio Access network)。LTE在下行信道采用频分复用和时分复用结合的方法,称之为正交频分复用(Orthogonal Frequence Division Multiplexing ,OFDM )技术。

8、移动管理

(1)移动性

七、多媒体网络

1、视频的性质

  • 高比特率(high bit rate)
  • 可被压缩,在视频中有两种类型的冗余,它们可用来进行视频压缩:
    • 空间冗余是给定图像的内部冗余。从直觉上讲,一个主要由空白组成的图像具有高度的冗余,能够有效地压缩而不会明显降低图像质量。
    • 时域冗余反应一幅图像和后续图像的重复程度。例如:如果一幅图像和后续图像完全一致,没有理由在对后续图像进行编码。

2、音频的性质

  • 音频转数字信号:

    • 模拟音频信号首先以某种固定速率采样,例如每秒8000样本。每个采样值是一个任意的实数。
    • 每个采样值被“四舍五入”为有限个数值中的一个,这种操作被称之为量化(Quantization)。这些量化值通常是2的幂。
    • 每个量化值由固定数量的比特表示,例如256个量化值,那么每个值(每个音频采样)用一个字节表示。所有的样本的比特表示级联在一起就形成了该信号的数字表示。举例来说,如果一个模拟信号以每秒8000个样本值采样,而且每个样本被量化并用8比特表示,则得到的数字信号就是,每秒64000比特。通过音频扬声器播放,这个数字信号则能够转换回来(解码),形成一个模拟信号。

3、多媒体网络应用的类型

(1)流式存储音频/视频

  • 流:在流式存储视频应用中,客户开始从服务器接收文件几秒后,通常就开始播放视频。这意味着当客户正在从视频的一个位置开始播放时,与此同时正在从服务器接收该视频的后续部分。这种技术被称为流(streaming)。它避免了在开始播放之前必须下载整个视频。
  • 相互作用:因为媒体是预先录制的,用户可以对多媒体内容进行暂停、重新配置前进、重新配置倒退、快进等操作。从一个客户提出这种请求到该动作在客户端表现出来。可接受的响应时间应该小于几秒。
  • 连续播放:一旦视频开始播放,它应该根据初始记录的时序进行。因此,为了在客户端播放,必须从服务器中及时接收数据。否则,用户经历视频帧停滞(这时客户等待延迟的帧)或帧跳过(这时客户漏掉延迟的帧)。

(2)会话式IP语音/视频

因特网电话(Internet telephony):也被称为IP语音(Voice-over-IP,VoIP)

例如:QQ语音、微信语音等。

(3)流式实况音频/视频

电台广播、电视、直播平台。

4、流式存储视频

流式视频系统可分为三种类型:UDP流、HTTP流、适应性HTTP流(adaptive HTTP Streaming)。

(1)UDP流

(2)HTTP流

  • 每个采样值被“四舍五入”为有限个数值中的一个,这种操作被称之为量化(Quantization)。这些量化值通常是2的幂。
  • 每个量化值由固定数量的比特表示,例如256个量化值,那么每个值(每个音频采样)用一个字节表示。所有的样本的比特表示级联在一起就形成了该信号的数字表示。举例来说,如果一个模拟信号以每秒8000个样本值采样,而且每个样本被量化并用8比特表示,则得到的数字信号就是,每秒64000比特。通过音频扬声器播放,这个数字信号则能够转换回来(解码),形成一个模拟信号。

3、多媒体网络应用的类型

(1)流式存储音频/视频

  • 流:在流式存储视频应用中,客户开始从服务器接收文件几秒后,通常就开始播放视频。这意味着当客户正在从视频的一个位置开始播放时,与此同时正在从服务器接收该视频的后续部分。这种技术被称为流(streaming)。它避免了在开始播放之前必须下载整个视频。
  • 相互作用:因为媒体是预先录制的,用户可以对多媒体内容进行暂停、重新配置前进、重新配置倒退、快进等操作。从一个客户提出这种请求到该动作在客户端表现出来。可接受的响应时间应该小于几秒。
  • 连续播放:一旦视频开始播放,它应该根据初始记录的时序进行。因此,为了在客户端播放,必须从服务器中及时接收数据。否则,用户经历视频帧停滞(这时客户等待延迟的帧)或帧跳过(这时客户漏掉延迟的帧)。

(2)会话式IP语音/视频

因特网电话(Internet telephony):也被称为IP语音(Voice-over-IP,VoIP)

例如:QQ语音、微信语音等。

(3)流式实况音频/视频

电台广播、电视、直播平台。

4、流式存储视频

流式视频系统可分为三种类型:UDP流、HTTP流、适应性HTTP流(adaptive HTTP Streaming)。

[外链图片转存中…(img-P7rWtseT-1616500064522)]

(1)UDP流

(2)HTTP流

计算机网络篇—《自顶向下方法》学习笔记相关推荐

  1. 「计算机网络:自顶向下方法阅读笔记」套接字编程:生成网络应用

    <计算机网络:自顶向下方法>阅读笔记系列 学习套接字编程就是探讨一下网络应用程序是如何实际编写的. 先回顾一下套接字:网络应用是由一对程序(客户程序和服务器程序)组成,位于两个不同的端系统 ...

  2. 计算机网络--自顶向下方法 学习笔记之计算机网络和因特网

    什么是Internet? 因特网的具体构成描述 因特网是一个世界范围的计算机网络,即它是一个互联了遍及全世界数十亿计算设备的网络. 有趣的因特网互联设备 数以亿计的互联计算设备:便携机.智能手机.平板 ...

  3. 计算机网络--自顶向下方法学习笔记

    第一章 计算机网络和因特网 协议:定义了两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送和/或接收一条报文或其他事件所采取的动作. 分组:将源报文划分为较小的数据块 存储转发传输:交换机能够 ...

  4. 计算机网络 自顶向下方法 学习笔记 第一章

    第一章 计算机网络和因特网 1.1 什么是因特网 1.1.1 网络 1.1.2 计算机网络 1.1.2.1 计算机网络的分类 1.1.3 互联网(从具体构成角度了解Internet) 1.1.4 协议 ...

  5. 计算机网络:自顶向下方法读书笔记(四)

    2.3 因特网中的电子邮件 电子邮件系统主要由3个内容组成:用户代理(useragent).邮件服务器(mail server).简单邮件传输协议(Simple Mail Transfer Proto ...

  6. 计算机网络:自顶向下方法读书笔记(三)

    第二章 应用层 2.1 应用层协议原理 2.1.1 网络应用程序体系结构 客户-服务器体系结构(client-server architecture) #mermaid-svg-RnzvLSwSovg ...

  7. 计算机网络:自顶向下方法 笔记

    计算机网络:自顶向下方法 笔记 综述 因特网部件图例 交换方式 分组交换 电路交换 频分复用 时分复用 对比 五层/七协议 一个传输实例 攻击 DOS攻击 应用层 应用程序结构 客户-服务器结构 P2 ...

  8. 【计算机网络:自顶向下方法】Chapter5 网络层:控制平面

    本系列文章为笔者在学习b站中科大郑烇老师的计算机网络课程时(郑老师讲得很清晰!!),结合课程PPT与<计算机网络:自顶向下方法>(第七版)所作的学习笔记,部分图片源自课程PPT或书中,如有 ...

  9. 《计算机网络:自顶向下方法(原书第6版)》一第1章

    本节书摘来华章计算机<计算机网络:自顶向下方法(原书第6版)>一书中的第1章 ,第1.1节,(美)James F.Kurose Keith W.Ross 著 陈 鸣 译 更多章节内容可以访 ...

  10. 《计算机网络:自顶向下方法(原书第6版)》一1.8 小结

    本节书摘来华章计算机<计算机网络:自顶向下方法(原书第6版)>一书中的第1章 ,第1.8,(美)James F.Kurose Keith W.Ross 著 陈 鸣 译 更多章节内容可以访问 ...

最新文章

  1. Centos6.6下载
  2. 华为开源CTR Benchmark,学术界SOTAs的照妖镜?
  3. JavaScript 学习(2) - JS的内建对象
  4. 51 Nod 1007 正整数分组【类01背包】
  5. JS中闭包的应用自定义JS模块
  6. 移动端 fixed 固定按钮在屏幕下方,然后按钮被键盘顶上来...顶上来了有没有~
  7. 信息学奥赛一本通C++语言——1127:图像旋转
  8. SpringBoot项目集成Mybatis Plus(三)分页插件
  9. 矩阵论与计算机英语论文,矩阵论翻译论文[8页].pdf
  10. IOS高级开发之多线程(五)NSOperation 2
  11. [学习笔记] JavaScript 检测数组
  12. python能做什么程序-学完python可以做什么?
  13. tiny4412的I2C驱动实现案例(基于MMA7660)自己写的,亲测有效
  14. 信息安全技术国家相关标准一览表
  15. 移动物联网卡哪里可以办理
  16. 科比球衣退役仪式 | 科比演讲
  17. 网页百度网盘上传显示服务器错误,win7系统下登陆百度浏览器提示连接服务器错误的方案?...
  18. 语音计算机音乐学猫叫,语音控制开启家庭背景音乐系统新篇章
  19. php输出问号,所有特殊字符都是PHP / HTML中的问号
  20. oracle 10g R2数据库的安装部署

热门文章

  1. Lodash是如何实现深拷贝的
  2. P1339 [USACO09OCT]热浪Heat Wave(最短路水题)
  3. OpenCV—Python 对比度与亮度调整
  4. 亲爱的,听说做完这一百件事,我们就不用分手了。dear,i miss you...
  5. 使用jquery制作漂亮相册集
  6. 设计意念的形成-如何产生灵感,创造形象
  7. 全局定义mintUI中toast
  8. 图形学领域的关键算法及源码链接
  9. 连接mysql报错 errorCode 1129, state HY000, Host ‘xxx‘ is blocked because of many connection errors
  10. 高中计算机高效课堂和有效教学模式论文,高效课堂论文范文