网络模型
-
计算机网络体系结构分为3种:
OSI体系结构、TCP/IP体系结构、五层体系结构。-
OSI体系结构:由国际标准化组织(ISO)提出,但复杂不实用。TCP/IP体系结构:含了一系列构成互联网基础的网络协议,是Internet的核心协议,被广泛应用于局域网 和 广域网。- 五层体系结构:综合
OSI与TCP/IP的优点,方便学习。
-
OSI
-
背景:OSI(开放式系统互联)体系结构是一种网络体系结构,由国际标准化组织(ISO)于20世纪80年代提出。它将计算机网络分为七个层次,并定义了每个层次的功能和协议。
-
结构:
-
物理层(Physical Layer):
- 提供物理介质上的数据传输
- 定义数据传输的电气特性、接口标准和传输速率等
-
数据链路层(Data Link Layer):
- 提供可靠的数据传输
- 建立和管理物理层之间的连接
- 处理数据帧的传输、错误检测和纠错等
-
网络层(Network Layer):
- 负责数据的传输路由和转发
- 管理不同网络之间的连接和路由选择
- 提供网络地址和逻辑地址的映射
-
传输层(Transport Layer):
- 提供端到端的数据传输服务
- 提供可靠的数据传输、流量控制和拥塞控制
- 使用端口号标识不同的应用程序
-
会话层(Session Layer):
- 管理和协调应用程序之间的通信
- 建立、维护和终止会话连接
-
表示层(Presentation Layer):
- 数据的格式转换和表示
- 加解密、数据压缩和数据格式的转换等
-
应用层(Application Layer):
- 提供用户接口和服务
- 支持常见的应用程序,例如电子邮件、文件传输和网页浏览等
-
-
OSI体系结构的目标是实现网络设备和协议的互操作性。每个层次的功能和责任清晰明确,同时各层之间通过标准化的协议进行通信。然而,在实际的网络中,通常会结合多个层次来实现更高效、可靠和安全的数据传输。
TCP / IP
TCP / IP(传输控制协议/网际协议)体系结构是一种常用的网络体系结构,广泛应用于计算机网络和因特网。它由TCP和IP两个核心协议组成,并包含一系列支持性协议。
以下是TCP/IP体系结构的四个层次:
-
网络接口层(Network Interface Layer):
- 定义了计算机与物理网络之间的接口
- 负责数据在物理介质上的传输
- 处理数据帧
- 主要协议是IP( Protocol)
- 负责数据的组、路由和转发
- 根据目标IP地址选择最佳路径进行数据传输
-
传输层(Transport Layer):
- 主要协议是TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)
- 提供端到端的数据传输服务
- TCP提供可靠的数据传输、流量控制和拥塞控制
- UDP提供无连接的数据传输,适用于实时和简单的应用
-
应用层(Application Layer):
- 包含多种协议,如HTTP、FTP、SMTP等
- 提供用户接口和应用程序之间的通信
- 支持各种网络应用,如网页浏览、文件传输、电子邮件等
TCP/IP体系结构是基于分层的设计原则,不同层次的协议各自负责不同的功能,实现了模块化和可扩展性。它是互联网的基础架构,让不同的计算机和网络设备能够互相通信和交换数据。
五层体系结构
五层体系结构是一种相对于OSI七层体系结构简化的网络体系结构。它将网络协议分为五个层次,可以更容易地理解和实现网络通信。
以下是五层体系结构的五个层次:
-
物理层(Physical Layer):
- 提供物理介质上的数据传输和电信号处理
- 定义数据传输的电气特性、接口标准和传输速率等
-
数据链路层(Data Link Layer):
- 建立和管理物理连接
- 处理数据帧的传输、错误检测和纠错等
- 通常包括MAC(介质访问控制)和LLC(逻辑链路控制)子层
-
网络层(Network Layer):
- 负责数据的传输路由和转发
- 管理不同网络之间的连接和路由选择
- 提供网络地址和逻辑地址的映射
- 主要协议包括IP(Internet Protocol)
-
传输层(Transport Layer):
- 提供端到端的数据传输服务
- 提供可靠的数据传输、流量控制和拥塞控制
- 使用端口号标识不同的应用程序
- 主要协议包括TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)
-
应用层(Application Layer):
- 提供用户接口和服务
- 支持各种应用程序,如电子邮件、文件传输、网页浏览等
- 包含多种协议,如HTTP、FTP、SMTP等
五层体系结构是一种常用的网络体系结构,相对于OSI七层体系结构更加简洁,但仍提供了足够的层次划分和功能分离,以实现网络通信的可靠性和灵活性。
数据链路层
-
链路:从1个节点到相邻节点的一段物理线路(有线或无线),中间没有其他交换节点。
-
数据链路:物理链路+对应的通信协议(来控制数据的传输)。
-
数据链路层属于计算机网络的低层。数据链路层使用的信道主要有以下两种类型:
- 广播信道:这种信道使用一对 多的广播通信方式。
CSMA/CD协议(比如同轴电缆、集线器等组成的网络) - 点对点信道:这种信道使用一对一的点对点通信方式。
PPP协议(比如2个路由器之间的信道)
- 广播信道:这种信道使用一对 多的广播通信方式。
-
数据链路层的三个基本问题: 封装成帧、透明传输和差错检测。
-
点对点信道的数据链路层在进行通信时的主要步骤如下:
- 结点A 的数据链路层把网络层交下来的IP 数据报添加首部和尾部封装成帧。
- 结点 A 把封装好的帧发送给结点 B 的数据链路层。
- 若结点B 的数据链路层收到的帧无差错,则从收到的帧中提取出IP 数据报交给上 面的网络层;否则丢弃这个帧。
封装成帧
封装成帧( framing) 就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。 接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别 帧的开始和结束。
控制字符 SOH ( Start Of Header 放 在 一 帧 的 最 前 面 , 表 示 帧 的 首 部 开 始 。 另 一个 控 制 字 符 EOT ( End Of Transmision)表示帧的结束。它们的十六进制 编码分别是01 (二进制是00000001)和04 (二进制是00000100)。
透明传输
从键盘上输入任何字符都可以放在这样的帧中传输过去。
差错控制
数据链路的错误检测与纠错技术:奇偶校验、CRC、海明码等
-
数据链路的流量控制与传输协议:停等协议、滑动窗口协议等
-
链路层互连设备:网桥、交换机等
-
循环冗余检验CRC 是一种检错方法,而帧检验序列FCS 是添加在数据后面的冗余码。
-
点对点协议 PPP 是数据链路层使用最多的 一种协议,它的特点是:简单;只检测 差错,而不是纠正差错;不使用序号,也不进行流量控制;可同时支持多种网络层 协议。
-
PPPOE 是为宽带 上网的主机使用的链路层协议。
-
局域网的优点是:
- 具有广播功能,从 一个站点可很方便地访问全网;便于系统的扩 展和逐渐演变; 提高 了系统的可靠性、可用性和生存性。 共享通信媒体资源的方法有二: 一是静态划分信道 (各种复用技术), 二是动态媒体接入控制,又称为多点接入(随机接入或受控接入)。
-
计算机与外界局域网的通信要通过通信适配器 (或网络适配器), 它又称为网络接 又卡或网卡。计算机的硬件地址就在适配器的ROM 中。
-
以太网采用无连接的工作方式,对发送的数据帧不进行编号,也不要求对方发回确 认。目的站收到有差错帧就把它丢弃,其他什么也不做。
-
以太网采用的协议是具有冲突检测的载波监听多点接入 CSMA/CD。协议的要点 是: 发送前先监听,边发送边监听,一旦发现总线 上出现 了碰撞,就立即停止发送。然后按照退避算法等待 一段随机时间后再次发送。因此,每一个站在自己发送 数据之后的 一小段时间内,存在着遭遇碰撞的可能性。以太网上各站点都平等地争用以太网信道。
-
传统的总线以太网基本上都是使用集线器的双绞线以太网。这种以太网在物理 上是星形网,但在逻辑上则是总线形网。集线器工作在物理层,它的每个接又仅仅简单地转发比特,不进行碰撞检测。
网络层
网络层向 上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。 网络层不提供服务质量的承诺。
IP协议
与IP 协议配套使用的还有三个协议:ARP、ICMP、IGMP
由于历史的原因,许多有关TCP/IP 的文献曾 经把网络层使用的路由器称为网关 。
IP地址
- 整个的互联网就是一个单一的、抽象的网络。IP 地址就是给互联网上的每一台主机或路由器)的每一个接口分配一个在全世界范围内是唯一的32位的标识符。
- IP地址现在由互联网名字和数宇分配机构ICANN(InternetCorporationfor AssignedNamesandNumbers)进行分配
- IP地址由由两个固定长度的字段组成,其中第一个字段是网络号(net-id),它标志主机 (或路由器)所连接到的网络。一个网络号在整个互联网范围内必须是唯一的。第二个字段是主机号(host id),它标志该主机 (或路由器)。一台主机号在它前面的网络号所指明的网络范围内必须是唯一的。一个IP 地址在整个互联网范围内是唯一的。
地址解析协议ARP (Address Resolution Protocol)
划分子网
- 一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网(subnet 。
IPV6
- 一个IP地址在整个互联网范围内是唯一的。分类的IP地址包括A类、B类和C类地址(单播地址), 以及D类地址(多播地址)。E类地址未使用
- IP 地址标志一台主机 (或路由器〕和 一条链路的接又。多归属主机同时连接到两 个或更多的网络上。这样的主机同时具有两个或更多的IP地址,其网络号必须是不同的。由于一个路由器至少应当连接到两个网络,因此一个路由器至少应当有两 个不同的IP地址。
- 网际协议IP:IP地址、子网划分、IP数据报格式、IP分组传输等
- 路由器的工作原理和路由算法:距离矢量路由算法、链路状态路由算法等
- 长途网中的虚电路与数据报方式
- IPv6网络协议的特点和部署
传输层
传输层的定义和作用
运输层向它上面的应用层提供通信服务。
网络层为主机之问提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。
- 复用(multipiexing)
指在发送方不同的应用进程都可以使用同一个运输层协议传送数据
- 分用(demultiplexing)
指接收方的运输层在剥去报文的首部后能够把这些数据正确交付目的应用进程
端口和套接字的意义
UDP
用户数据报协议UDP(User Datagram Protocol)[RFC768]
- 无连接、不可靠交付
- UDP 没有拥塞控制
- UDP 支持一对一、一对多、多对一和多对多的交互通信。
- UDP的首部开销小,只有8个字节,比TCP的20 个字节的首部要短。
TCP
传输控制协议TCP(Transmission Control Protocol)[RFC793]
面向连接、可靠
- TCP 是面向连接的运输层协议。这就是说,应用程序在使用TCP协议之前,必须先建立TCP连接。在传送数据完毕后,必须释放已经建立的TCP 连接。
- 点对点
- 可靠交付,无差错、不丢失、不重复、按需到达。
- 全双工通信,设有发送缓存和接收缓存。
- 面向字节流:流指流入到或从进程流出的字节序列。
- TCP连接的端点叫做套接字(socket)或插口。端口号拼接到IP地址就构成了套接字。
停止等待协议
“停止等待”:每发送完一个分组就停止发送,等待对方确认。在收到确认后再发送下一个分组。
ARQ协议
- ARQ协议,即自动重传请求(Automatic Repeat-reQuest),是OSI模型中的错误纠正协议之一。
- 它通过使用确认和重传这两个机制,在不可靠服务的基础上实现可靠的信息传输。
- 如果发送方在发送后一段时间之内没有收到确认帧,它通常会重新发送。
- 重传的请求是自动进行的,接收方不需要请求发送方重传某个出错的分组
- ARQ包括停止等待ARQ协议和连续ARQ协议
滑动窗口
- 累积确认
流量控制
- 基于滑动窗口:发送方的发送窗口不能超过接收方给出的接收窗口。
- TCP窗口单位是字节,不是报文段。
拥塞控制
- 慢开始
- 拥塞避免
- 快重传
- 快恢复
- 基于窗口实现
三次握手
链接释放
UDP和TCP对比
| UDP | TCP | |
|---|---|---|
| 是否连接 | 无连接 | 面向连接 |
| 是否可靠 | 不可靠传输,不使用流量控制和拥塞控制 | 可靠传输,使用流量控制和拥塞控制 |
| 连接对象个数 | 支持一对一,一对多,多对一和多对多交互通信 | 只能是一对一通信 |
| 传输方式 | 面向报文 | 面向字节流 |
| 首部开销 | 首部开销小,仅8字节 | 首部最小20字节,最大60字节 |
| 适用场景 | 适用于实时应用(IP电话、视频会议、直播等) | 适用于要求可靠传输的应用,例如文件传输 |
应用层
- 应用层的定义和作用: 基于客户服务器方式(P2P)。
- 域名系统DNS --从域名解析出IP地址
- HTTP
- 文件传输协议FTP
- 远程登录协议TELNET
- 网络管理协议SNMP
- 电子邮件协议SMTP和POP3
DNS
域名系统DNS能够把互联网上的主机名字转换为IP地址。
当某一个应用进程需要把主机名解析为IP 地址时,该应用进程就调用解析程序(resolver),并成为 DNS 的一个客户,把待解析的域名放在 DNS 请求报文中,以UDP 用户数据报方式发给本地域名服务器 (使用UDP 是为了减少开销)。本地域名服务器在查找域名后,把对应的IP 地址放在回答报文中返回。应用进程获得目的主机的IP地址后即可进行通信。
-
域名解析过程
-
主机向本地域名服务器的查询 一般都是采用递归查询(recursive query)
-
本地域名服务器向根域名服务器的查询通常是采用迭代查询(iterative query)
-
-
URL
-
统一资源定位符 URL 是用来表示从互联网上得到的资源位置和访问这些资源的方法。(不分大小写)
-
-
HTTP
-
超文本传送协议HTTP,定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档, 以及服务器怎样把文档传送给浏览器。从层次的角度看,HTTP 是面向事务的(transaction- oriented)应用层协议。
-
-
HTTP 1.0
- 无状态、无连接
- 通常使用TCP
-
HTTP 1.1
- 持续连接
- 工作方式: 非流水线方式(without pipelining)和流水线方式(with pipelining)。
-
报文结构
-
-
请求方法
-
-
状态码
- 1xx 表示通知信息,如请求收到了或正在进行处理。
- 2xx 表示成功,如接受或知道了。
- 3xx 表示重定向,如要完成请求还必须采取进一步的行动。
- 4xx 表示客户的差错,如请求中有错误的语法或不能完成。
- 5xx 表示服务器的差错,如服务器失效无法完成请求
-
Cookie
- 用于标识用户:给A的HTTP响应报文中添加 一个叫做Set-cookie 的首部行。这里的“首部字段名”就是 “Set-cookie”
-
SMTP
-
简单邮件传送协议SMTP(SimpleMail Transfer Protocol)
-
网络安全与管理
-
防火墙和入侵检测系统
- 防火墙是一种特殊编程的路由器,安装在一个网点和网络的其余部分之间,目的是实施访问控制策略
-
公钥加密体制和数字签名(网络安全课讲过)
-
网络管理的基本概念和方法:SNMP协议、流量监测等
-
安全套接字层SSL(Secure Socket Layer)。
- SSL 提供的安全服务可归纳为以下 三种:
- SSL 服务器鉴别,允许用户证实服务器的身份。支持SSL 的客户端通过验证来自服 务器的证书,来签别服务器的真实身份并获得服务器的公钥。
- SSL 客户鉴别,sSL 的可选安全服务,允许服务器证实客户的身份。
- 加密的SSL 会话,对客户和服务器问发送的所有报文进行加密,并检测报文是否被 篡改。
-
运输层安全TLS(Transport Layer Security)
- TLS(Transport Layer Security,传输层安全)是一种用于在计算机网络上进行加密和身份验证的安全协议。它是SSL协议的继任者,并且在功能和安全性方面更加先进。 TLS协议在应用层和传输层之间建立安全通道,用于保护通信双方之间的数据传输。它使用了公钥加密、对称加密和哈希算法等多种加密机制,确保数据的机密性、完整性和身份验证。 在TLS握手阶段,客户端和服务器之间进行协商,确定使用的加密算法和密钥协商方式。服务器会向客户端发送自己的数字证书,该证书包含了服务器的公钥。客户端会验证服务器的证书,并使用服务器的公钥加密生成的随机密钥进行传输。之后,双方使用对称加密密钥对数据进行加密和解密。 TLS协议广泛用于Web浏览器和服务器之间的安全通信,例如在HTTPS协议中使用了TLS来保护HTTP传输的数据。它还可以用于其他应用程序,例如电子邮件、文件传输和实时通信等。 TLS协议有多个版本,包括TLS 1.0、TLS 1.1、TLS 1.2和TLS 1.3。随着安全性要求的提高,较早的版本已经被逐渐淘汰,推荐使用最新的TLS 1.3版本来保护通信安全。
数据单位
帧(数据链路层)
-
帧(Frame)的数据部分就是网络层传递下来的数据包(IP数据包,Packet)
-
最大传输单元MTU(Maximum Transfer Unit)
- 每一种数据链路层协议都规定了所能够传送的帧的数据长度上限
- 以太网的MTU为1500个字节
数据报(分组)(网络层)
网络层数据报(IP数据报:Packet)由首部、数据2部分组成。
报文(运输层)
报文是指在计算机网络中传输的一种数据格式。它包含了发送者和接收者之间进行交流所需要的信息。报文通常由首部和数据两部分组成。首部包含了报文的控制信息,如发送者和接收者的地址、报文类型、报文序列号等。数据部分则是被发送的具体内容。
报文的格式和内容由通信的协议规定。在TCP/IP协议中,报文一般采用文本格式,如HTTP报文就是使用文本格式来描述请求和相应的内容。在传输层和网络层,报文则被封装成数据包或帧,添加了控制信息和地址信息,以便在网络中正确传输。在数据链路层和物理层,报文则被进一步封装成数据帧,并通过电信号在物理介质上传输。