因特网的前身是1969年创建的第一个分组交换网 ARPANET。
ARPANET(Advanced Research Projects Agency Network)是美国国防高级研究计划局(ARPA)在20世纪60年代末到70年代初开发的一种计算机网络。
它被认为是互联网的前身,旨在连接分散在美国各地的大学和研究机构的计算机系统。ARPANET采用分组交换的方式传输数据,将数据分成小块(称为数据包),并通过网络中的路由器进行传递。这种分组交换网络架构使得数据能够更快、更可靠地传输,并可以灵活地选择路径进行传输。
ARPANET的发展促进了计算机科学和通信技术的进步,并为后来的互联网奠定了基础。它于1969年建立了第一个节点,随后迅速扩展到多个节点的全球性网络。随着时间的推移,ARPANET向其他网络开放,最终演变成为今天广泛使用的全球互联网。
因特网上的数据交换方式是 分组交换。
计算机网络的分组交换(Packet Switching)是一种数据传输的方式,将数据拆分成小的数据包(Packet),然后通过网络独立传输。
与电路交换不同,分组交换不需要建立专用通路,而是利用网络上的共享资源,在不同的路径和时间段传输数据包。
在分组交换中,发送端将数据分成若干个数据包,并为每个数据包加上目标地址、源地址等必要的控制信息。这些数据包通过网络的节点(如路由器)根据目标地址经过合适的路径转发。每个节点独立处理数据包,并根据当前网络情况动态选择最优的路径进行转发。分组交换的优势包括:
- 高效利用网络资源:由于数据包独立传输,不需要建立专用通路,多个数据包可以同时在网络中传输,提高了带宽利用率。
- 灵活性和可靠性:当网络环境发生变化或出现故障时,数据包可以通过其他路径绕过问题区域,提高了网络的灵活性和可靠性。
- 成本效益:相对于电路交换,分组交换减少了实现和维护网络所需的成本。
- 支持多种应用:分组交换可同时支持多种应用,如实时音视频传输、网页浏览、文件下载等各种网络应用。
然而,分组交换也存在一些局限性,如传输时延、拥塞控制等方面的问题。为了解决这些问题,网络通常采用一些策略和技术,如流量控制、拥塞控制、差错校验等。
总体来说,计算机网络的分组交换是一种高效、灵活的数据传输方式,被广泛应用于现代网络中。
分组交换对报文交换的主要改进是 传输单位小且有固定的最大长度。
在报文交换中,整个报文作为一个单元进行传输,需要在源节点和目标节点之间建立完整的通信连接,并占用网络资源的全部带宽。这种方式在传输大型数据时效率较低,尤其是当网络出现错误或拥塞时更加明显。
而分组交换将数据划分为较小的数据包(Packet),每个数据包独立传输,并在网络节点上根据目标地址逐段转发。
计算机网络可被理解为 自治的计算互联起来的集合体。
计算机网络可以被理解为自治的计算互联起来的集合体,主要有以下几个原因:
- 分布式系统:计算机网络是由多台计算机和网络设备组成的分布式系统。每台计算机都具有一定的自治性,它们可以独立运行、进行计算和存储,并且具有自己的资源管理能力。
- 协议与标准化:计算机网络中使用的协议和标准化机制确保了不同计算机之间的互操作性。各个计算机节点通过遵循相同的通信协议和标准来进行数据交换和信息传递,而无需依赖于特定的硬件或软件平台。
- 自主决策:自治性意味着每台计算机具有自主权进行决策和处理。在计算机网络中,每个节点可以根据自身的需求和资源状况做出独立的决策,如路由选择、资源分配等,以最优的方式参与网络通信与计算。
- 网络管理和控制:计算机网络中的网络管理和控制机制允许网络管理员对网络中的计算机进行统一管理或集中控制,但这并不意味着单一控制点的存在。每台计算机仍然具有一定的自治性,可以独立运行和处理自己的任务。
计算机网络作为自治的计算互联起来的集合体,由分布式的计算机节点组成,每个节点具有一定的自治性和决策能力。通过协议和标准化机制的支持,各个节点能够相互交流和协作,实现信息的传递与共享,从而形成一个整体性能更强大、功能更丰富的计算环境。
计算机网络可分为 通信子网 和 资源子网。
通信子网和资源子网是计算机网络中的两个重要概念。
- 通信子网(Communication Subnet):通信子网指的是负责实现计算机之间信息传递和通信的网络部分。它包括了各种网络设备和连接介质,如路由器、交换机、光纤、电缆等。通信子网提供了数据传输的基础设施,支持计算机节点之间的数据交换、路由选择和网络连通性。
- 资源子网(Resource Subnet):资源子网是用于管理和共享计算机网络中的资源的一部分网络。它涵盖了计算机节点所具有的各种资源,如处理器、存储器、打印机、数据库服务器等。资源子网通过提供资源访问和管理机制,使得计算机节点可以相互共享和利用这些资源,从而提高整个网络的效率和利用率。
通信子网和资源子网在计算机网络中扮演不同的角色:
- 通信子网关注于实现数据的传输和路由,通过建立和维护网络连接,提供了计算机节点之间的通信能力。它在物理层和数据链路层上工作,负责数据包的传送和转发。
- 资源子网则聚焦于管理和协调网络中的资源,以确保它们能够被有效地利用和共享。资源子网涉及到网络上具体的计算机节点和资源设备,通过提供访问权限、调度优化等机制,实现对资源的控制和分配。
通信子网和资源子网通常是相互关联和依赖的,在一个计算机网络中两者会相互协作,实现计算机节点之间的信息传递和资源管理,共同构建起一个完整的、高效运行的计算环境。
网桥:
网桥(Bridge)是一种计算机网络设备,用于连接两个或多个局域网(LAN),使它们能够互相通信。
网桥的主要功能是通过学习和转发数据帧来连接不同的局域网。当一个数据帧到达网桥时,网桥会检查数据帧的目标MAC地址,并将其转发到适当的端口。网桥通过建立和维护一个MAC地址表来实现这个功能。MAC地址表记录了与每个端口相关联的MAC地址,从而确定数据帧应该被发送到哪个局域网。
网桥的工作原理如下:
- 学习阶段:在初始状态下,网桥并不知道哪个MAC地址位于哪个端口上。当一个数据帧到达网桥时,网桥会记录下其源MAC地址和接收到该数据帧的端口,并将这些信息添加到MAC地址表中。
- 转发阶段:当网桥接收到一个数据帧时,它会查找目标MAC地址在MAC地址表中的对应项。如果找到匹配项,则网桥会转发数据帧到对应的端口;如果找不到匹配项,则网桥会将数据帧广播到所有的端口(除了接收端口)上,以确保数据能够达到目标设备所在的局域网。
通过连接不同的局域网,网桥可以扩展网络的范围并增加通信的灵活性。在现代网络中,网桥的功能已经被交换机所取代,交换机具有更高的性能和更丰富的功能。
交换机:
交换机(Switch)是计算机网络中一种常见的网络设备,用于在局域网(LAN)内转发数据帧。
交换机具有以下主要功能:
- 数据帧转发:当交换机接收到一个数据帧时,它会根据数据帧中的目标MAC地址将其转发到适当的端口。这使得数据帧只被发送到目标设备,而不是广播到整个网络上的所有设备。
- 学习和建立MAC地址表:交换机通过监视网络上的数据流量来学习和建立与每个端口相关联的MAC地址表。它记录下每个设备的MAC地址和相应的端口,以便将来进行数据帧的快速转发。
- 广播和多播处理:除了单播(点对点)通信外,交换机还能处理广播和多播流量。广播流量发送到网络上的所有设备,而多播流量同时发送给多个设备。交换机可以将广播和多播流量限制在同一虚拟局域网(VLAN)内部或指定的端口上。
- VLAN划分:交换机支持虚拟局域网(VLAN)的划分。通过将交换机端口划分为不同的VLAN,可以实现逻辑上的隔离和更好的网络管理。每个VLAN都视为独立的逻辑网络,并且可以根据需要进行通信和配置。
- 链路聚合:交换机可以支持链路聚合(Link Aggregation),将多个物理链路绑定为一个逻辑链路。这提高了带宽和冗余性,并允许同时使用多个链路进行数据传输。
交换机在局域网中起到重要的作用,实现了快速、准确的数据帧转发和广播处理。它学习并建立MAC地址表,支持VLAN划分、链路聚合等功能,提供了灵活的局域网连接和管理方式。
路由器:
路由器(Router)是计算机网络中一种常见的网络设备,位于网络层,在不同的网络之间转发数据包并进行路由选择。
路由器具有以下主要功能:
- 数据转发:作为网络设备之间的桥梁,路由器可以接收到达的数据包,并根据数据包中的目标IP地址来确定下一跳的路径。它通过查找路由表、网络拓扑和路由协议等信息来选择最佳的路径,并将数据包转发到目标网络或下一个路由器。
- 路由选择:路由器使用各种路由选择算法和路由协议来确定数据包应该经过哪条路径转发。这些算法和协议会考虑不同的因素,如网络拓扑、距离、负载状况等,以选择最佳路径。
- 网络地址转换(NAT):在使用私有IP地址的网络中,路由器通常还提供网络地址转换(NAT)功能。它可以将内部私有IP地址转换为公共IP地址,使内部网络中的设备能够与外部网络进行通信。
- 分段和分区:路由器可以将大型网络划分为子网或分区,每个子网都有自己的IP地址范围和路由策略。这可以提高网络的管理和性能。
- 过滤和安全性:路由器可以基于一定的规则和策略过滤网络流量,实施访问控制、防火墙和其他安全功能,以保护网络免受潜在的威胁。
路由器在计算机网络中起着重要作用,连接不同的网络并转发数据包。它实现了数据的路由选择、地址转换、分段分区以及提供网络安全等功能,确保网络的正常运行和通信。
局域网:
局域网(Local Area Network,简称LAN)是指在相对较小范围内的地理区域内连接多台计算机和其他网络设备的计算机网络。
局域网通常涵盖一个建筑物、办公室、校园或其他有限的区域,如家庭网络。它们可以通过有线或无线技术进行连接。
局域网具有以下特点:
- 范围有限:局域网的覆盖范围相对较小,通常在几百米到几千米之间,适用于单个建筑物或办公场所的网络需求。
- 高带宽:局域网提供较高的带宽,使得局域网内的设备可以以较快的速度进行数据传输和通信。
- 低延迟:由于范围较小,局域网内的数据传输速度较快,通信延迟较低,适用于实时性要求较高的应用场景。
- 共享资源:局域网中的设备可以共享许多资源,如打印机、文件服务器、网络存储等,提高了办公效率和资源利用率。
- 安全性较高:局域网通常受到较好的物理安全措施和网络安全策略保护,对外部网络的攻击和访问受到限制。
- 较简单的管理:局域网的规模相对较小,管理相对简单,易于配置、监控和维护。
局域网通过使用交换机、路由器、网桥、无线访问点等设备来实现计算机之间的通信和数据传输。它们为组织内的员工或家庭成员提供了方便的本地网络连接,促进了信息共享、协作和资源共享。
网关:
网关(Gateway)是计算机网络中的一个重要设备或节点,它连接两个或多个不同网络,充当这些网络之间的桥梁或中介。
具体来说,网关在不同网络之间进行数据转发和协议转换。它可以是硬件设备(如路由器)或软件程序(如网络代理服务器)的形式存在。
主要功能包括:
- 数据路由:网关能够决定数据包从源网络流向目标网络的路径,根据数据包的目标地址进行转发。它通过查看数据包的目标IP地址和学习网络拓扑信息来实现数据路由。
- 协议转换:不同网络使用不同的通信协议,在数据从一个网络传输到另一个网络时,可能需要进行协议的转换。网关能够将接收到的数据从一种协议格式转换为另一种协议格式,并将其转发给目标网络。
- 安全过滤:作为网络边界的一部分,网关可以执行安全策略和过滤功能,对进出网络的数据进行检查和控制。它可以实施防火墙规则、访问控制列表(ACL)等以确保网络的安全性。
- 地址转换:在使用私有IP地址的网络中,网关还可以执行网络地址转换(NAT),将内部网络中的私有IP地址转换为公共IP地址,实现内部网络与外部网络的连接。
网关在计算机网络中充当了连接不同网络、实现数据路由和协议转换、执行安全过滤以及地址转换等重要角色,确保网络间的通信和互操作性。
分层的网络结构:
分层的网络结构指的是将计算机网络按照功能和任务划分为多个逻辑层次,每个层次都负责特定的功能和协议。常见的分层网络结构是OSI参考模型(Open Systems Interconnection Reference Model)和TCP/IP参考模型(Transmission Control Protocol/Internet Protocol Reference Model)。
OSI参考模型是一个由国际标准化组织(ISO)提出的理论模型,它将网络通信划分为七个不同的层次,从物理传输到应用层,每一层都负责不同的功能。这些层次分别是:
- 物理层(Physical Layer)
- 数据链路层(Data Link Layer)
- 网络层(Network Layer)
- 传输层 & 运输层(Transport Layer)
- 会话层(Session Layer)
- 表示层(Presentation Layer)
- 应用层(Application Layer)
TCP/IP参考模型是互联网所采用的网络架构,它将网络通信划分为四个层次,分别是:
- 网络接口层 & 链路层(Network Interface Layer)
- 网络层(Internet Layer)
- 传输层 & 运输层(Transport Layer)
- 应用层(Application Layer)
五层协议的体系结构:五层协议体系结构是一种网络通信的分层模型,将网络功能和协议划分为五个逻辑层次。这个模型通常用于描述局域网(LAN)或广域网(WAN)中的网络通信。以下是五层协议体系结构的各层次:
- 物理层(Physical Layer):负责传输原始的比特流,它定义了电气、光学和物理媒介的接口标准,包括传输介质、数据速率、电压等。
- 数据链路层(Data Link Layer):在物理层之上,提供可靠的点对点数据传输。它将比特流组装成数据帧,并在通信的顶端添加控制信息,以便检测和纠正传输错误。
- 网络层(Network Layer):负责实现数据包在网络中的传输和路由选择。它定义了数据包的寻址和转发机制,并通过路由器进行跨网络的数据包转发。
- 传输层(Transport Layer):在网络层之上,提供端到端的可靠和有序的数据传输。它负责将数据从应用层分割为适当大小的报文段,并通过端口号标识不同的应用程序。
- 应用层(Application Layer):最上层的层次,直接为用户提供网络应用服务。它包括各种协议和应用程序,如HTTP、FTP、SMTP等,用于实现电子邮件、网页浏览、文件传输等功能。
这种五层协议体系结构能够在不同的物理网络中实现通信,并通过分层的设计来简化网络功能和协议的开发、管理和维护。每个层次都有自己专门的功能,并通过接口与上下相邻的层次进行交互和数据传输,从而实现了互联网和计算机网络的可靠通信。
OSI参考模型和TCP/IP参考模型都是常用的网络协议模型,它们定义了较为详细的网络层次和功能。而五层协议结构实际上是在这两个参考模型的基础上进行简化和抽象而来的。
虽然OSI参考模型和TCP/IP参考模型提供了较为全面和详细的网络层次划分,但它们每个模型都包含了更多的层次,有时在某些应用场景中可能会显得过于复杂。为了简化和标准化网络通信,并且方便实现和管理,五层协议结构被引入。
五层协议结构采取了更加简洁的方式,将网络功能划分为五个主要的逻辑层次,即物理层、数据链路层、网络层、传输层和应用层。这种简化的设计使得网络协议的开发、实现、维护和管理可以更加高效和容易。它也与TCP/IP参考模型中的四个层次相对应,但更加直观和易于理解。
当我们使用五层协议结构时,可以根据具体需求在每个层次上选择适当的协议和技术,以满足特定的网络通信要求。这种结构提供了一种平衡和简化的方式来组织和管理网络功能,也方便了各种设备和应用程序之间的互通性。
网桥(Bridge):位于数据链路层,用于连接相同类型的局域网(LAN),在同一网络层内进行数据帧的转发和过滤。
交换机(Switch):也位于数据链路层,但功能比网桥更强大。它可以根据MAC地址学习和存储设备的地址信息,并根据目标地址将数据帧仅发送到目标设备,从而实现更快速的数据传输和广播域隔离。
路由器(Router):位于网络层,用于连接不同的局域网或广域网。它通过判断目标IP地址来选择最佳路径,并进行数据包的转发和路由控制,以实现跨网络的数据传输。
网关(Gateway):位于较高的层次,通常在传输层以上的层次,用于连接两个不同的网络,例如将局域网连接到互联网。它负责协调不同网络之间的通信,将数据转换为适当的格式,并执行网络地址转换(NAT)等功能。
具体的网络设备在实际中可能具有多种功能,所以某些设备可能在五层协议结构中涉及多个层次的功能。
广域网(Wide Area Network,WAN)、城域网(Metropolitan Area Network,MAN)和局域网(Local Area Network,LAN)是三种不同范围的网络类型,它们分别定义了网络覆盖的距离和应用场景。
局域网(LAN):局域网是在相对较小的范围内建立的网络,通常限定在一栋建筑物、一组建筑物或一个园区。其范围可以是家庭、办公室、学校、企业等。局域网通过以太网或Wi-Fi等传输技术连接计算机、服务器、打印机和其他设备,提供高速数据传输和资源共享。
城域网(MAN):城域网是位于城市或城市区域的中型网络,它覆盖的范围比局域网大,但比广域网小。城域网通常由多个局域网互连而成,利用光纤、无线电和其他传输媒介进行数据传输。城域网可用于满足城市范围内的互联网接入、电话通信、视频监控等需求。
广域网(WAN):广域网是覆盖更大地理范围的计算机网络,可以跨越国家、大洲甚至全球。广域网通常通过公共或专用的传输线路,如电缆、电话线路、光纤和卫星连接远距离地区的局域网和城域网。广域网被用于实现机构、公司和组织之间的远程通信、数据传输和资源共享。
总结:局域网适用于较小范围内的网络需求,城域网适用于中等范围的城市或区域性网络需求,而广域网则覆盖更大的地理范围,用于跨越长距离连接不同地点的网络。
计算机网络分为广域网、城域网和局域网,其划分的主要依据是 网络的作用范围。
比特bit是计算机中数据量的最小单位,可简记为b。字节Byte也是计算机中数据量的单位,可简记为B,1B=8bit。常用的数据量单位还有kB、MB、GB、TB等,其中k、M、G、T的数值分别为$2^{10}$, $2^{20}$, $2^{30}$, $2^{40}$。
K, M, G, T 分别对应以下英文字母表示的单位:
- K:千(kilo)
- M:兆(mega)
- G:吉(giga)
- T:太(tera)
$2^{10}=1024\approx 1000$,即千(K),往后以此类推。
连接在计算机网络上的主机在数字信道上传送比特的速率也称为比特率或数据率,其最小单位为bps,常用单位还有kbps、Mbps、Gbps、Tbps等,其中k、M、G、T的数值分别为$10^{3}=1000$, $10^{6}=1000\ 000$, $10^{9}=1000\ 000\ 000$, $10^{12}=1000\ 000\ 000\ 000$。
计算机中内存空间的计算方式是以二进制的形式计算的,而网络中的传输比特速率是以十进制的形式计算的,所以出现了以上的单位差别。
假设在某段链路上传输某个10MB的数据块,链路带宽为10Mb/s,信号传播速率为200000km/s,链路长度为1000km,则数据块的发送时延约为 $\underline{\ \ \ \ 8.4\ s\ \ \ \ }$。
发送时延可由以下公式计算:
发送时延 = 数据块大小 / 发送带宽
对于这个问题,数据块大小为10MB,链路带宽为10Mb/s。需要注意的是,速率单位要一致,所以需要将数据块大小转换成位(bit)。
1字节(Byte)= 8位(bit)
10MB = 10 * 8 * 1024 * 1024 bits(将MB转换成bits)
发送时延 = (10 * 8 * 1024 * 1024) / 10Mb/s
$10\times8\times1024\times1024=83886080\div10\ 000\ 000=8.388608\approx8.4\ (s)$
计算结果为:
发送时延约为 8.3886 秒。
假设主机A和B之间的链路带宽为100Mbps,主机A的网卡速率为1Gbps,主机B的网卡速率为10Mbps,主机A给主机B发送数据的最高理论速率为$\underline{\ \ \ \ 10Mbps\ \ \ \ }$
主机与主机之间的最大传输速率受限于传输速率最低的链路。
设主机A的发送时延为10ms,链路带宽为20Mbit/s,传播时延为20ms,则该链路的时延带宽积为 $\underline{\ \ \ \ \ 400\ 000\ bit\ \ \ \ \ }$
时延带宽积=传播时延 x 链路带宽,需要换算单位。
时延带宽积的现实含义:一条有一定长度的物理链路,一个数据包从一端到另一端所需要的时间为 传播时延,链路带宽为该链路的速率,它们两个相乘便得到了该链路的比特容量,即在这个传播时延的时间内,它最大可以容纳多少比特量,从而衡量该链路的指标,它提供了一种对网络性能和传输效率的估计。
现实含义上,时延带宽积可以用来衡量网络的容量和延迟之间的权衡。它表示在给定的链路上,同时存在的数据包的数量的上限。当时延带宽积较小时,意味着链路的容量不足以容纳大量的数据包,可能导致拥塞和丢包;而当时延带宽积较大时,链路具有更高的容量,可以容纳更多的数据包并减少丢包的可能性。
时延带宽积还与应用程序的性质和需求有关。例如,在实时视频流或语音通信等对延迟敏感的应用中,较小的时延带宽积是更为理想的,因为它可以减少传输时延,并保证实时性。而对于大规模文件传输或数据备份等对吞吐量要求较高的应用,较大的时延带宽积可以充分利用链路带宽,提高传输效率。
总之,时延带宽积是一个重要的参数,可以帮助我们评估网络性能,并在设计和优化网络时进行合理的权衡和调整。
传播时延最大的链路是$\underline{\ \ \ \ \ \ \ 同步卫星链路\ \ \ \ \ \ }$。
常见的物理链路包括以下几种种类:
以太网(Ethernet):以太网是一种最常用的有线局域网技术,使用双绞线或光纤作为传输介质。它具有较高的带宽和低延迟,并支持多种速率,如10Mbps、100Mbps、1Gbps、10Gbps等。
光纤链路:光纤链路使用光纤作为传输介质,通过光信号来传输数据。光纤链路具有高带宽、低损耗、抗干扰能力强的优点,适用于长距离传输和高速数据传输需求。
无线链路:无线链路是通过电磁波无线传输数据的链路,常见的无线链路包括Wi-Fi、蓝牙、移动通信(如4G、5G)等。无线链路具有灵活性和便携性,但相对有线链路,可能存在信号衰减、干扰、传输速率受限等问题。
卫星链路:卫星链路利用卫星进行数据传输,适用于远距离通信,覆盖范围广。卫星链路的传播时延相对较高,主要取决于信号的传播距离和经过的卫星数量。
卫星链路曾被认为是传播时延最大的链路,但是随着科技的发展,未来它的传输性能可能会逐渐提高。同步卫星为了与地球的自转保持同步,其轨道半径交大,离地远,所以传播时延较高。而大名鼎鼎的星链卫星,其运行在近地轨道,从而提升传输性能,多个近地卫星之间进行通信,弥补了其覆盖范围较小的缺点。
假定网络的利用率达到了90%,则当前的网络时延是网络空闲时的时延的$\underline{\ \ \ 10倍\ \ \ \ }$。
假设网络的利用率达到了90%,根据公式 “网络时延 = 1 / (带宽 * (1 - 利用率))”,我们可以计算当前的网络时延相对于网络空闲时的时延的倍数。
当网络处于空闲状态时,利用率为0,此时网络时延为:
网络时延(空闲)= 1 / (带宽 * (1 - 0)) = 1 / 带宽
而当网络利用率达到90%时,网络时延变为:
网络时延(当前)= 1 / (带宽 * (1 - 0.9)) = 1 / (0.1 * 带宽)
所以,当前的网络时延相对于网络空闲时的时延的倍数为 1 / (0.1 * 带宽) * 1 / 带宽 = 10倍。
换句话说,当前网络的时延是网络空闲时的时延的10倍。
因特网采用的网络体系结构是 ==TCP/IP体系结构==。
TCP/IP体系结构中的 网络接口层 对应OSI/RM体系结构的 物理层、数据链路层。
在OSI参考模型中,对等实体是指 收发双方相同层次中的实体。、
在OSI参考模型中,对等实体指的是在通信过程中相互交互和通信的两个网络节点或主机。它们可以通过各层之间定义的协议进行通信,并在数据传输过程中进行数据的封装、传输和解析等操作。每一层都有相应的对等实体来处理特定层级所需的功能和任务。
在TCP/IP参考模型中,运输层的相邻下层实现的主要功能是 IP数据报在多个网络间的传输。
在OSI参考模型中,控制两个对等实体进行逻辑通信的规则的集合称为 协议。
TCP通信双方在基于TCP连接进行通信之前,首先要通过“三报文握手”来建立TCP连接,三次报文握手是为了确保可靠建立TCP连接并同步双方的初始序列号(ISN)。
第一次握手(SYN):客户端发送一个带有SYN标志的TCP包到服务器,请求建立连接。此时客户端进入SYN_SENT状态。
第二次握手(SYN+ACK):服务器接收到客户端的请求后,会发送一个带有SYN和ACK标志的TCP包作为响应。ACK确认号设置为客户端发送的序列号加1,同时服务器也选择一个自己的初始序列号。此时服务器进入SYN_RCVD状态。
第三次握手(ACK):客户端接收到服务器的确认后,向服务器发送一个带有ACK标志的TCP包,确认收到服务器的响应。客户端的ACK确认号设置为服务器发送的序列号加1。此时,服务器进入ESTABLISHED状态,客户端也进入ESTABLISHED状态,TCP连接建立完成。
为什么需要三次握手呢?
第一次握手可以让服务器确认客户端的存在,并确保客户端能够接收到服务器的回复。但此时客户端不知道服务器是否收到了自己的请求。
第二次握手服务器发送了响应,此时客户端可确认自己的请求已经送达到服务器,并能够接收到服务器的响应。但此时服务器仍然不知道客户端是否真的能接收到自己的响应。
第三次握手客户端发送了确认,此时服务器可以确认自己的响应已经成功送达到客户端,并且客户端也能接收到服务器的响应。至此,双方都可以信任对方,并认为连接已经建立起来。
通过三次握手,可以确保TCP连接的可靠性和同步性,避免了由于网络传输延迟、丢包或失序等原因引起的问题。这种机制能够保证客户端和服务器双方互相确认彼此的能力,并建立起稳定的通信环境。
物理层、数据链路层、网络层、运输层的传输单位(或称协议数据单元PDU)分别是 比特、帧、分组(数据报)、报文段。
TCP / IP 网际层的 4 个重要协议
TCP/IP(Transmission Control Protocol/Internet Protocol)是一组用于互联网通信的协议。其中,网际层(Internet Layer)是TCP/IP协议栈中的一个关键层,主要负责网络间的数据路由和转发。
网际层的主要作用如下:
- IP地址分配:网际层使用IP地址来唯一标识网络中的设备。IP地址由32位(IPv4)或128位(IPv6)二进制数字组成,用于定位发送和接收数据的设备。
- 路由选择:网际层通过路由选择算法决定从源设备到目标设备的数据传输路径。路由选择是根据网络拓扑、路径开销和其他因素进行的,以确保数据能够有效地跨越多个网络节点到达目标设备。
- 分段和重组:当数据报的大小超过网络的最大传输单元(MTU)时,网际层会将数据报分割为较小的片段进行传输,并在目标设备上重新组装。这样可以适应不同网络的传输限制。
- 网络地址转换(NAT):网际层支持网络地址转换,允许多台设备共享一个公共IP地址。NAT在传输过程中转换私有IP地址和公共IP地址之间的映射,实现了对内部设备的隐藏和网络扩展。
- IP数据报的封装:网际层将上层数据(如传输层的TCP或UDP报文)封装为IP数据报,并添加源IP地址、目标IP地址和其他必要的信息。这样,数据可以在互联网上进行传输。
网际层是TCP/IP协议栈中的核心层之一,它通过提供逻辑上的全球互连性和数据路由功能,实现了互联网的构建和运行。
TCP/IP 网际层包括以下四个重要的协议:
IP(Internet Protocol,网际协议):
- 作用:IP是 TCP/IP 协议栈中最核心的协议之一,负责在网络中传送数据包,并提供寻址和路由功能。
- 基本工作原理:IP协议为每个主机和路由器分配唯一的IP地址,将数据报封装成数据包并通过网络传输。IP地址用于标识数据包的源和目的地,以便正确转发和传递数据。
ICMP(Internet Control Message Protocol,Internet控制报文协议):
- 作用:ICMP协议用于在IP网络中发送控制消息和错误报告。它可以检测网络中的问题、传达路由错误或提示主机不可达情况等。
- 基本工作原理:当在网络中发生错误或需要通信时,主机或路由器会生成ICMP消息,并将其封装在IP数据包中发送给目标设备。常见的ICMP消息包括回应Ping请求、报告网络不可达情况以及传递其他网络状态信息。
ARP(Address Resolution Protocol,地址解析协议):
- 作用:ARP协议用于将IP地址解析为对应的物理MAC地址,以便在局域网内进行通信。
- 基本工作原理:当主机知道目标IP地址但不知道目标MAC地址时,它将广播一个ARP请求消息到局域网上的所有设备。具有该IP地址的设备将回复带有其MAC地址的ARP响应消息,从而使主机获得所需的MAC地址。
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议):
- 作用:DHCP协议用于自动分配和管理IP地址、子网掩码、默认网关等网络配置信息,以便使用者可以轻松地连接到网络。
- 基本工作原理:DHCP协议的工作步骤包括:发现(Discover)、提供(Offer)、请求(Request)、确认(Acknowledge)。通过这样的交互过程,DHCP能够自动为设备分配可用的IP地址和其他必要的网络配置参数,并确保网络设备能够正确地加入网络、通信和访问互联网。DHCP协议的优势在于简化了网络管理员的工作,减少了手动配置设备的工作量,并实现了IP地址资源的灵活管理和重用。它提供了高效的动态分配机制,同时还支持安全性控制和认证,确保网络连接的可靠性和安全性。
RARP反向地址解析协议(Reverse Address Resolution Protocol):
- 它是一种网络协议,其作用是根据物理地址(MAC地址)获取对应的IP地址。RARP主要用于早期的局域网中,在无磁盘启动的情况下,让计算机通过发送自己的物理地址来获取配置好的IP地址。这在某些特定的环境下非常有用,例如从无盘工作站(diskless workstation)引导并获取所需的网络配置信息。
- 基本工作原理如下:
当一个没有配置IP地址的设备启动时,它会向本地网络广播一个RARP请求包,该包包含设备的物理地址。
在广播网络上,有一个专门的RARP服务器,通常称为RARP守护程序。这个服务器维护了一个RARP映射表,将物理地址和对应的IP地址关联起来。
RARP服务器收到请求后,会查询映射表并找到相应的IP地址。然后,服务器将响应包发送给请求的设备,并附带正确的IP地址。
设备接收到响应包后,获得了配置的IP地址,并将其分配给自己。 - 需要注意的是,由于RARP是基于广播的,因此要求设备和RARP服务器在同一个广播网络中才能正常工作。随着时间的推移,RARP已经被更现代化的协议(如DHCP)所替代,因为DHCP提供了更灵活和高效的IP地址分配方式。
TCP / IP 网际层的 4 个重要协议,陈旧的说法是:IP,ICMP,ARP,RARP
较新的说法:IP,ICMP,ARP,DHCP