计算机网络学习笔记

计算机网络 笔记

朝花夕拾,简要回顾一下计算机网络课程。

概论

文章收藏

计算机网络基础知识

计算机网络常见面试题

为何要进行三次握手和四次挥手

产生和发展

美国国防部 -> ARPANET -> MILNET(军事), ARPANET -> NSFNET

  • 远程联机系统 50s -> 60s
    前端处理机FEP,调制解调器M,终端控制器TC,主机,终端T
    1

  • 计算机-计算机 网络 60s ->70s
    通信子网(路由器和线路),资源子网(服务器和主机) 缺点:无法任意互联,拓展性差
    2

  • 开放式标准化网络 80s -> now
    统一的网络体系结构:OSI,CCITT,TCP/IP

计算机网络定义

参考定义:将若干台具有独立功能的计算机 系统,用某种或多种通信介质连接起来,通过完善的网络协议, 在数据交换的基础上,实现网络资源共享的系统称为计算机网络。

分类

  • 地理:局域网(LAN),城域网(MAN),广域网(WAN)
  • 拓扑结构:星型,环型,总线,不规则型
  • 数据交换方式电路交换(建立,传输,拆除,独占信道资源),分组交换(化整为零,存储转发)

网络协议和网络体系结构

网络协议

一整套通信规程,包括规定要交换的数据格式、 控制信息的格式和控制功能、通信过程中事件执行的次序等。可能涉及到:

  • 物理传输介质
  • 数据编码
  • 收/发端同步
  • 数据传输单元格式
  • 控制通信方向
  • 路由选择
  • 差错控制
  • 流量控制
  • 数据加密,如何加密

网络体系结构

  • 真正的物理通信总是发生在除物理层。除物理层外,其余各对等层实体间都是进行虚拟通信

  • 通信必须在对等层进行,不允许交差通信。

  • 虚拟通信是一种逻辑通信,其意义在于:

    1. 设计本层协议时,不受其他层协议的内部实现影响。
    2. 通过层间接口调用低层提供的服务,只要获得低层足够支 持,虚拟通信就能得以实现。
  • n-1层为n层提供服务。n层直接使用n-1层提供的服务,间接 使用n-2, n-3, …… 层提供的服务。

OSI参考模型

4

OSI参考模型各层功能

  • 物理层 完成原始数据位流在物理介质上传输,而不管位流的信息含义。
  • 数据链路层 完成数据帧在相邻的结点间无差错传输。
  • 网络层 完成报文分组在源/目的结点之间传输。
  • 传输层 完成报文段在源/目的主机进程之间的透明传输。

网络通信↑ 数据处理↓

  • 会话层 进行会话管理,包括通信方向控制(单工,半双工,全双工)
  • 表示层 数据格式转化、数据加密/解密、数据压缩/解压。
  • 应用层 为用户提供各种网络服务,包括文件,电子邮件, 数据库,WWW,DNS等。

Internet参考模型

两个核心协议:TCP和IP,故此模型也称为TCP/IP协议。

5
(Internet和OSI的参考模型比较)

  • 应用层对应OSI的应用层,表示层和会话层。主要包括:FTP, SMTP, TELNET, DNS, HTTP 等

  • 传输层:TCP(传输控制协议Transmission control protocol)
    , UDP(用户数据报协议User Datagram protocol )

  • 互联网层大体对应OSI的网络层,为IP协议。将IP分组以数据报方式从源主机发送到目的主机。

  • 子网层对应物理层和数据链路层:802.3, PPP, 802.5, 千兆百兆以太网等

6

物理层 (中继器、集线器)

数据通信基础

  • 通信系统模型
graph TD A[信源] -->B[变换器] B --> |发送端| C[信道] C --> |接收端| D[反变换器] D -->E[信宿]
  • 模拟通信与数字通信

  • 信道, 两个重要参数:带宽(Hz),误码率(bps)

  • 带宽与数据率的关系
    1.奈奎斯特(无噪声信道)C = 2Hlog2L
    2.香农定理(有噪声信道,L不受限)C =Hlog2(1+S/N)
    (C:数据率,H:带宽,L:数字信号的离散取值数,S/N:信噪比)

  • 波特率:每秒传输的码元的数目 C=Blog2L (B为波特率)

  • 误码率:P = Ne/N

  • 信道通信方向:单工,半双工,双工

  • 数字信号的编码 e.g. 非归零,曼切斯特,差分曼切斯特
    调制(调幅,调频,调相),解调(采样,量化,编码)。

  • 数据同步方式:字符同步位同步

  • 多路复用:频分复用,时分复用

物理层协议


物理层协议实质上是通信接口标准
涉及内容:机械,功能,规格,电气特性

数据链路层 (交换机)

数据帧是传送单位
作用:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。

差错控制

  1. 传输差错的特征
    • 原因:热噪声(持续性,小幅度),冲击噪声(大幅度,突发性)
    • 差错控制方法:通过特殊的编码使接收端能够发现甚至纠错
    • 检错码,纠错码
  2. 编码效率、检错和纠错
    • 码字:信息位,校验位(冗余)
    • 码距:两个码字的不同位数个数
    • 海明距离:两个码字之间的最小距离
    • 编码效率:R=m/n=m/(m+r)
    • 检测d位错,海明距离d+1;纠正d位错,海明2d+1
  3. 海明码
  4. 循环冗余码CRC
  5. 其他编码:奇偶校验码

流量控制

  1. 停-等协议:发一帧后等应答

  2. 滑动窗口协议:连续发送若干后再等待应答

  3. 顺序接受管道协议(回退N):接受窗口尺寸为1的滑动窗口协议,某帧丢失后其后全部丢弃并返回否认。

  4. 选择接收管道协议

上述协议都可看作滑动窗口协议,差别在于窗口尺寸的不同

窗口尺寸的限制:
Wt>=Wr, Wt+Wr<=2^m (帧序号的位数为m)

网络层 (路由器)

实现两个主机系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止

电路交换和分组交换

  • 电路交换(起源 电话)
    建立电路,传输数据,拆除电路
  • 分组交换
    报文,分组(分组序列 源地址 目的地址 分组类型 控制信息 长度 数据)化整为零 存储转发 复用链路

虚电路和数据报

虚电路
通信前发送方和接收方之间必须建立连接(虚电 路),所以虚电路是面向连接的网络服务。

虚电路只是一种逻辑电路,而不是真正的物理电 路。报文分组在虚电路上传输不像再物理线路上 那样中畅通无阻。而是要中间节点的存储转发。

一条链路上允许建立多个虚电路

一旦虚电路建立完毕,本地通信的所有分组必须 经过该虚电路进行。因此,虚电路能够保证分组 的顺序接收。

仅当建立虚电路时需要源/目的结点地址,数据分 组需分配一个虚电路号而无须源/目的结点地址。

数据报
数据报无需建立连接,每个报文分组携带完整的源/目的地址,独立的选择路径,通过 同的路径到达目的主机

  • 无需建立连接就可传输报文分组,因此数据报称为无连接网络服务。
  • 不同的报文分组可以通过不同的路由到达目的主机,先发出的分组未必先,因此数 据报服务不能保证报文分组顺序接收。
  • 每个报文分组携带完整的源/目的地址,独 立的选择路径
数据报子网 虚电路子网
延时 分组传输延时 电路建立,分组传输延时
路由选择 每个分组单独选择路由 建立虚电路时选择路由,以后 所有分组都使用该路由
状态信息 子网无需保存状态信息 每个结点要保存一张虚电路表
地址 每个分组包括源和目的的完 整地址 每个分组含有一个短的虚电路 号
结点失败 的影响 除了在崩溃时正在该结点处 理的分组都丢失外,无其他 影响 所有经过失效结点的虚电路都 要被终止
拥塞控制 如果有足够的缓冲区分配给已 经建立的虚电路,则容易控制

路由选择

路由选择:根据某种策略(静态、动态),选择一条最佳的路径到达目的主机,对路由器而言, 路由选择实质上是选择最佳 输出端口。
虚电路:一次路由选择
数据报:每个分组要进行路由选择

  • 扩散法(洪泛法)
    当结点收到一个分组后,把该分组向除进来的链 路外的所有其他链路转发,结果至少有一个分组 以最快的速度到达目的结点。
    问题:产生大量重复分组 解决:设置下一跳字段每次减少

  • 固定式路由选择
    每个结点保存一张固定的路由表,当某一分组到达时, 根据分组的目的结点,在路由表中找到其对应的输出 链路,然后来分组从该链路转发出去。

  • 最佳路由选择算法

    • 一般采用最短路径算法
    • "费用”的含义非常广泛,可以是距离、平 均通信量、延迟、下跳数等。
    • 将网络看成连通图,每条链路以其“费用” 为权值,通过Dijkstra最短路径算法求出任 意两个结点之间的最短距离。
      动态策略:根据当前拓扑结构和流量的变化来动 态改变路由,又称为自适应路由
  • 孤立路由算法

    • 热土豆算法(与固定路由算法混合使用)
    • 逆向自学习(好消息灵敏,坏消息可以设置时间删除未刷新记录)
  • 集中路由算法

  • 分布路由算法

    • 距离向量(D-V算法):每个结点都保存一张路由表,路由表包 括三个主要字段,即目的地址,最短距离、最佳输 出链路。与固定路由选择不同的是:相邻结点之间 定期交换路由信息(如每隔十秒),并根据最新路 由信息,刷新路由表。
    • 链路状态路由选择(L-S算法):定期广播路由信息并根据最新信息刷新路由表。 发现邻居节点,测量链路开销,产生链路状态分组。对网络反应迅速
D-V L-S
交换路由信息 定期 网络拓扑结构发生 改变(或定期)
路由更新 缓慢 迅速
适用范围 小规模,变化缓慢 的网络 大规模,变化较激 烈的网络

IP协议

IP协议是Internet体系结构的核心协议,已成 为连接异构网络的工业标准。
IP提供无连接的数据报服务,每个IP分组长 度≤64K字节,不能保证分组可靠的,按序到 达,这些留给高层协议解决。
IP协议需要路由协议ICMP,ARP,RARP等 协议支持
ARP: 根据IP地址获取物理地址

报文

地址
地址

  • host-id为零的IP地址表示该网络本身
  • 回送地址:127.0.0.0-127.255.255.254为回送地址。
  • 0.0.0.0:代表的是本主机地址,任何一台主机都可以其表示 自己,仅在系统启动时会使用,启动完成后不再使用。
  • 255.255.255.255:受限广播地址,广播范围为主机所在的网 络。所有网关都不会向外广播。
  • 保留地址:10.0.0.0 172.16~172.31 192.168.0.0~192.158.255.0

子网的规模与借用主机字段的位数有关。借用位数越多,子网规模越大。
采用子网掩码来分离网络号和主机号

ip寻址:每个路由器中都保存一张路由表(无论是静态还是动态)。路由表 的主要项目有两个:网络号、下一跳地址(最佳输出链路)。

其他协议

网际控制报文协议 ICMP
差错报告,询问报文 ping TTL

地址解析协议ARP
是将IP地址转化成MAC,有存则发送,没有则发送ARP请求找相应的MAC地址。
ARP广播

RARP与ARP相反,知道MAC不知道IP。

传输层 (网关)

在计算机网络中,传输层处于非常重要的位置。传输 层,也称为运输层,无论在OIS还是在TCP/IP模型中 ,传输层都处于面向应用部分的最低层和面向通信部分的最高层。(承上启下)进程间通信

网络边缘:主机、存储、服务器、数据库
网络核心:路由器、链路

主要功能:为运行在网络边缘的不 同主机上的各应用程序之间提供通信服务;在应用层和网络层之间充当复用器的作用。各种各样的网络应用,通过传输层的端口被提交统一的网络层,并由IP协议用统一的方式将它们发送到网络中。

提供的服务

  1. 面向连接的服务(TCP)FTP,Telnet 可靠 开销大
  2. 面向无连接的服务(UDP)SNMP,DNS 不提供可靠交付

端口与地址
进程标识符X,利用协议端口(软件端口)。
熟知端口:0~1023
登记端口号:1024~49151
客户端口号,短暂端口号:49152~65535

传输服务访问点:当两个不同主机的两个进程需要通信时 ,必须指明对方是哪一个进程,这个标记称为传输层地 址,也称为传输服务访问点(TSAP)
传输层地址(TSAP) = 主机IP地址+端口号
e.g. 192.168.10.1:80

套接字:为了使应用程序能够方便地使用 协议栈软件进行通信的一种方法。{协议,本地地址,本地端口,远程地址,远程端口} 上联应用,下联网络协议栈。

套接字

流式套接字(stream socket):提供面向连接、可靠的数据传输服务,数据无差错、无重复 的发送,且按发送顺序接收。内设流量控制,避免数据流超 限;数据被看作是字节流,无长度限制。

数据报式套接字(Datagram socket):提供无连接服务。数据包以独立包形式发送,不提供无差错 保证,数据可能丢失或重复,并且接收顺序混乱。

原始套接字(Raw Socket):字允许对较低层次的协议,如IP、ICMP直接访 问,用于检验新的协议的实现。

用户数据报协议(UDP)

UDP 只在 IP 的数据报服务之上增加了很少一点的功能 ,即端口的功能和差错检测的功能。

  • UDP是无连接协议,在发送数据之前不需要建立连接。 不保证可靠交付,同时也不使用拥塞控制。
  • UDP是面向报文,没有拥塞控制,很适合多媒体通信 的要求。
  • UDP支持一对一、一对多、多对一和多对多的交互通信。
  • UDP 的首部开销小,只有 8 个字节。
  • 发送方 UDP 对应用程序交下来的报文,在添加首部后 就向下交付 IP 层。
  • UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。
  • 应用层交给 UDP 多长的报文,UDP 就照样发送,即一 次发送一个报文。
  • 接收方 UDP 对 IP 层交上来的 UDP 用户数据报,在去 除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。
  • 应用程序必须选择合适大小的报文。

传输控制协议(TCP)

是一种面向连接的、可靠的、基于字节流的传输层通信协议。

  • TCP 是面向连接的传输层协议。
  • 每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接只能是点对点的(一对一)。
  • TCP 提供可靠交付的服务。
  • TCP 提供全双工通信。
  • 面向字节流。

TCP

TCP的连接

  • TCP把连接作为最基本的抽象。
  • 每一条TCP 连接有两个端点。
  • TCP连接的端点叫做套接字(socket)或插口。
  • 端口号拼接到(contatenated with) IP 地址即构成了 套接字
    {(IP1: port1), (IP2: port2)}
    连接的三个阶段:连接建立、数据传送、连接释放

为何要进行三次握手和三次挥手
连接需要三次握手

  1. 客户端→服务器。客户端向服务器提出连接建立请求,即发出同步请求报文。
  2. 客户端←服务器。服务器收到客户端的连接请求后,向客户端发出同意建立连接的同步确认报文。
  3. 客户端→服务器。客户端在收到服务器的同步确认报文后,向服务器发出确认报文。
    目的:同步双方的序列号和确认号并交换TCP窗口大小; 让双方都证实对方能收到

连接的释放 四次挥手

  1. 客户端→服务器。客户端向服务器发出一个连接释放报文。
  2. 客户端←服务器。服务器收到客户端的释放连接请求后,向客户端发出确认报文。
    此时客户端不再发送数据(仅响应报文)给服务器,仅接收报文。 (半关闭状态)
  3. 客户端←服务器。服务器在发送完最后的数据后,向客户端发出连接释放确认报文。
  4. 客户端→服务器。客户端在收到服务器连接释放报文后,向服务器发出确认报文。
    • 发送后客户端再等 2*MSL (如果服务器没收到最后的ACK 服务器会再请求一次 等待2MSL确保服务器收到了) 1MSL时间留给最后的ACK确认报文段到达服务器端,1MSL时间留给服务器端再次发送的FIN。
    • 收到后服务器CLOSED

客户端要等待2MSL(最大报文生命)后才可以释放

  1. 保证 客户端 的最后一个ACK可以到达服务器
  2. 防止失效的连接请求报文出现在本连接中

TCP计时器:至少应该有四种计时器:重传计时器、持久计时器、保活计时器和时间等待计时器

拥塞控制:慢开始拥塞避免

拥塞控制

应用层

在TCP/IP中,应用层对应OSI/RM中的会话层、表示层 和应用层,是应用程序与网络传输的接口,是面向应用 需求的通信协议中的最高端。

应用层协议不是应用程序,也不解决用户的具体应用需 求,而是为应用程序进程的网络通信提供服务的第一层 协议,是为用户的应用需求提供通信服务。

规定了运行在不同端系统上的应用程序进程相互传递报文的规范:

  • 交换的报文类型,如请求报文和响应报文
  • 语法,如报文中的各个字段及这些字段的描述规范
  • 语义,即报文各字段的可能取值及其含义
  • 进程何时、如何发送报文及对报文进行响应。

体系架构

  1. 客户-服务器模式
  2. P2P模式 通信各方地位平等,互为客户端服务器,对中心服务器依赖最小
  3. 混合模式 混合了C/S和P2P的通信模式

TCP/IP中的应用层协议:域名,超文本传输,电子邮件,会话发起,文件传输,远程访问

域名解析

主机向本地域名服务器的查询一般都是采用递归查询。 如果主机所询问的本地域名服务器不知道被查询域名 的IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。

** 解析过程**

  • 首先从主机本地Hosts文件查找。没找到就向本地 DNS发出请求
  • 若本地DNS也找不到,则将请求发给负责该域的根 域名字服务器,根服务器会返回一个相应的顶级域 名服务器地址
  • 本地域名服务器向顶级域名服务器提出请求。顶级 域名服务器会返回一个权限域名服务器地址
  • 本地域名服务器向权限域名服务器提出请求,权限域名服务器将返回目标域名的IP地址。
  • 本地域名服务器向查询主机返回目标域名的IP地址。

电子邮件协议

发送:SMTP
读取:POP3 IMAP(不需要全部下载 交互式)
MIME 邮件中传输数据
邮件

posted on 2020-05-18 22:52  快刀切草莓君  阅读(486)  评论(0编辑  收藏  举报