admin 管理员组

文章数量: 887021

参考b站各个热门视频以及CSDN博客汇总

目录

计算机网络概述

计算机网络概念

定义

功能组成

工作方式

类型

⭐️网络传输介质

⭐️网络的主要连接设备

⭐️传输方式

⭐️数据交换

⭐️通信协议

⭐️OSI参考模型

TCP/IP参考模型

协议汇总

封装的概念

分层的概念

面向连接与非面向连接

性能指标

物理层

基本概念

⭐️四大特性

⭐️两种信号

⭐️调制和编码

⭐️传输介质

三大部分

基本通信技术

⭐️四种信道复用技术

⭐️数据的传输方式

数据链路层

基础概论

帧的概念

MAC和LLC

三个基本问题

以太网中的设备

通信协议

冲突域和广播域

虚拟局域网VLAN

CSMA/CD 载波监听多路访问/冲突检测(总线型局域网使用)

CSMA/CA**(无线局域网使用)**

PPP点对点协议

ARQ自动重传请求

网络层

IP协议(网际互连协议)

IP协议格式

IP地址

子网划分

网络地址转换NAT(Network Address Translation)

ARP(**Address Resolution Protocol)**地址解析协议

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

DHCP(动态主机配置协议)

网络层的路由

路由

路由选择方式

非自适应路由选择

自适应路由选择

网络层提供的两种服务

虚电路

IP数据报的发送和转发过程

传输层

传输层概论

传输层的两个重要协议

TCP

UDP

TCP与UDP比较

应用层

常见协议

网络安全

网络安全概论

面临威胁

网络系统的特性

加密和交互

加密和解密

公钥和私钥

防火墙


计算机网络概述

计算机网络概念

定义

是一个将地理位置不同的、具有独立功能的计算机系统,通过通信线路连接起来,由功能完善的软件实现⭐️资源共享信息传递的系统

功能组成

⭐️通信子网➕资源子网

通信子网:实现数据通信,由各种传输介质、通信设备、相应网络协议组成。

网络层<路由器>、数据链路层<交换器、网桥>、物理层<集线器、中继器>

资源子网:实现资源共享的软件资源和硬件资源。

应用层、表示层、会话层、运输层

工作方式

互联网划分为:边缘部分➕核心部分

边缘部分:由所有连接在互联网上的主机组成,这部分是用户直接使用的,用来进行通信和资源共享的。

核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)

  • C/S方式(client/server客户 服务器)请求方 响应方
  • B/S方式(Browser浏览器)
  • P2P方式(peer to peer)客户端同时是使用者和服务器 我为人人 人人为我

类型

  • 按照拓扑分类

    星型结构、树形结构、网状结构、总线型结构、环形结构

  • 按照范围分类

    个人区域网PAN、局域网LAN(local)、城域网MAN、广域网WAN(wide)

  • 服务提供分类

    共有网络、私有网络

  • 按照传输方式分类

    1. 有线网络

      IEEE802.3

    2. 无线网络

      IEEE802.11

      WLAN 无线局域网

      WPAN 无线个域网

⭐️网络传输介质

  • 双绞线、同轴电缆、光纤、无线传输

⭐️网络的主要连接设备

  • 物理层

    1. 调制解调器

      专业解释就是数模转换器,它只是把计算机的数字信号变成模拟信号。在我们的电话线(电话线只接模拟信号)里通过这个过程叫调制。反过来在打电话线里的模拟信号变成计算机认识的数字信号叫解调。这个设备是就来上网用的,就是说和万维网联接用的。

      调制方法:幅移键控、频移键控、相移键控

    2. 中继器

      信号在传输的过程中是要衰减的,中继器的作用就是将信号放大,使信号能传的更远。

    3. 集线器

      差不多就是个多端口的中继器

  • 数据链路层

    1. 网卡

      通过 MAC 地址进行数据包的传输和接收

    2. 网桥

      局域网间访问,用网桥来连接2个局域网。如果说集线器是1层设备的话,那么网桥就是2层设备。

    3. 交换机

      可以理解为高级的网桥,他有网桥的功能,但性能比网桥强

  • 网络层

    1. 路由 交换机把数据给路由,路由决定是否转发,这样能避免过多的广播造成网络堵塞。 现在路由多用在分内外网上
    2. 网关 好比是个门,在局域网里来说集线器就是网关,在2层网络里,交换机就是网关,在3层网络里路由就是网关,说网关要看你的网是多大的,要拿中国来说,连着美国那台世界服务器的设备就是网关

⭐️传输方式

  • 按照传输方向分
    • 单工、双工、全双工(双方可以同时进行数据通信)
  • 按传输对象分
    • 单播(1对1)、多播(1对多)、广播(1对多)

⭐️数据交换

  • 电路交换
    • 打电话占线,占用信道
    • 整个报文从源头到终点连续的传输
  • 报文交换
    • 整个报文先传送到相邻结点,存储转发
  • 分组交换
    • 将一个报文分成多个分组,存储转发

⭐️通信协议

  • 语法:交换数据的格式
  • 语义 :需要发出何种控制信息完成何种动作以及做出何种响应
  • 时序:事件实现顺序的详细说明

⭐️OSI参考模型

宗旨:下层为上层服务

支持异构网络系统的互联互通。122112、

  • 应用层(Application Layer):提供网络服务给用户(端到端)
  • 表示层(Presentation Layer):负责数据的格式转换、加密和解密、数据压缩和恢复等功能
  • 会话层(Session Layer):负责建立、管理和终止会话(会话是指在网络上两个节点之间的通信)

向表示层实体/用户进程提供建立连接并在连接上有序地传输数据。这是会话,也是建立同步(SYN)

功能一:建立管理终止会话

功能二:使用校验点可使会话在通信失效时从校验点恢复通信,实现数据同步。

  • 传输层(Transport Layer):提供端到端之间的可靠数据传输服务

端到端服务是指数据在通信的两个终端之间直接传输

点到点服务则是指数据在通信的每一段传输路径上都经过中间节点进行转发

  • 网络层(Network Layer):不同网络之间提供路由功能,转发和路由选择(点到点)
  • 数据链路层(Data Link Layer):相邻节点之间传输(点到点)
  • 物理层(Physical Layer):负责传输比特流并进行物理连接
地址表达数据单元协议
应用层域名地址报文HTTP HTTPS DNS TELNET POP3 SMTP FTP
传输层端口号报文段/数据段TCP UDP
网络层ip地址分组/数据包IP ARP RARP ICMP OSPF RIP ISIS EGP DHCP NAT VPN
数据链路层MAC地址PPP CSMA/CD STP ARQ
物理层MAC地址比特

TCP/IP参考模型

  • 网络接口层:物理层、数据链路层
  • 网际层:网络层
  • 传输层
  • 应用层:会话层、表示层、应用层

协议汇总

  1. RTT:Round-Trip Time(往返时间)
  2. PDU:Protocol Data Unit(协议数据单元)
  3. SDU:Service Data Unit(服务数据单元)
  4. MTU:Maximum Transfer Unit(最大传送单元)
  5. CRC:Cyclic Redundancy Check(循环冗余校验)
  6. SW协议:Stop-and-Wait(停止-等待协议)
  7. ARQ:Automatic Repeat reQuest(自动请求重传)
  8. GBN协议:Go-Back-N(回退N帧协议)
  9. SR协议:Selective Request(选择重传协议)
  10. PPP协议:Point-to-Point Protocol(点对点协议)
  11. FCS字段:Frame Check Sequence(帧检验序列)
  12. MAC:Medium Access Control(媒体接入控制)
  13. CDMA:Code Division Multiple Access(码分多址)
  14. FDMA:Frequency Division Multiple Access(频分多址)
  15. TDMA:Time Division Multiple Access(时分多址)
  16. CSMA/CD协议:Carrier Sense Multiple Access/Collision Detection(载波监听多址接入/碰撞检测)
  17. CSMA/CA协议:Carrier Sense Multiple Access/Collision Avoidance(载波监听多址接入/碰撞避免)
  18. DCF:Distributed Coordination Function(分布式协调功能)
  19. PCF:Point Coordination Function(点协调功能)
  20. IFS:InterFrame Space(帧间间隔)
  21. RTS:Request To Send(请求发送)
  22. CTS:Clear To Send(允许发生)
  23. ARP协议:Address Resolution Protocol
  24. STP:Spanning Tree Protocol(生成树协议)
  25. VLAN:Virtual Local Area Network(虚拟局域网)
  26. VC:Virtual Circuit(虚电路)
  27. CIDR:Classless Inter-Domain Routing(无分类域间路由选择)
  28. FLSM:Fixed Length Subnet Mask(定长的子网掩码)
  29. VLSM:Variable Length Subnet Mask(变长的子网掩码)
  30. AS:Autonomous System(自治系统)
  31. RIP:Routing Information Protocol(路由信息协议)
  32. DV:Distance-Vector(距离向量)
  33. OSPF:Open Shortest Path First(开放最短路径优先)
  34. LSA:Link State Advertisement(链路状态公告)
  35. ICMP:Internet Control Message Protocol(网际控制报文协议)
  36. PING:Packet InterNet Grouper(分组网间探测)
  37. VPN:Virtual Private Network(虚拟专用网)
  38. NAT:Network Address Translation(网络地址转换)
  39. NAPT:Network Address and Translation(网络地址和端口转换)
  40. UDP:User Datagram Protocol(用户数据报协议)
  41. TCP:Transmission Control Protocol(传输控制协议)
  42. MSL:Maximum Segment Lifetime(最长报文段寿命)
  43. C/S:Client/Server(客户服务器方式)
  44. P2P:Peer-to-Peer(对等方式)
  45. DNS:Domain Name System(域名系统)
  46. TLD:Top Level Domain(顶级域名)
  47. FTP:File Transfer Protocol(文件传送协议)
  48. SMTP:Simple Mail Transfer Protocol(简单邮件传送协议)
  49. MIME:Multipurpose Internet Mail Extensions(多用途因特网邮件扩展)
  50. POP:Post Office Protocol(邮局协议)
  51. IMAP:Internet Message Access Protocol(因特网邮件访问协议)
  52. WWW:World Wide Web(万维网)
  53. HTML:HyperText Markup Language(超文本标记语言)
  54. CSS:Cascading Style Sheets(层叠样式表)
  55. HTTP:HyperText Transfer Protocol(超文本传输协议)
  • 数据链路层

    • PPP点对点协议
    • MAC 介质访问控制
    • CSMA/CD载波监听多点接入/碰撞检测协议
    • STP生成树协议
    • ARQ自动重传请求
  • 网络层

    • IP协议
    • ARP地址解析协议
    • RARP逆地址解析协议
    • ICMP网际控制报文协议
    • 路由选择协议
      • 内部网关协议IGP: RIP,OSPF
      • 外部网关协议EGP: BGP
    • RIP路由信息协议
    • OSPF开放最短路径优先:基于链路状态协议LS,OSPF 直接用 IP 数据报传送
    • BGP(边界网关协议):不同AS之间的路由协议。用路径向量(path vector)路由协议。BGP用 TCP报文传送,力求寻找一条能够到达目的网络且比较好的路由。并非要寻找一条最佳路由。
    • IGMP(网际组管理协议):多播协议。IGMP 使用 IP 数据报传递其报文
    • DHCP(动态主机配置协议):自动分配主机地址
    • VPN(虚拟专用网):利用公用的因特网作为本机构各专用网之间的通信载体。
    • NAT(网络地址转换)
  • 传输层

    • TCP
    • UDP
  • 应用层

    • DNS域名系统
    • FTP(文件传送协议): 基于 TCP 。基于C/S。提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。和TFTP都是文件共享协议中的一大类,即复制整个文件,其特点是:若要存取一个文件,就必须先获得一个本地的文件副本。如果要修改文件,只能对文件的副本进行修改,然后再将修改后的文件副本传回到原节点。
    • TELNET(远程终端协议):基于TCP 连接。基于C/S方式。①用户通过 TELNET 就可注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。②TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。③通过NVT格式实现透明传输(NVT定义了数据和命令应怎样通过因特网)
    • HTTP(超文本传输协议):HTTP报文通常都使用TCP连接传送。是面向文本的。面向事务的客户服务器协议,是万维网能可靠地交换文件的基础。HTTP协议由一套从浏览器发往服务器的请求和一套从服务器发往浏览器的响应组成。
    • URL(统一资源定位符)
    • HTML(超文本标记语言)搜索引擎:搜索万维网的程序
    • SMTP(简单邮件传输协议):使用SMTP协议的情况:①发件人的用户代理向发送方的邮件服务器发送邮件②发送方的邮件服务器向接受方邮件服务器发送构件
    • 邮件读取协议:使用POP或IMAP协议的情况:用户代理从接收方的邮件服务器上读取邮件所使用的协议
      • POP3(邮局协议):特点:POP服务器只有再用户输入鉴别信息后,才允许对邮箱进行读取。只要用户从POP服务器读取了邮件,POP服务器就把邮件删除。
      • IMAP(网际报文存取协议):收信人使用多个用户代理访问同一邮箱,邮件始终保持在邮箱中。加密电子邮件协议:PGP与PEM协议。
    • CSMA/CA(载波监听多点接入/碰撞避免协议):(1) 若站点最初有数据要发送(而不是发送不成功再进行重传),且检测到信道空闲,在等待时间DIFS后,就发送这个数据帧。(2) 否则,站点执行CSMA/CA协议的退避算法。一旦检测到信道忙,就冻结退避计时器。只要信道空闲,退避计时器就进行倒计时。(3) 当退避计时器时间减少到零时(这时信道只可能是空闲的),站点就发送整个的帧并等待确认。(4) 发送站若收到确认,就知道已发送的帧被目的站正确收到了。这时如果要发送第二个帧,就要从上面的步骤(2)开始,执行CSMA/CA协议的退避算法,随机选定一段退避时间。
  • 各层次协议之间关系

  • TCP、UTP是基于IP协议

  • 基于TCP的应用层协议:FTP、Telnet、SMTP、HTTP、POP3、DNS(UDP也可)

  1. HTTP(Hypertext Transfer Protocol):用于在Web服务器和Web浏览器之间传输超文本文档和其他资源。HTTP通常基于TCP协议实现。
  2. HTTPS(Hypertext Transfer Protocol Secure):是HTTP的安全版本,通过SSL/TLS协议对数据进行加密和身份验证。HTTPS也通常基于TCP协议实现。
  3. FTP(File Transfer Protocol):用于在客户端和服务器之间进行文件传输。FTP通常使用TCP协议建立可靠的连接进行数据传输。
  4. SMTP(Simple Mail Transfer Protocol):用于在邮件服务器之间传输电子邮件。SMTP通常基于TCP协议实现。
  5. POP3(Post Office Protocol version 3):用于从邮件服务器上下载电子邮件。POP3通常基于TCP协议建立可靠的连接。
  6. IMAP(Internet Message Access Protocol):用于从邮件服务器上管理电子邮件。IMAP通常基于TCP协议实现。
  7. SSH(Secure Shell):用于在网络上安全地远程登录和执行命令。SSH通常使用TCP协议进行加密通信。
  8. Telnet:用于在网络上远程登录到其他计算机上执行命令。Telnet通常基于TCP协议实现。
  9. DNS(Domain Name System):用于将域名解析为对应的IP地址。DNS在查询阶段通常使用UDP协议,但在传输大量数据的区域传输(AXFR)和域名解析器向服务器查询(DNS-over-TCP)等方面使用TCP协议。
  • 基于UDP的协议
  1. DNS(Domain Name System):用于将域名解析为对应的IP地址。DNS通常使用UDP协议进行域名解析查询和响应。
  2. DHCP(Dynamic Host Configuration Protocol):用于动态分配IP地址、子网掩码、网关等网络配置信息给计算机。DHCP通常在局域网中使用UDP广播进行通信。
  3. SNMP(Simple Network Management Protocol):用于网络设备的监控和管理。SNMP通常使用UDP协议进行数据传输。
  4. TFTP(Trivial File Transfer Protocol):用于简单的文件传输,通常在局域网中使用。TFTP基于UDP实现。
  5. NTP(Network Time Protocol):用于同步计算机的系统时间。NTP通常使用UDP协议进行时间同步。
  6. Syslog:用于系统日志的收集和传输。Syslog通常使用UDP协议将日志消息从设备发送到日志服务器。
  7. RTP(Real-time Transport Protocol):用于在网络上传输实时数据,例如音频和视频流。RTP通常基于UDP协议实现,以提供低延迟和更实时的数据传输。
  8. SNMP Trap:用于向网络管理系统发送警报或通知消息。SNMP Trap通常使用UDP协议发送消息。

封装的概念

发送数据是一个自上而下逐层封装的过程

接收数据是一个自下而上逐层拆封的过程

应用层加上一定的控制信息,叫做报文
传输层将报文切分成段并加上传输层的控制协议,叫做报文段
网络层加上网络层的控制信息和头部控制信息,数据过长可以分组,叫数据报
数据链路层加上数据链路层的控制信息和头部控制信息,把数据包封装成帧
物理层并不认识帧的结构,仅仅将其看作比特流进行传输

分层的概念

  • 分层基本原则

    ① 相互独立 : 各分层之间 , 相互独立 , 每层只有一个独立功能 ;

    ② 界限清晰 : 模块化的设计思想,减少设计的复杂性 ;

    ③ 实现技术 : 把复杂的问题划分为若干个局部问题,在不同层解决。 ;

    ④ 独立特定 : 下层对上层是独立的 , 上层需要使用下层的服务 ;

    ⑤ 标准工作 : 分层的结构可以促进标准化工作 ;

  • 术语

    ① 实体 : 每一层的活动元素是实体 ; 同一层的实体称为对等实体 ;

    ② 协议 : 对等实体之间数据交换的一系列规则 ; 协议是水平方向的 ;

    ③ 接口 : 每两层之间的位置 , 称为接口 , 上层使用下层服务的入口 ;

    ④ 服务 : 每两层之间提供的功能 , 称为服务 ; 服务是垂直方向的 ;

    协议定义了网络通信的规则和标准,服务则是基于这些规则和标准提供的具体功能或应用。

面向连接与非面向连接

面向连接和无连接是两种核心的网络通信方式,它们决定了数据包如何传输和接收。

连接在面向连接通信中体现在连接的建立、数据传输和连接的释放三个阶段。在非面向连接通信中,则直接进行数据的传输,不涉及连接的建立和释放。

  • 面向连接:面向连接的服务在发送数据之前先建立好会话连接,通过网络服务在发送方与接收方之间建立一条虚拟链路。这条链路就像一条管道,数据包都通过这条管道来传输。

    例如,传输控制协议(TCP)就是一种面向连接的协议。因此它提供了数据的有序和可靠传输。通过序号、确认、重传等机制来保证数据的完整性和顺序性。(丢包、失序、损坏)

  • **非面向连接:**无连接则不需要预先建立连接。每个数据包都是独立寻址,从发送端到接收端并没有固定的线路,数据包可以自由地选择路径进行传输,只要能到达就行。但是,所有数据包最终都能通过各种路径达到接收端。无连接服务的典型例子就是用户数据报协议(UDP)。

性能指标

时延

指数据从网络的一端传送到另一端所需时间,单位s

总时延=发送时延+传播时延+处理时延+排队时延

传输时延=数据长度÷发送速率(信道带宽)

传播时延=信道长度÷传输介质中信号的传播速率

时延带宽积

时延带宽积(bit)🟰传播时延(s)✖️带宽(b/s)

又称以比特为单位的链路长度,即某段链路现在有多少比特(容量)

带宽

表示网络的通信线路传送数据的能力,通常是指单位时间内从网络中的某一点到另一点所能通过的“最高数据率”,网络设备所支持的最高速度。

单位:b/s

对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率。所以提高链路带宽减小了数据的发送时延。

错误说法:在高速链路上,比特会传送得更快一些。

吞吐量

表示在单位时间内通过某个网络(或信道、接口)的数据量。

单位:b/s

吞吐量受网络带宽或网络的额定速率的限制

物理层

基本概念

⭐️四大特性

  • 机械特性:接口是怎样的
  • 电气特性:接口电缆各条线上出现的电压范围
  • 功能特性:线路上某一电平的电压意义
  • 过程特性:实现不同功能所发射信号的顺序

⭐️两种信号

  • 模拟信号:连续的
  • 数字信号:不是1就是0

⭐️调制和编码

  • 调制:数字信号转换
  • 编码PCM:模拟信号转换
    • 步骤:采样、量化、编码
    • 编码方式
      • 不归零制、归零制、曼彻斯特编码、差分曼彻斯特编码

⭐️传输介质

  1. 双绞线

    屏蔽双绞线STP:抗干扰强、贵一些

    非屏蔽双绞线UTP:便宜、抗干扰差

  2. 光纤

    单模光纤:2KM

    多模光纤:100KM

  3. 同轴电缆——已淘汰

  4. 无线

三大部分

源系统:发送数据的一端

传输系统:传输过程中的各种传输介质

目的系统:接收数据的电脑

基本通信技术

⭐️四种信道复用技术

复用技术:解决不同信号在同一信道传输时如何区分

  • 频分复用FDM(Fused) 划分不同频率来并行传输信号

  • 时分复用 TDM(time)

    划分不同时间段来传输信号

  • 波分复用 WDM(wave)

    根据光波的波长进行传输

  • 码分复用 CDM(code)

    在同一时间同一频率根据传输的数据码进行区分

⭐️数据的传输方式

1.串行传输并行传输

2.同步传输异步传输

3.基带传输(传数字信号)和频带传输(传模拟信号)

数据链路层

基础概论

帧的概念

帧头(目的MAC地址、源MAC地址、类型)+数据+帧尾FCS(校验)

MAC地址:

  • 用于识别网络设备的唯一地址 48位
  • 在每个主机发送的帧中必须携带标识发送主机和接收主机的地址,由于这类地址是用于媒体接入控制MAC,因此这类地址被称为MAC地址
  • 不具备区分不同网络的功能
  • 种类:单播地址(定位一个特定的设备)、组播地址(定位一组设备)、广播地址(48位都为1)对应三种帧 单播帧、多播帧、广播帧

MAC和LLC

802.3(局域网)是共享介质的,而广域网是专用的(通常是点对点的)不存在介质冲突的问题在IEEE802局域网体系结构中,数据链路层被细分为MAC和LLC两个子层。

  • MAC媒体接入控制(介质访问控制)

    共享信道要着考虑如何协调多个发送和接受站点对一个共享传输媒体的占用

    静态划分信道:频分、时分、码分多址

    动态划分信道:轮询访问-令牌传递协议-无冲突

                            随机访问-争用型协议-冲突-CSMA/CD协议
    

    使LAN体系结构能适应多种传输介质。因此,对各种类型的局域网来说,其物理层和MAC子层需要随着所采用介质和访问方法的不同发生改变,而这些不同对于LLC子层来说都是透明的。

    MAC子层控制不同用户数据传输中对物理层传输介质的访问。“数据链路层”中各种传输介质访问有关的问题都放在MAC子层来解决。MAC子层主要功能包括数据帧的封装/拆封,帧的寻址与识别,帧的接收与发送,链路的管理,帧的差错控制及MAC协议的维护等。 LLC子层负责数据链路层中的“逻辑链路”控制,**“数据链路层”中与传输介质访问无关的问题都集中在LLC层来解决。**LLC子层主要功能包括逻辑链路的建立和释放,提供与网络层的接口,数据传输差错控制,给数据帧加上传输序列号

三个基本问题

  • 封装成帧

    封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧,接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。

  • 透明传输

    透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送,链路层就**“看不见”有什么妨碍数据传输的东西**。

    当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使接收方不会将这样的数据误认为是某种控制信息,这样才能保证数据链路层的传输是透明的。

    • 如何保证:字节填充+比特填充
    • 最大传输单元MTU
  • 差错检测

    奇偶校验码+循环冗余校验码CRC 无法纠错

以太网中的设备

  • 集线器(Hub) 对接收到的信号进行放大,以扩大网络的传输距离。

    半双工,逻辑上是总线结构。

  • 网桥

    两个端口的交换机

  • 交换机(Switch)

    全双工(发送帧、接收帧同时进行)

    并行性,同时连通多对接口无碰撞

    即插即用,帧交换表通过自学习算法自动建立

通信协议

冲突域和广播域

冲突域:交换机的每一个端口都是一个冲突域;冲突域只能发生在一个网段 广播域:广播域交换机的所有端口都在一个广播域;广播域在一个或多个网段内发生

冲突域是基于第一层(物理层),而广播域是机于第二层(数据链路层)HUB 所有端口都在同一个广播域,冲突域内。Switch所有端口都在同一个广播域内,而每一个端口就是一个冲突域。

虚拟局域网VLAN

CSMA/CD 载波监听多路访问/冲突检测(总线型局域网使用)

广播型信道中采用一种随机访问技术的竞争型访问方法,具有多目标地址的特点。总线型网络传输数据。

  • ⭐️四大要点 **先听再发:**如果信道空闲,立刻发送数据,如果信道忙碌,则一直等到信道空闲
  • **边听边发:**一边发送数据,一边检测信道有没有发生冲突
  • **冲突停止:**当检测到冲突后,立即停止发送剩下的数据
  • **延迟后发:**发生冲突后,随即等待一段时间后再发剩下的数据
  • 最小帧长=2争用期(RTT)×数据发送速率
  • 多路接入:频分多址、码分多址、时分多址

CSMA/CA**(无线局域网使用)**

PPP点对点协议

一对一信道。

其中PPP协议就是用户计算机和ISP(互联网服务提供商)进行通信时使用的数据链路层的协议。

  • PPP帧格式

    • 帧首和帧尾部中的标志字段(F,Flag)是PPP帧的定界符,取值为16进制的7E;
    • 帧首部中的地址字段(A,Address)取值为十六进制的FF;没用
    • 控制字段(C,Control)取值为十六进制的03 没用
    • 帧首部中的协议字段(P,Protocol)指明了帧的数据部分应送交哪个协议处理。当协议字段取值为16进制的0021时,PPP帧的数据部分就是IP数据报、当协议字段取值为十六进制的C021时,PPP帧的数据部分就是链路控制协议LCP的分组、当协议字段取值为16进制的8021时,PPP帧的数据部分就是网络控制协议NCP的分组;
    • 帧尾部中的帧检验序列FCS字段(Frame Check Sequence),其值是使用循环冗余校验CRC计算出的,校验位用于检查PPP帧是否存在误码。
  • 实现透明传输

    当PPP帧的数据部分出现帧首和帧尾中的标志字段时,如果不采取措施,则会造成接收方对PPP帧是否结束的误判;因为标志字段是PPP帧的定界符,取值为十六进制的7E

    PPP协议实现透明传输的方法取决于所使用的链路类型

    面向字节的异步链路——字节填充法,也就是插入‘转义字符’。

    面向比特的同步电路——比特填充法,也就是插入‘比特0’。

ARQ自动重传请求

  • SW停等协议

    • 基本原理是发送方发送一个数据帧,然后等待接收到对应的确认帧,只有在接收到确认帧之后才会发送下一个数据帧。发送方每次只发送一个数据帧,并在收到确认帧之前等待,因此称为“停等”。
  • 连续ARQ协议

    • 发送方可以连续地发送多个数据帧,而不需要等待对应的确认帧。发送方维护一个滑动窗口(Sliding Window),用于追踪已发送但未确认的数据帧。
    • 接收方接收到数据帧后,会立即发送确认帧,表示已成功接收。发送方收到确认帧后,会将对应的数据帧从滑动窗口中移除,从而允许发送更多的数据帧。
    • 如果发送方在超时之前未收到确认帧,它会重传窗口中的所有未确认数据帧
  • 选择重传ARQ协议

    在选择重传ARQ中,接收方可以接收并缓存多个数据帧,并可以选择性地重传丢失或损坏的数据帧,而不必等待其他帧。

    • 接收方维护一个接收窗口(Receive Window),用于追踪接收到的数据帧,并向发送方发送确认帧以指示已成功接收的帧。
    • 如果接收方发现某个数据帧丢失或损坏,它会请求发送方仅重传该数据帧,而不是整个窗口中的所有帧。

网络层

提供端到端的服务,单位是分组

IP协议(网际互连协议)

IP协议格式

  • 8位服务类型(Type Of Service):3位优先权字段(已经弃用),4位TOS字段,和1位保留字段(必须置为0)。4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。这四者相互冲突,只能选择一个。
  • 16位总长度(total length):IP报文(IP报头+有效载荷)的总长度,用于将各个IP报文进行分离。
  • 16位标识(id):唯一的标识主机发送的报文,如果数据在IP层进行了分片,那么每一个分片对应的id都是相同的。
  • 3位标志字段:第一位保留,表示暂时没有规定该字段的意义。第二位表示禁止分片DF,表示如果报文长度超过MTU,IP模块就会丢弃该报文。第三位表示“更多分片”MF,如果报文没有进行分片,则该字段设置为0,如果报文进行了分片,则除了最后一个分片报文设置为0以外,其余分片报文均设置为1。
  • 13位片偏移(framegament offset):分片相对于原始数据开始处的偏移,表示当前分片在原数据中的偏移位置,实际偏移的字节数是这个值× 8 \times 8×8得到的。因此除了最后一个报文之外,其他报文的长度必须是8的整数倍,否则报文就不连续了。
  • 8位生存时间(Time To Live,TTL):数据报到达目的地的最大报文跳数,一般是64,每经过一个路由,TTL -= 1,一直减到0还没到达,那么就丢弃了,这个字段主要是用来防止出现路由循环。
  • 8位协议:表示上层协议的类型。
  • 16位首部检验和:使用CRC进行校验,来鉴别数据报的首部是否损坏,但不检验数据部分
  • 32位源IP地址和32位目的IP地址:表示发送端和接收端所对应的IP地址。
  • 选项字段:不定长,最多40字节。

IP地址

逻辑地址(区别于MAC地址),IP地址是网络层和以上各层使用的地址,物理地址是数据链路层和物理层使用的地址

  • 组成

    4个字节,32位,点分十进制

  • IP地址和MAC地址的区别

    1.IP地址是一个逻辑地址,MAC地址是物理地址 2.MAC地址是唯一的但是IP地址不是唯一的 3.MAC地址主要是工作在第二层,IP地址在网络层 4.MAC地址是48位,IP地址一般是32位(v6是128位) 5.IP地址的分配取决于网络拓扑,MAC地址分配取决于制造商。

  • IP地址的组成 网络地址/网络号(标识网段)+主机地址/主机号(标识设备)

    • 子网掩码

      将IP地址划分成网络地址和主机地址两部分。

  • IP地址的分类

    • A类地址范围1.0.0.1到127.255.255.254

    • B类地址地址范围128.0.0.1-191.255.255.254

    • C类地址范围192.0.0.1-223.255.255.254

  • 特殊地址

    IP地址含义
    127.~.~.~本地回环测试(表示本机)
    255.255.255.255受限广播地址,只在本网络上广播,只能作为目的地址
    0.~.~.~保留不指派
    0.0.0.0表示本网络的本主机,只能作为源地址
    主机位全为0网络地址(代表该网络)
    主机位全为1广播地址(代表该网络的所有主机)
  • IPv6

    • 128位,16个字节组成,一般表现形式为十六进制
  • 主机自身标识方法

    1. 环回地址(Loopback Address)
    • 环回地址是一种特殊的IP地址,通常用于将数据包发送给同一台主机的网络接口。
    • 在IPv4中,环回地址通常是 127.0.0.1
    • 在IPv6中,环回地址是"::1"。
    • 当主机发送数据包到环回地址时,数据包会被发送到主机的本地网络堆栈,而不会通过网络接口发送到网络中。
    1. 主机名(Hostname)
    • 主机名是主机在网络中的名称标识,可以用来识别主机的身份。
    • 主机名通常与主机的IP地址相关联,但不同主机名可以指向同一个IP地址,而同一个主机名也可以指向多个IP地址
    • 主机名可以用于在网络中寻址和访问主机,也可以用于识别主机的身份和功能。

子网划分

  • 子网划分的原理

    借用IP地址中的若干位主机地址充当子网的网络地址,利用子网划分来减少地址浪费

  • 划分后IP地址:

    • 网络号+子网号+主机号
  • 子网&子网掩码

    • 子网用于将一个大的IP地址范围划分成多个较小的、相互隔离的网络,以便更好地管理和分配IP地址。每个子网都有自己的IP地址范围、子网掩码和网关,可以独立地进行网络通信和管理
    • 子网掩码用于指示一个IP地址中哪些位是网络部分,哪些位是主机部分。子网掩码中的连续的1表示网络部分,连续的0表示主机部分。子网掩码通常与IP地址一起使用,用于确定IP地址所属的子网
    • 判断主机是否处于同一网络的方法是通过比较它们的IP地址和子网掩码来确定。如果两台主机的IP地址在同一子网上,那么它们的网络地址部分(即根据子网掩码确定的部分)应该是相同的。
    • 具体步骤如下:
      1. 将两个主机的IP地址与它们的子网掩码进行“按位与”运算。
      2. 如果运算结果相同,那么这两个主机在同一网络上;如果运算结果不同,那么它们在不同的网络上。

网络地址转换NAT(Network Address Translation)

  • 产生背景

    为了节省IP地址和费用,一般企业内部都是使用私有IP地址

    Internet网路的组成设备,使用的都是公有IP地址

    企业内网要与internet互通,必须拥有公有IP地址

    企业内网中的设备,无法使用私有地址与internet互通

  • 分析

    在企业网络的边缘设备(路由器)上,配置默认路由,企业内网可以将数据发送到Internet 由于Internet设备上没有私有IP地址的路由条目,所以数据无法返回到企业内网 在企业网络的边缘设备(路由器)上,使用NAT技术,实现私有地址和公有地址互相转换

  • 作用

    主要应用在企业网络的边缘设备上 对数据包的私有IP地址和公有IP地址进行转换,实现内网到外网的访问 实现企业内网的保护,增强企业内网安全性。因为外网无法直接访问内部设备的私有IP地址

    能够帮助解决IPv4地址枯竭的问题

  • NAT工作原理 路由器对数据包进行地址转换路由器在接收到内部数据包时将内部源IP地址转化为公有IP地址后在进行路由转发

    当一个分组离开公司的时候,首先要通过一个NAT盒,此NAT盒将内部的IP源地址转换成该公司所拥有的真实IP地址, 通常与防火墙组合。

    NAT核心工作表:NAT转换表

静态NAT

NAT表条目是通过手动配置的方式添加进去的 私有IP地址和公有IP地址是 1对1 的关系,不节省公网IP地址

动态NAT

NAT表中的条目是 路由器出炉数据包 时自动形成的 基于NAT地址池 实现私有地址和公有地址之间的转换,比静态NAT更加节省公网IP

ARP(**Address Resolution Protocol)**地址解析协议

  • 将IP地址转换为MAC地址

  • ARP高速缓存表

    • 静态
    • 动态
      • ARP请求报文(广播)
      • ARP响应报文(单播)

    只能在一段链路/一个网络中使用

    工作原理:假设主机A和B在同一个网段,主机A要向主机B发送信息,具体的地址解析过程如下:

    (1) 主机A首先查看自己的ARP表,如果ARP表中含有主机B对应的ARP表项,则主机A直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。

    (2) 如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。

    (3) 主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:①将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。

    (4) 主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。

  • RARP反地址解析协议

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

通过ICMP传输控制消息,控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。

发送差错报告报文和询问报文

  • ping命令

    通过发送回送请求报文和回送回答报文检测源主机到目的主机的链路是否有问题,目的地是否可达,以及通信的延迟情况

    Ping 命令发送一个 ICMP 请求报文给目的 IP,然后目的 IP 回复一个 ICMP 报文。

    原理:网络上的机器都有唯一确定的 IP 地址,我们给目标 IP 地址发送一个数据包, 对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在, 可以初步判断目标主机的操作系统等。 因为 ping 命令是使用 ICMP 协议,所以没有端口号,但是有两个域:类型和代码。

  • tracert命令 通过发送探测报文获取链路地址信息

    ① 第一探测报文 TTL 为 1,到达第一个路由器时,TTL 减 1 为 0 所以丢掉这个探测包,同时向源主机发回 ICMP 时间报文,这时源主机就获得了第一个路由器的 IP 地址

    ② 接着源主机发送第二个探测报文, TTL 增 1 为 2,到达第一个路由器 TTL 减 1 为 1 并转发探测包到第二个路由器,这时 TTL 减 1 为 0,丢掉这个探测包并向源主机发回 ICMP 时间超过报文,源主机就获得了 第二个路由器的 IP 地址;

    ③ 以此类推,直到探测报文到达 traceroute 的目的地,这时源主机就获得了到目的地的每一跳路由的 IP 地址。

DHCP(动态主机配置协议)

网络层的路由

路由

分组从源到目的地时,决定端到端路径的网络范围的进程 。路由是指导报文转发的路径信息,通过路由可以确认转发IP报文的路径

路由器

  • 主要功能:路由选择+分组转发
    • 基本结构=路由选择部分(路由选择处理机)+分组转发部分(交换结构、输入端口、输出端口)

路由表

  • 包含目的网络地址+子网掩码+下一跳地址

网关

  • 又称网间连接器、协议转换器。用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。

路由获取方式

  • 直连路由
  • 静态路由
  • 动态路由

路由聚合(构造超网)

最长前缀匹配

路由选择方式

非自适应路由选择

  • 静态路由

    预先配置好一组静态路由表,用于指导数据包的转发。由管理员手工配置、配置方便,对系统要求低,适用于拓扑结构简单稳定的小型网络。

    可能产生路由环路问题,生存TTL字段来防止IP数据包在路由环路中永久兜圈

  • 缺省路由

    是一种特殊的路由,当报文没有在路由表中找到匹配的具体表项时才能使用的路由

自适应路由选择

  • 路由器根据实时的网络状况和拓扑信息动态地选择最佳的路径进行数据包的转发。

  • 自治系统(AS) 单一技术管理下的一组路由器,这些路由器使用一种AS内部的路由选择协议和共同的度量来确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议来确定分组之间的路由。

    一个自治系统内的所有网络都在一个行政单位(一家公司或大学)管辖,一个自治系统的所有路由器在本自治系统内部都必须是连通的。 自治系统的路由选择称为域内路由选择,自治系统之间的路由选择称为域间路由选择

  • 动态路由协议(RIP、OSPF、IS-IS、BGP)

    • 外部网关协议EGP

      • 边界网关协议BGP

      (1)找什么

      力求寻找一条能够到达目的网络且良好的路由(该路由不能兜圈子),而并非寻找一条最佳路由

      (2)BGP发言人 配置BGP时,每个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人”。一般情况下,两个BGP发言人往往都是通过一个共享网络连接在一起的。而BGP发言人往往就是BGP边界路由器,它们不仅要执行外部网关协议,还要执行自己所在自治系统的内部网关协议。

      (3)交换路由信息 不同自治系统的发言人要交换路由信息,首先必须建立TCP连接。端口号为179。

      在此TCP连接上交换BGP报文以建立BGP会话。然后利用该会话来交换路由信息。使用TCP连接交换路由信息的两个“BGP发言人”彼此为对方的邻站或对等站。

      BGP发言人交换网络可达性的信息(即要到达某个网络所要经过的一系列自治系统),之后它们就根据所采用的策略从接收到的路由信息中找出到达各自治系统的较好的路由(即构造出树形结构、不存在回路的自治系统连通图)。

  • 内部网关协议IGP

    • IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)
    ⭐️RIP路由信息协议⭐️OSPF开放式最短路径优先
    基于矢量的动态路由协议基于链路状态的协议
    适用于中小规模的网络拓扑,最大跳数为15适用于较大规模的网络
    缺点:“好消息传播得快,而坏消息传播慢”。路由回路或距离无穷计数问题。RIP路由器交换的信息是当前本路由器的路由表使用SPF算法,计算最短路径。树形协议。
    RIP不支持.OSPF支持可变长度子网掩码(VLSM)
    OSPF的收敛速度比RIP的更加迅速OSPF的收敛速度比RIP的更加迅速
    RIP是一种距离矢量路由协议,基于跳数来选择最佳路由。RIP路由器周期性地向相邻路由器发送路由更新信息更新路由表,并将更新信息传播给相邻路由器。OSPF是一种链路状态路由协议,基于链路状态来选择最佳路由。
    OSPF路由器通过向邻居路由器发送链路状态广播来描述自己的链路状态。
    所有的链路状态信息被收集到一个链路状态数据库中,然后使用Dijkstra算法计算最短路径树。每个路由器使用这个最短路径树来计算出到达目的地的最短路径,并更新自己的路由表。

分布式路由选择

  • 分布式路由选择是指路由选择过程分布在网络中的多个节点上,每个节点根据自己的局部信息进行路由决策,并将结果传播给周围的节点。(RIP\OSPF\IS-IS\BGP)
  • 这种路由选择方法具有去中心化、灵活性高的优点,能够适应大规模网络的需求和变化。

最佳路由选择

  • 最佳路由选择是指选择一条具有最小代价(如最短路径、最低延迟、最小成本等)的路径进行数据包的转发。
  • 最佳路由选择算法通常会考虑多种因素,如链路成本、带宽、延迟、拥塞等,以选择最优的路径。

网络层提供的两种服务

TCP/IP 体系中,采用数据包服务,网络层向上层(运输层)只提供简单灵活的无连接的、尽最大努力交付的数据报(IP 数据报)服务。网络层不提供服务质量的承诺

对比方面虚电路服务数据报服务
思路可靠通信由网络保证可靠通信由主机保证
连接的建立必须建立网络层连接不需建立网络层连接
终点地址仅在连接建立阶段使用,每个分组使用短的虚电路号每个分组都有终点的完整地址
分组的转发属于同一条虚电路的分组均按照同一路由进行转发每个分组可走不同的路由
当结点出故障所有通过出故障的结点的虚电路均不能工作出故障的结点可能会丢失分组,一些路由可能会发生变化
分组的顺序按顺序到达不一定按序到达
服务质量保证可以将通信资源提前分配给每一个虚电路,容易实现很难实现

虚电路

将通信路径视为一系列逻辑连接(虚电路),而不是直接的物理连接。

在虚电路操作中,数据传输通过建立预先确定的路径进行,该路径由一系列网络节点(如路由器)组成,每个节点都有一个唯一的标识符。在数据传输之前,发送方和接收方之间的路径被预先建立,并且每个中间节点都记录了数据包的传输路径。

虚电路操作具有以下几个特点:

  1. 预先建立路径
  2. 逻辑连接:虚电路操作将通信路径视为一系列逻辑连接,而不是直接的物理连接。这些逻辑连接由路由器之间的通信协议建立和维护,从而形成端到端的通信路径。
  3. 有状态:虚电路操作是有状态的,即在数据传输期间需要维护虚电路的状态信息。这包括虚电路的建立、维护和拆除等过程。
  4. 按顺序传输:虚电路操作通常会按照预先建立的路径顺序传输数据包,确保数据包按照一定顺序到达目的地。这有助于保证数据的顺序性和可靠性。
  5. 流量控制:虚电路操作可以实现流量控制,通过调整虚电路中的传输速率或缓冲区大小来控制数据包的传输速度,以避免网络拥塞和丢包。
  6. 资源预留:虚电路操作可以在虚电路建立的过程中为数据传输预留一定的网络资源,如带宽、缓冲区等,以保证数据传输的质量和可靠性。
  7. 适用于实时应用:由于虚电路操作具有顺序传输、流量控制和资源预留等特点,因此特别适用于实时应用,如语音通话、视频会议等,可以保证数据的时效性和稳定性。
  8. 分组开销小

IP数据报的发送和转发过程

检查是否出错,若出错并丢弃通告

直接交付:主机发送IP数据报

间接交付:路由器转发IP数据报

  • 如何进行
    • 根据IP地址找到目标网络,然后取到目标网络的路口路由器,再将报文进行转发,最终到达目的主机。
    • 真正指导路由转发的是路由表,当数据包到达设备后直接通过路由表转发
    • 当到达同一目的地址只有一条路由条目时,就通过此路由条目转发
    • 当到达同一目的地址有多条路由条目时,通过最长匹配原则进行转发**(最长地址前缀匹配)**

传输层

传输层概论

  • 端到端的服务,向上层提供通信服务

  • 进程标识符PID

  • 复用和分用

    • 多个用户使用一个IO资源 发送消息 时,我们称之为“复用”。
    • 多个用户使用一个IO资源 接收消息 时,我们称之为 “分用” 。
    • 在运输层 多个进程(这里一个端口表示一个进程) 利用一个运输层协议(或者称为运输层接口)发送数据称为**复用;**同理,接收时叫做 分用
  • 端口号

    所谓的端口,就好像是门牌号一样,客户端可以通过ip地址找到对应的服务器端,但是服务器端是有很多端口的,每个应用程序对应一个端口号,通过类似门牌号的端口号,客户端才能真正的访问到该服务器。端口号只有本地意义

传输层的两个重要协议

TCP

点对点信道

  • 窗口

    • 流量控制

      发送方发送速率不要太快,让接收方来得及接收

      利用滑动窗口机制实现:利用接收窗口大小限制发送窗口大小

      与TCP报文中的窗口大小字段有关,

    • 拥塞控制

      TCP发送方因为IP网络的拥塞而被遏制。

      随着网络中的主机增加其发送速率并使网络变得十分拥挤,此时会经常发生丢包现象,导致网络的传输效率急剧降低。分组的超时重传通常被作为网络拥塞的标志

      拥塞控制算法:慢开始——拥塞避免——快重传——快恢复

  • ⭐️TCP的三次握手和四次挥手

    确保双方都认可对方的初始序列号并且建立起可靠的通信信道。

    1. 客户端发送一个带有SYN标志的数据包给服务端(SYN=1,seq=x)
    2. 服务端接收成功后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了(SYN=1,ACK=1,ack=x+1,seq=y)
    3. 客户端再回传一个带有ACK标志的数据包,表示我知道了,握手结束。(ACK=1,seq=x+1,ack=y+1)

    由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。

    1. 客户端发送一个FIN,用来关闭客户端到服务端的数据传送,客户端进入FIN_WAIT_1状态(FIN=1,ACK=1,seq=u,ack=v)
    2. 服务端收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务端进入CLOSE_WAIT状态;(ACK=1,seq=v,ack=u+1)
    3. 服务端发送一个FIN,用来关闭服务端到客户端的数据传送,服务端进入LAST_ACK状态;(FIN=1,ACK=1,seq=w,ack=u+1)
    4. 客户端收到FIN后,客户端t进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,服务端进入CLOSED状态,完成四次挥手。(ACK=1,seq=u+1,ack=w+1)
  • ⭐️TCP可靠传输的实现

    • 数据传输和连接三次握手四次挥手

    • TCP基于以字节为单位的滑动窗口来实现可靠传输

      • 发送方在未收到接收方的确认时可将发送窗口内还未发送的数据全部发送出去
      • 接收方只接收序号落入发送窗口内的数据
    • ARQ重传协议

    • 流量控制

    • 拥塞控制

    检验和:TCP 在发送和接收数据时,都会计算一个检验和,用来检测数据是否在传输过程中发生了错误或损坏。如果检验和不匹配,说明数据有误,TCP 会请求重传。 序列号和确认应答:TCP 会给每个发送的数据段分配一个序列号,用来标识数据的顺序和完整性。接收方收到数据后,会发送一个确认应答报文,告诉发送方已经收到了哪些数据,以及期待收到下一个序列号的数据。如果发送方没有收到确认应答,或者收到了重复的确认应答,说明数据丢失或延迟了,TCP 会进行重传。 超时重传:TCP 会设置一个超时时间,如果在超时时间内没有收到确认应答,就认为数据丢失了,需要重传。超时时间的设置需要根据网络的状况动态调整,一般是根据往返时延(RTT)和其波动范围(DevRTT)来计算的。 快速重传:TCP 还有一种快速重传的机制,它不是以时间为驱动,而是以数据为驱动。当发送方连续收到三个相同的确认应答时,就认为数据丢失了,不等待超时时间就立即重传。 选择性确认:TCP 还可以使用选择性确认(SACK)的方法,让接收方告诉发送方哪些数据已经收到了,哪些数据还没有收到。这样发送方就可以只重传丢失的数据,而不是整个窗口的数据。

  • TCP首部

  1. 端口号

    16位源端口:发送方主机的应用程序的端口号

    16位目的端口:目的主机的应用程序的端口号

  2. 序列号

    32位:表示本报文段所发送数据的第一个字节的编号

  3. 确认号

    32位TCP确认序号:表示接收方期望收到发送的下一个报文段的第一个字节数据的编号

  4. 首部长度

    4位TCP首部长度:数据偏移是指数据段中的“数据”部分起始处距离TCP报文段起始处的字节偏移量。确定TCP报文的报头部分长度,告诉接收端应用程序,数据(有效载荷)从何处开始

  5. 保留字段

    6位保留字段:为TCP将来的发展预留空间,目前必须全部为0

  6. 标志位字段

    6位标志位

    名称说明
    URG表示本报文中发送的数据(有效载荷)是否包含紧急数据:URG=1时表示有紧急数据;当URG=1时,后续的16位紧急指针字段才有效
    ACK表示本报文前面的确认号字段是否有效:只有当ACK=1时,前面的确认号字段才有效;TCP规定,建立连接后,ACK必须为1
    PSH告诉对方收到该报文段后,上层应用程序立即把数据从TCP接收缓冲区读取,保证TCP接收缓冲区有能力接收新数据或清空TCP接收缓冲区
    RST表示是否重置连接:若RST=1,说明TCP连接出现严重错误(如主机崩溃),必须释放连接,重新建立连接。携带RST标识的报文称为复位报文段
    SYN在建立连接时使用,用来同步序号;当SYN=1,ACK=0时,表示该报文为请求建立连接的报文;当SYN=1,ACK=1时,表示同意建立连接;只有在建立连接的前两次请求中SYN才为1。该报文称为同步报文段
    FIN标记数据是否发送完毕:若FIN=1,表示数据已经发送完毕,可以释放连接。该报文称为结束报文段
  7. 窗口大小

    16位窗口大小:表示发送该TCP报文的接受窗口还可以接受多少字节的数据量。该字段用于TCP的流量控制

  8. 校验和

    16位校验和字段:用于确认传输的数据有无损坏 。发送端基于数据内容校验生成一个数值,接收端根据接受的数据校验生成一个值。两个值相同代表数据有效,反之无效,丢弃该数据包。校验和根据 伪报头 + TCP头 + TCP数据 三部分进行计算

  9. 紧急指针

    16位紧急指针字段: 仅当标志位字段的URG标志位为1时才有意义。指出有效载荷中为紧急数据的字节数。当所有紧急数据处理完后,TCP就会告诉应用程序恢复到正常操作。即使接收方窗口大小为0,也可以发送紧急数据,因为紧急数据无须缓存

  10. 选项字段

    选项字段:长度不定,但长度必须是32bits的整数倍。内容可变,因此必须使用首部长度来区分选项的具体长度

  • 套接字Socket

    通过Socket可以获取与网络通信相关的各种信息,包括连接状态、数据传输状态、错误信息等,从而帮助应用程序实现可靠的网络通信

    我们将一个小区比作一台计算机,一台计算机里面跑了很多程序,怎么区分程序呢,用的是端口,就好像小区用门牌号区分每一户人家一样。手机送到小明家了,怎么进去呢?从大门进啊,怎么找到大门呢?门牌号呀。不就相当于从互联网来的数据找到接收端计算机后再根据端口判断应该给哪一个程序一样吗。小明家的入口就可以用小区地址+门牌号进行唯一表示,那么同样的道理,程序也可以用IP+端口号进行唯一标识。那么这个程序的入口就被称作Socket。

UDP

在IP数据报服务之上增加了一些功能,增加了复用和分用的功能以及差错检测的功能。

  • UDP首部的概念

    ① 源端口号(Source Port) 字段长16位。该字段是可选项,有时可能不会设置源端口号。没有源端口号的时候该字段的值设置为0。可用于不需要返回的通信中。

    ②目标端口号(Destination Port)

    ③ 包长度(Length) 该字段保存了UDP首部的长度跟数据的长度之和。单位为字节(8位字节)。

    ④ 校验和(Checksum) 校验和是为了提供可靠的 UDP首部和数据而设计。 附加在UDP伪首部与UDP数据报之前。通过在最后一位增加一个 “0” 将全长增加16倍。此时将UDP首部的校验和字段设置为"0"。然后以16比特为单位进行1的补码和,并将所得到的1的补码和写入校验和字段。

TCP与UDP比较

协议TCP传输控制协议UDP用户数据报协议
连接性面向连接,全双工通信无连接
可靠性可靠传输不可靠传输
对应用层报文的处理面向字节流面向报文且没有拥塞控制
首部首部最小20字节,最大60字节首部仅8字节
连接对象数量只能点对点,一对一通信支持一对一、一对多、多对多、多对一通信

应用层

常见协议

  • ⭐️域名系统DNS(Domain Name System)

    • 保存域名和IP地址的映射关系

    • 域名结构 三级域名.二级域名.顶级域名TLD

    • 域名服务器

      根域名服务器、顶级域名服务器、权限域名服务器、本地域名服务器

    • 高速缓存

      DNS使用分布在各地的域名服务器来实现域名到IP地址的转换

    • 解析方式

      递归+迭代

      1. 本机向本地域名服务器发出一个DNS请求报文,报文里携带需要查询的域名;
      2. 本地域名服务器向本机回应一个DNS响应报文,里面包含域名对应的IP地址。
  • 文件传输协议FTP

    • C/S模式
    • ⭐️建立的两条链接:控制连接+数据连接
      • 控制连接(21):会话期间保持打开,传输控制指令
      • 数据连接(20):在每次文件传输时才建立,结束后关闭,用于文件传输
    • 两种工作模式:主动模式 + 被动模式
  • 远程终端协议TELNET

  • 万维网WWW

    • URL(统一资源定位符)唯一标识资源
    • Web缓存
      • 代理服务器,即是客户端又是服务器
      • 好处:快、减少网络负担、使较弱的ISP提供有效内容
    • C/S工作方式
    • 超文本标记语言HTML 跳转、显示
    • HTTP协议
      • 超文本传输协议,是一个简单的请求-响应协议

      • 无状态: 协议对于事物处理没有记忆能力,若后续需要处理前面的信息,则必须重传。

      • 采用TCP作为运输层协议

      • 报文格式

        HTTP报文是面向文本的,故每个字段都是ASCLL码

        • 请求报文

        • 响应报文

      • 常见方法

        ① GET 发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。

        ② POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性

        ③ HEAD 向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。

        ④ PUT 向指定资源位置上传其最新内容

        ⑤ DELETE 请求服务器删除Request-URL所标识的资源

        ⑥ TRACE 回显服务器收到的请求,主要用于测试或诊断

        ⑦ CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

      • 连接方式

        • 非持久连接:每个TCP连接最多允许传输一个对象
        • 持久链接:每个TCP连接允许传输多个对象
      • 统一资源定位符URL

        • 一般形式 <协议>://<主机>:<端口>/<路径>

                           (http、ftp)(域名、IP地址)
          
      • 工作原理

        一次HTTP操作称为一个事务,其工作整个过程如下:

        ① 地址解析 在这一步,需要域名系统DNS解析域名得到主机的IP地址。 ② 封装HTTP请求数据包 ③ 封装成TCP包,建立TCP连接(TCP的三次握手) 在HTTP工作开始之前,客户机(Web浏览器)首先要通过网络与服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接 ④ 客户机发送请求命令 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URI)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可内容。 ⑤ 服务器响应

        ⑥ 服务器关闭TCP连接

  • 电子邮件协议

    • 简单邮件传输协议SMTP(Simple Mail Transfer Protocol):
      • 使用SMTP协议的情况:①发件人的用户代理发送方的邮件服务器发送邮件②发送方的邮件服务器接受方邮件服务器发送构件
    • 邮件读取协议:用户代理从接收方的邮件服务器上读取邮件所使用的协议
      • POP3(邮局协议版本3 ):特点:POP服务器只有再用户输入鉴别信息后,才允许对邮箱进行读取。只要用户从POP服务器读取了邮件,POP服务器就把邮件删除
      • IMAP(网际报文存取协议):收信人使用多个用户代理访问同一邮箱,邮件始终保持在邮箱中。加密电子邮件协议:PGP与PEM协议。
  • ⭐️DHCP(Dynamic Host Configuration Protocol)动态主机配置协议

    即插即用联网,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码

    • 工作原理
    1. 客户端发现(DHCP Discover)
      • 当一个设备加入网络或者请求更新网络配置时,它会发送一个DHCP Discover消息到局域网上的DHCP服务器。这个消息是一个广播消息,因此会被局域网上所有的DHCP服务器收到。
    2. 服务器提供(DHCP Offer)
      • 收到DHCP Discover消息的DHCP服务器会向客户端发送一个DHCP Offer消息,其中包含了可用的IP地址、子网掩码、默认网关、DNS服务器等网络配置信息。通常情况下,一个局域网上可能有多个DHCP服务器,但只有一个会响应客户端的请求。
    3. 客户端请求(DHCP Request)
      • 客户端收到DHCP Offer消息后,会选择其中一个提供的网络配置信息,并向提供该信息的DHCP服务器发送DHCP Request消息,确认接受这些配置。
    4. 确认(DHCP Acknowledge)
      • DHCP服务器收到DHCP Request消息后,会向客户端发送DHCP Acknowledge消息,确认分配给客户端的网络配置信息。同时,它会在自己的IP地址租用表中记录客户端分配、IP地址和租用时间等信息。

网络安全

网络安全概论

网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。

面临威胁

  • 主动攻击
    • 主动的去做一些在网络基础上的恶意行为。恶意篡改信息数据,发布恶意程序脚本等。 篡改 恶意程序 拒绝服务
  • 被动攻击
    • 被动攻击主要是收集信息而不是进行访问。不改变数据本身的结构,也不对软硬件数据造成影响。 截获 窃取 流量分析

网络系统的特性

  • 保密性
    • 信息不泄露给非授权用户、实体或过程,或供其利用的特性。
  • 完整性
    • 数据未经授权不能进行改变的特性。即信息在存储或传输过程中保持不被修改、不被破坏和丢失的特性。
  • 可用性
    • 可被授权实体访问并按需求使用的特性。即当需要时能否存取所需的信息。例如网络环境下拒绝服务、破坏网络和有关系统的正常运行等都属于对可用性的攻击。
  • 可靠性
    • 对信息的传播及内容具有控制能力。
  • 不可抵赖性
    • 出现安全问题时提供依据与手段

加密和交互

加密和解密

  • 加密
    • 是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。
    • ⭐️加密手段 MD5加密(信息-摘要算法)——128位 AES加密(称密钥加密)——128、192、256位 SHA1加密(安全哈希算法)——160位 RSA加密——公钥加密,私钥解密(公开密钥加密算法)——1024位
  • 解密
    • 加密的逆过程就是解密

公钥和私钥

  • 对称加密 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
  • 非对称加密
    • 使用非堆成的加密方式时,会生成两把钥匙,发送方利用自己的公钥加密,接收方利用自己的私钥解密。
    • 数字签名的四大特点
    1. 防止重放攻击 攻击者利用网络监听或者其他方式盗取认证凭据,之后再把它重新发给认证服务器。在数字签名中,如果采用了对签名报文加盖时戳等或添加流水号等技术,就可以有效防止重放攻击。

    2. 防止数据伪造

      其他人不能伪造对消息的签名,因为私有密钥只有签名者自己知道,所以其他人不可以构造出正确的签名结果数据。

    3. 防止数据被篡改 数字签名与原始文件或摘要一起发送给接收者,一旦信息被篡改,接收者可通过计算摘要和验证签名来判断该文件无效,从而保证了文件的完整性。

    4. 防止数据抵赖 数字签名即可以作为身份认证的依据,也可以作为签名者签名操作的证据。要防止接收者抵赖,可以在数字签名系统中要求接收者返回一个自己签名的表示收到的报文,给发送者或受信任第三方。如果接收者不返回任何消息,此次通信可终止或重新开始,签名方也没有任何损失,由此双方均不可抵赖。

防火墙

视频

防火墙时一种访问控制技术,可以严格控制进出网络边界的分组,禁止任何不必要的通信,来减少潜在入侵的发生。

  • 防火墙的区域们
    • Local 本地区域 顶级安全区域,安全优先级为100local就是防火墙本身的区域比如ping指令等网际控制协议的回复,需要local域的权限凡是由防火墙主动发出的报文均可认为是从Local区域中发出凡是需要防火墙响应并处理(而不是转发)的报文均可认为是由Local区域接收
    • Trust 受信区 高级级安全区域,安全优先级为85通常用来定义内部用户所在的网络,也可以理解为应该是防护最严密的地区。
    • DMZ 非军事化区 中级安全区域,安全优先级为50通常用来定义内部服务器所在网络作用是把WEB,E-mail,等允许外部访问的服务器单独接在该区端口,使整个需要保护的内部网络接在信任区端口后,不允许任何访问,实现内外网分离,达到用户需求。DMZ可以理解为一个不同于外网或内网的特殊网络区域,DMZ内通常放置一些不含机密信 息的公用服务器,比如Web、Mail、 FTP等。这样来自外网的访问者可以访问DMZ中的服务,但不可能接触到存放在内网中的公司机密或私人信息等,即使DMZ中服务器受到破坏,也不会对内网中的机密信启造成影响。
    • Untrust 非受信区 低级安全区域,安全优先级为5通常用来定义Internet等不安全的网络,用于网络入口线的接入

本文标签: 计算机网络 期末 总复习