网工 FTP

FTP(File Transfer Protocol)是一种用于在网络上传输文件的标准协议。FTP有两种主要的工作模式:主动模式(Active Mode)和被动模式(Passive Mode)。这两种模式的区别主要在于客户端和服务器之间如何建立数据连接。

主动模式(Active Mode)

  1. 控制连接:客户端发起一个控制连接到服务器的默认端口21。
  2. 数据连接:当客户端请求数据传输时,服务器会尝试打开一个临时端口(通常大于1024),并通过控制连接告诉客户端该端口号。
  3. 服务器监听:服务器开始监听这个临时端口以接收客户端的数据连接。
  4. 客户端发起连接:客户端连接到服务器指定的临时端口以传输数据。
  5. 数据传输:数据传输完成后,数据连接关闭。

如果客户端和服务器之间有防火墙,主动模式下服务器是无法连接客户端的。需要在防火墙上开户ftp 穿越。

被动模式(Passive Mode)

  1. 控制连接:客户端发起一个控制连接到服务器的默认端口21。
  2. 数据连接:当客户端请求数据传输时,服务器会在一个随机的临时端口上监听,并通过控制连接告诉客户端该端口号。
  3. 客户端监听:客户端监听一个端口等待服务器连接。
  4. 服务器发起连接:服务器连接到客户端的指定端口以建立数据连接。
  5. 数据传输:数据传输完成后,数据连接关闭。

被动模式下不受防火墙的限制 。

区别总结

  • 主动模式:服务器尝试连接客户端的随机端口。
  • 被动模式:服务器监听一个临时端口,客户端连接到该端口。

选择模式的原因

  • 主动模式通常在客户端位于可以接受外部连接的网络环境中使用。
  • 被动模式通常用于客户端位于防火墙后面或者NAT(Network Address Translation)环境中的情况,因为客户端可以发起连接,而服务器不能从外部直接连接到客户端。

注意事项

  • 在使用FTP时,被动模式可能需要在防火墙上开放额外的端口范围。
  • 许多现代FTP客户端和服务器支持自动检测并选择最合适的模式。

网工 基带与宽带传输、模拟信号与数字信号

基带(Baseband)和宽带(Broadband)是描述通信系统中信号传输特性的两个术语。它们主要区别在于信号的传输方式和使用的频谱范围。下面详细解释这两者的区别:

基带传输

基带传输是指直接使用原始信号(通常是低频信号)在信道中传输的方法。在基带传输中,信号没有经过调制,直接以原始形式发送。

特点:

  • 信号未经调制:基带信号通常是原始的数字信号或模拟信号,没有经过调制。
  • 占用单一频段:基带信号占用一个相对较低且固定的频段。
  • 传输距离较短:由于信号没有经过调制,基带信号的传输距离通常较短。
  • 适用于近距离传输:如局域网(LAN)中的以太网信号传输。
  • 带宽限制:基带信号的带宽受限于传输媒介的特性。

宽带传输

宽带传输是指通过调制技术将信号分布在较宽的频带上进行传输的方式。在宽带传输中,信号通过调制后在较高的频率范围内传输。

特点:

  • 信号经过调制:宽带信号通常需要经过调制,将原始信号转换到较高的频率范围。
  • 占用较宽频段:宽带信号占用较宽的频带,可以同时传输多个信号。
  • 传输距离较长:由于信号经过调制,宽带信号的传输距离通常较长。
  • 适用于远距离传输:如广域网(WAN)中的电话线路、有线电视网络等。
  • 带宽较高:宽带信号可以提供更高的数据传输速率。

应用场景

  • 基带传输:通常用于局域网(LAN)中,如以太网、USB、串行通信等。
  • 宽带传输:适用于远距离通信和需要较高带宽的应用,如ADSL、有线电视、卫星通信等。

示例

  • 以太网:以太网使用基带传输技术,信号直接在电缆中传输,适用于短距离的局域网。
  • ADSL:非对称数字用户线路(ADSL)使用宽带传输技术,信号通过调制分布在不同的频率上,适用于远距离的互联网接入。

总结

基带传输和宽带传输的主要区别在于信号是否经过调制以及使用的频谱范围。基带传输通常适用于短距离和较低带宽的需求,而宽带传输则适用于远距离和较高带宽的需求。在实际应用中,选择哪种传输方式取决于具体的应用场景、传输距离和所需的带宽等因素。

模拟信号和数字信号都可以通过多种媒介进行传输。

数字信号传输媒介

有线媒介

  • 双绞线(Twisted Pair Cable):用于以太网和其他类型的局域网。
  • 同轴电缆(Coaxial Cable):用于有线电视网络,有时也用于局域网。
  • 光纤(Optical Fiber):广泛用于高速数据通信,如互联网骨干网、数据中心内部连接等。
  • 电力线通信(Power Line Communication, PLC):通过家庭或办公室的电力线传输数据。

无线媒介

  • 无线电波(Radio Waves):用于蜂窝网络、Wi-Fi等。
  • 微波(Microwaves):用于点对点无线链路、卫星通信等。
  • 红外线(Infrared):用于短距离无线通信,如键盘、鼠标等设备。
  • 蓝牙(Bluetooth):用于短距离无线通信,如耳机、扬声器等。
  • 近场通信(Near Field Communication, NFC):用于接触式支付、身份验证等。
  • 超宽带(Ultra-Wideband, UWB):用于短距离高速数据传输。

总结

  • 模拟信号通常通过传统的有线媒介如双绞线和同轴电缆传输,以及通过无线媒介如无线电波和微波进行广播。
  • 数字信号则更多地通过光纤和先进的无线技术进行传输,如Wi-Fi、蓝牙和蜂窝网络等。

随着技术的进步,越来越多的应用倾向于使用数字信号,因为数字信号更容易处理、更稳定并且可以实现更高的数据传输速率。然而,在一些特殊的应用场合,模拟信号依然有其独特的价值。

模拟信道和数字信道是通信系统中两种基本的数据传输方式,它们分别使用模拟信号和数字信号来传输信息。下面详细介绍这两种信道的特点:

模拟信道

模拟信道使用连续变化的信号来传输信息。这些信号通常是电压或电流的变化,它们可以代表语音、图像或任何形式的连续变化的信号。在模拟通信中,信号的幅度、频率或相位可以被调制以携带信息。

特点:

  • 连续性:模拟信号是连续变化的,可以取任意值。
  • 易受干扰:模拟信号容易受到噪声的影响,这可能导致信号失真。
  • 带宽利用率:模拟信号占用一定的带宽,不同类型的模拟信号可能需要不同的带宽。
  • 调制技术:模拟信号可以通过AM(幅度调制)、FM(频率调制)或PM(相位调制)等方式进行调制。
  • 恢复质量:模拟信号的恢复质量取决于接收端的信噪比,信噪比越高,恢复的质量越好。

数字信道

数字信道则使用离散的信号来传输信息。这些信号通常是由二进制数(0 和 1)组成的序列。数字信号的优点在于它们更容易处理和传输,而且可以通过编码技术提高抗干扰能力。

特点:

  • 离散性:数字信号是离散的,只有有限的状态(如0和1)。
  • 抗干扰性:数字信号可以使用纠错编码等技术减少错误。
  • 带宽效率:数字信号可以通过高级调制技术和多路复用技术提高带宽利用率。
  • 调制技术:数字信号可以采用ASK(幅度键控)、FSK(频移键控)、PSK(相移键控)等多种调制方式。
  • 恢复质量:数字信号的恢复质量主要取决于误码率,误码率越低,恢复的质量越好。

比较

  • 传输质量:数字信号在传输过程中可以保持良好的完整性,而模拟信号则容易受到噪声的影响。
  • 处理难度:数字信号更容易进行存储、处理和加密。
  • 成本:早期模拟技术的成本可能较低,但现在数字技术的成本已经大大降低。
  • 应用领域:模拟技术在语音通信等领域仍然有其地位,而数字技术广泛应用于数据通信、互联网等领域。

总的来说,数字通信由于其高可靠性、易于处理以及便于集成等优势,在现代通信系统中占据主导地位。不过,在某些特定的应用场景下,模拟通信仍有其独特的优势。

网工 传输层其它的协议

以下是一些除了TCP和UDP之外相对常见的传输层协议:

SPX(Sequenced Packet Exchange,顺序包交换协议)

  • 由Novell公司开发,主要用在Novell NetWare网络操作系统中,它与TCP类似,是面向连接的可靠协议,确保数据按顺序传递,它和IPX协议(网络层协议)组合构成NetWare的核心通信机制,但随着NetWare操作系统使用的减少,SPX的使用场景也变得非常有限。

DCCP(Datagram Congestion Control Protocol,数据报拥塞控制协议) :

  • 提供了一种介于TCP的可靠性和UDP的低开销与低延迟之间的通信服务。它支持拥塞控制机制,但又是面向数据报的(类似UDP不是面向流的),适用于一些对拥塞控制有要求但又不想用TCP的场景如流媒体等。

SCTP(Stream Control Transmission Protocol,流控制传输协议) :

  • 结合了TCP和UDP的一些优点。
  • 它支持多流(在一个连接中可以有多个独立的逻辑流)和多宿(一个端点可以有多个IP地址用于通信)特性等。常用于电信领域等需要可靠且复杂数据传输场景。

RTP(Real – time Transport Protocol,实时传输协议)和RTCP(Real – time Transport Control Protocol ,实时传输控制协议) :

  • RTP 用于承载实时数据比如音频和视频等媒体流数据;
  • RTCP 用于监控服务质量和传递与正在进行的会话相关的信息(如统计数据、反馈等),通常它们配合使用,广泛应用于网络多媒体通信如视频会议、IP电话等。

网工 tcp 与udp 的伪首部

一、TCP伪首部

  1. 组成:
    • 源IP地址:发送方的IP地址,占4字节。
    • 目的IP地址:接收方的IP地址,占4字节。
    • 保留:置为0,占1字节。
    • 协议:标识上层协议是TCP,值为6,占1字节。
    • TCP报文长度:TCP报文段的长度(包括TCP首部和数据),占2字节。
  2. 作用:
    • 在计算TCP校验和时使用。通过把伪首部与TCP报文(包括TCP首部和数据)一起进行校验和计算,可以增强校验的准确性,确保TCP报文在传输过程中没有被篡改,并且能够正确地到达目标地址和上层协议。

二、UDP伪首部

  1. 组成:
    • 源IP地址:同样是发送方的IP地址,4字节。
    • 目的IP地址:接收方的IP地址,4字节。
    • 保留:也是置为0,1字节。
    • 协议:标识上层协议是UDP,值为17,1字节。
    • UDP报文长度:UDP数据报的长度(包括UDP首部和数据),2字节。
  2. 作用:
    • 与TCP伪首部类似,主要用于计算UDP校验和。确保UDP数据报在网络中传输的完整性和正确性,防止在传输过程中因各种原因导致的数据错误或被篡改。

三、两者的共同点和意义

  • 共同点:
    • 都包含源IP地址、目的IP地址、协议类型和报文长度等关键信息。
    • 都不实际在网络中传输,只是在计算校验和时临时参与运算。
  • 意义:
    • 增强了校验的可靠性:通过引入这些网络层的关键信息(IP地址等)到传输层校验和的计算中,可以更全面地验证数据在网络中传输的正确性,因为IP地址的参与可以确保数据到达了正确的目的地,协议类型的确认可以保证上层协议的匹配性。
    • 提高数据传输的准确性:有助于检测和防范在传输过程中可能出现的各种错误,如数据位的篡改、传输路径错误等,从而提升了整个网络通信的质量和可靠性。

示例

某UDP报文的2个16bit 为 1110011001100110 1101010101010101 得到的校验和是

  1. 首先将两个 16 位的数据相加: 1110011001100110 +1101010101010101 = 1 1011101110111011
  2. 然后对结果进行回卷进位:
    • 如果相加结果超过 16 位,将进位值与低 16 位的值再次相加。这里超过了 16 位,只取低 16 位,进位是1。
    • 把进位与低 16 位相加:1011101110111011+1 = 1011101110111100
  3. 最后对结果取反:
    • 对1011101110111100取反,得到0100010001000011
    所以校验和是 0100010001000011

网工 TCP 计时器

在 TCP 中有多种计时器用于不同的目的,以下是几种主要的 TCP 计时器:

一、重传计时器(Retransmission Timer)

  1. 作用:
    • 主要用于处理报文段丢失和确认超时的情况。当发送方发送一个数据报文段后,就会启动重传计时器。
    • 如果在计时器超时之前没有收到接收方对该报文段的确认,发送方就认为该报文段丢失或损坏,然后触发重传操作。
  2. 工作原理:
    • 发送方在发送数据时启动该计时器,并根据估算的往返时间(RTT)和一些动态调整的因子来设置计时器的时长。
    • 随着网络状况的变化,RTT 会发生波动,发送方会通过一些算法(如指数加权移动平均法)来不断更新和调整 RTT 的估算值,进而调整重传计时器的时长,以适应网络的变化。

二、坚持计时器(Persistent Timer)

  1. 作用:
    • 用于解决零窗口死锁问题。当接收方的接收缓冲区已满,它会向发送方通告一个零窗口大小,此时发送方会停止发送数据
    • 然而,接收方的缓冲区可能会在稍后有空间接收新的数据,为了让发送方能够探测到接收方窗口的变化,坚持计时器就发挥作用。
  2. 工作原理:
    • 当发送方收到零窗口通知时,启动坚持计时器。
    • 计时器周期性地触发发送方发送一个探测报文段,询问接收方的窗口大小是否已经改变。
    • 这个探测报文段只有 1 字节的数据,它可以触发接收方重新通告窗口大小。如果接收方的窗口仍然为零,发送方会继续等待并重新启动坚持计时器;如果接收方有了可用的缓冲区空间,它会返回一个非零的窗口通告,发送方就可以恢复正常的数据发送。

三、保活计时器(Keepalive Timer)

  1. 作用:
    • 用于检测一个空闲连接是否仍然有效。在一些长时间没有数据传输的连接中,可能会由于网络故障或其他原因导致某一方出现异常,而另一方无法察觉。保活计时器可以帮助检测这种情况。
  2. 工作原理:
    • 当连接双方长时间没有数据交互时,服务器端(通常是服务器)会启动保活计时器。
    • 如果在计时器超时之前仍然没有数据传输,服务器会向客户端发送一个探测报文段,查看客户端是否还存在。
    • 如果客户端正常响应,连接继续保持;如果客户端没有响应,服务器会在经过一定次数的重试后,认为客户端已经出现故障或异常,然后关闭连接。

四、时间等待计时器(Time_Wait Timer)

  1. 作用:
    • 在 TCP 连接关闭时,确保旧的报文段在网络中完全消失,防止已关闭连接的报文段对新连接造成干扰。
  2. 工作原理:
    • 当主动关闭连接的一方(通常是客户端)发送了最后一个 ACK 确认报文后,会进入 TIME_WAIT 状态并启动时间等待计时器。
    • 计时器设置一个固定的时长(通常是 2 倍的最大报文段生存时间,即 2MSL)。在这段时间内,该连接所使用的端口号不能被重新使用。
    • 这样可以保证在这个时间段内,如果有延迟到达的旧报文段,它们会在计时器超时之前被丢弃,从而不会干扰新建立的连接。

重传计时器的时长是根据往返时间(RTT)来计算的,并且会随着网络状况的变化动态调整。其计算过程大致如下:

一、初始 RTT 测量与估算

  1. 在 TCP 连接建立初期,会通过发送一个测试报文段来测量初始的 RTT。
    • 发送方记录下发送报文段的时间点 。
    • 当接收到对应的确认报文时,记录下时间点 。
    • 初始 RTT 就计算为 。

二、后续 RTT 的平滑处理与更新

  1. 指数加权移动平均(Exponential Weighted Moving Average,EWMA)算法:
    • 后续的 RTT 估算不会只依赖于某一次的测量值,而是采用指数加权移动平均的方法。
    • 新的 RTT 估算值  计算公式为:。
      • 其中, 是上一次的 RTT 估算值, 是本次测量得到的实际 RTT 值, 是一个加权因子(通常取值在 0.1 到 0.2 之间),它决定了新测量值在估算中所占的权重。较小的  意味着更平滑的变化,对突发的网络变化不太敏感;较大的  则使估算值更快地适应网络的变化。
  2. 重传超时时间(RTO,Retransmission Timeout)计算:
    • RTO 通常基于当前的 RTT 估算值来计算。
    • 一种常见的计算方法是 。
      •  是经过平滑处理后的 RTT 估算值。
      •  是 RTT 的偏差估计值,初始时也可以通过测量得到,后续同样可以通过类似 EWMA 的方法进行更新,例如 ,其中  是另一个加权因子(通常也在 0.1 到 0.2 之间)。

三、根据网络状况动态调整

  1. 当网络状况变化时(如出现拥塞、链路质量变化等),测量得到的实际 RTT 会发生波动。
  2. 如果连续几次测量的 RTT 增大,说明网络可能出现拥塞或延迟增加,此时 RTO 会相应地增加,以避免过于频繁的重传。
  3. 如果 RTT 减小,表明网络状况改善,RTO 可以适当减小,以提高数据传输的效率,但调整幅度会受到算法的限制,以避免过于频繁的大幅调整。

例如,开始时测量得到的初始 RTT 为 100ms,假设 ,。第一次测量得到新的 RTT 为 120ms,那么:

  • 新的 RTT 估算值为:。
  • 假设初始偏差估计值为 10ms,新的偏差估计值为:。
  • 则 RTO 可以计算为:。

随着更多的 RTT 测量值不断到来,会继续按照上述算法不断更新 RTT 估算值、偏差估计值和 RTO,以适应网络的动态变化。