计算机网络第一章课后
- 计算机网络协议(Protocol):计算机网络协议是在计算机网络中进行通信和交换信息的规则和约定的集合。它定义了网络中数据的格式、传输方式、错误检测和纠正等方面的规范,以确保不同设备和系统之间能够正确地进行通信。
- 协议实体(Protocol Entity):协议实体是指在计算机网络中执行协议的实体或模块。它可以是硬件设备(如网络接口卡)或软件进程(如网络传输协议的实现)。每个协议实体负责执行特定的协议功能,包括处理协议消息、发送和接收数据等。
服务原语(Service Primitives):服务原语是计算机网络中定义的一组操作,用于实现协议实体之间的通信和交互。它们提供了一种编程接口,允许上层协议实体请求和使用底层协议实体提供的服务。
- 请求原语(request primitive):上层协议实体向底层协议实体发送请求,请求执行特定的操作或服务。
- 指示原语(indication primitive):底层协议实体向上层协议实体发送指示,指示发生了特定的事件或接收到了数据。
- 响应原语(response primitive):底层协议实体向上层协议实体发送响应,回复对请求的执行结果或提供所请求的服务。
- 确认原语(confirm primitive):上层协议实体收到底层协议实体的响应后,发送确认原语以确认接收到响应或处理结果。
协议数据单元(PDU):协议数据单元是在计算机网络中传输的数据单元,它是协议中信息交换的基本单位。不同层次的协议将数据分割为不同的PDU进行传输,每个PDU包含特定的协议头部和有效载荷(payload)。每个协议层将接收到的PDU解析,并将有效载荷传递给上层协议,以实现数据的递送和处理。在不同的协议层中,协议数据单元可能具有不同的名称(如帧、分组、报文等)。
面向连接的服务(Connection-Oriented Service)
- 通信的两个端点(发送方和接收方)在建立通信之前需要先建立一个连接。连接的建立涉及到握手过程,其中包括发送方和接收方之间的交换控制信息以建立可靠的通信路径。
- 连接的建立使得通信的两端可以在通信的整个过程中维护状态信息,以便进行错误检测、流量控制、数据分割和重组等操作。数据传输完成后,连接可以被显式地终止,释放相关的资源。
- 面向连接的服务通常提供可靠性、流量控制和顺序传输等特性,适用于对数据传输的可靠性和顺序性有较高要求的应用,如文件传输、视频流传输等
无连接的服务(Connectionless Service):
- 通信的两个端点之间在发送数据之前不需要建立连接,每个数据包都是独立地发送和处理。发送方将数据包发送到网络,接收方根据数据包的目的地址进行处理。
- 不需要事先建立连接,也不需要维护连接状态信息。每个数据包都是独立的实体,其传输和处理是相互独立的。
- 无连接的服务通常提供了较低的传输延迟和较小的开销,适用于对实时性要求较高、容忍一定数据丢失的应用,如实时音频、视频通话等。
电路交换(Circuit-Switching):
- 通信的两个端点之间在通信过程中会建立一条专用的物理连接(电路)。这条连接会一直保持到通信结束,不论是否有数据传输。
- 在建立连接之后,整个带宽和资源都被分配给该连接,即使在没有数据传输的时候也是如此。这意味着在连接期间,带宽是专用的,不与其他连接共享。
- 数据在电路交换中按照固定的顺序传输,保证了数据的有序性和实时性。数据被分割为固定大小的数据单元(例如语音通话中的时间槽),然后按照顺序通过连接进行传输。
- 电路交换适用于需要连续、实时传输的应用,如传统的电话通信。由于连接是专用的,它可以提供稳定的带宽和固定的时延,但在没有数据传输时仍然占用资源。
分组交换(Packet-Switching):
- 数据被分割为更小的数据包(分组)进行传输。每个数据包包含有关目标地址和其他控制信息,以便在网络中进行路由和交换。
- 数据包根据网络中的可用路径独立地传输,可能通过多个中间节点(路由器)进行转发。每个数据包在传输过程中独立处理,而不需要建立专用的连接。
- 分组交换能够更加灵活地利用网络资源,因为多个数据包可以并行地通过网络进行传输,并且数据传输的带宽和延迟可以根据当前网络负载动态分配。
- 分组交换适用于非实时性要求较高或数据传输较大的应用,如互联网数据传输。它允许多个通信会话共享网络资源,并且可以根据需要动态调整带宽分配。
OSI-RM(开放系统互联-参考模型)
物理层:物理层协议负责在物理媒介上传输原始比特流,提供了数据的传输和接收。它定义了电压、频率、物理连接接口等物理特性。
机械特性:规定了物理连接时对插头和插座的几何尺寸、插针或插孔芯数及排列方式
电气特性:规定了信号状态的电压、电流的识别,最大传输速率等
功能特性:规定了接口信号的来源、作用及其他信号之间的关系
过程特性:规定了使用交换电路进行数据交换的控制步骤,这些控制步骤应用便于比
数据链路层:数据链路层协议负责将原始的比特流组织成更高层次的数据单位(帧),并进行错误检测和纠正,以确保数据在物理链路上的可靠传输。
帧的定界、流量控制、差错检测与纠正、访问控制
通常使用MAC(媒体访问控制)地址来标识网络设备。
网络层:网络层协议负责实现数据在网络中的路由和转发功能,将数据从源主机发送到目标主机。它使用逻辑地址(如IP地址)来标识网络设备。
选择、寻址、分组编码和解码、拥塞控制
定义了数据包的传输路径,并处理不同网络之间的连接。
传输层:传输层协议提供端到端的可靠数据传输,确保数据在源主机和目标主机之间的透明可靠传输。它使用端口号标识不同的应用程序。
提供在不同系统之间的进程间数据交互的可靠服务
分段和重组数据、流量控制、拥塞控制、错误检测和纠正
传输层协议可以是面向连接的(如TCP)或无连接的(如UDP)。
会话层:对对话的双方进行资格审查和验证的规则(发送时进行加密的规则,MD5加密),同时规定发送时的双工模式
单工数据传输只支持数据在一个方向上传输;在同一时间只有一方能接受或发送信息,不能实现双向通信,举例:电视,广播。
半双工数据传输允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;在同一时间只可以有一方接受或发送信息,可以实现双向通信。举例:对讲机。
全双工数据通信允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力;在同一时间可以同时接受和发送信息,实现双向通信,举例:电话通信。
表示层:为数据在传输之前对加密、解密、压缩、解压缩及终端数据格式转换提供一套规则和约定
应用层:所有能产生网络流量的程序,提供应用程序运行的环境、负责管理和执行应用程序
基带传输:指将原始信号(基带信号)直接传输到通信媒介上,不经过调制过程。
把直流(零频)开始到能量集中的一段频率范围称为基本频带,简称为基带。
特点是频带窄,只能传输低频信号。它的传输距离较短,且容易受到噪声和干扰的影响。因此,通常需要使用放大器和调整器来增强信号和抵消噪声。——局域网
带通传输:将原始信号进行调制,转换为适合在通信媒介上传输的信号。
可以传输较高频率的信号,适用于长距离通信。它对噪声和干扰的影响较小,具有较好的抗干扰性能。
- 基带编码方案:
- RZ(归零码)
- NRZ(不归零码)
- NRZI(不归零逆)——USB
0变1不变
调制:在信号传输过程中,将数字信号或基带信号转换为适合在传输介质上传输的模拟信号或载波信号的过程。——振幅、频率或相位
调制的基本目的是将原始信号调整到适合传输的频率范围,以便有效地传输信号,提高传输质量和可靠性。
调幅(AM)、调频(FM)、调相(PM)、正交振幅调制(QAM)、正交频分多路复用(OFDM)
复用:将多个信号或数据流合并到一个共享的传输通道上的过程。
允许多个信号通过同一传输介质同时传输,以提高传输效率和利用率。
常用于电话系统、数据通信网络和广播电视等领域。
时分复用(TDM)、频分复用(FDM)、波分复用(WDM)、码分复用(CDM)
- 5G移动通信网络面向的三大类业务场景:增强移动宽带、大规模机器类通信、超可靠低延迟通信
- Linux命令:
ip
:ip
命令用于管理网络接口和路由表。它可以用来配置网络接口的IP地址、子网掩码、网关等信息,也可以查看和修改路由表信息,以及执行其他与网络相关的操作。ip link
:ip link
命令用于管理网络接口。它可以列出系统上的网络接口,包括物理接口和虚拟接口,并提供配置接口、启用/禁用接口、设置MTU(最大传输单元)等功能。ip route
:ip route
命令用于管理IP路由表。它可以显示当前系统的路由表信息,包括目的网络、下一跳网关、出接口等,并可以添加、修改或删除路由表项。ping
:ping
命令用于测试与目标主机之间的连通性。通过发送ICMP回显请求消息(ping请求)并等待目标主机的回应消息(ping响应),可以检查网络是否可达以及延迟时间。ifconfig
:ifconfig
命令用于配置和显示网络接口的配置信息。它可以列出系统上的网络接口及其配置,包括IP地址、子网掩码、MAC地址等。然而,目前在许多Linux发行版中,ifconfig
已被ip
命令所取代。route
:route
命令用于管理IP路由表。它可以显示和操作系统上的路由表信息,包括添加、删除或修改路由表项。然而,推荐使用更现代的ip route
命令来代替。tcpdump
:tcpdump
命令用于在网络上抓取和分析数据包。它可以捕获经过指定网络接口的数据包,并以人类可读的格式显示这些数据包的详细信息,如源IP地址、目标IP地址、端口号等。netstat
:netstat
命令用于显示网络连接、路由表和网络接口的状态信息。它可以列出当前系统上的网络连接、监听端口、网络接口统计信息等,有助于诊断网络问题和监控网络活动。iptables
:iptables
命令用于配置Linux系统上的防火墙规则。它可以设置和管理网络数据包的过滤规则、NAT(网络地址转换)规则、端口映射等,提供对网络流量的控制和保护。