IP地址
IP地址(Internet Protocol Address)是用于唯一标识互联网上的设备(如计算机、服务器等)的逻辑地址。它是32位(IPv4)或128位(IPv6)的二进制数字,通常用点分十进制(对于IPv4)或冒号分隔的十六进制(对于IPv6)形式表示。IP地址允许设备在网络上进行通信,通过路由器等网络设备将数据从一个设备传输到另一个设备。
端口号
端口号(Port Number)是用于标识运行在计算机上不同进程或服务的数字标识符。它是一个16位的无符号整数,取值范围从0到65535。在TCP/IP协议中,端口号与IP地址结合使用,可以唯一确定互联网上的一个应用程序或服务。常见的端口号包括HTTP(80)、HTTPS(443)、FTP(21)等。
协议
协议(Protocol)是网络通信中双方进行数据交换而制定的一种规则或约定。它规定了通信双方如何发送和接收数据,包括数据的格式、顺序、错误检测和纠正等方面。在计算机网络中,常见的协议包括TCP/IP协议族(包括TCP、IP、UDP、HTTP等)、OSI七层模型中的各层协议等。
协议分层
协议分层是指将复杂的网络通信过程划分为多个相对简单的层次,每层负责不同的通信任务,并通过层间接口进行交互。这种分层结构使得网络通信更加模块化和易于管理。TCP/IP协议族采用了四层结构(应用层、传输层、网络层、数据链路层),而OSI模型则采用了七层结构(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)。
封装
封装(Encapsulation)是指在网络通信过程中,将上层协议的数据包添加必要的控制信息(如头部和尾部)以形成下层协议可以识别的数据包的过程。例如,在应用层生成的数据包会被传输层封装成TCP或UDP段,然后网络层再将TCP/UDP段封装成IP数据包,最后数据链路层将IP数据包封装成帧进行传输。封装过程确保了数据在传输过程中的完整性和可识别性。
分用
分用(Demultiplexing)是封装的逆过程,指在网络通信过程中,接收方将收到的数据包逐层剥离控制信息,以还原出原始数据的过程。当数据包到达目的主机时,数据链路层首先剥离帧头和帧尾,将IP数据包传递给网络层;网络层再剥离IP头部,将TCP/UDP段传递给传输层;传输层最后剥离TCP/UDP头部,将原始数据传递给应用层进行处理。
客户端与服务器
- 客户端:主动发起通信请求的一方。在客户端-服务器模型中,客户端通常是需要获取服务或资源的设备或程序。
- 服务器:被动接受通信请求并提供服务或资源的一方。服务器通常具有更强的处理能力和更大的存储空间,用于支持多个客户端的同时访问。
请求与响应
- 请求:客户端向服务器发送的数据包,用于请求某种服务或资源。请求中通常包含客户端的身份信息、请求类型(如GET、POST等)以及请求的具体内容。
- 响应:服务器对客户端请求的回应。响应中通常包含请求的结果、状态码(表示请求是否成功)以及其他相关信息。客户端根据响应内容进行相应的处理。
两台主机之间的网络通信流程
以TCP/IP协议族为例,两台主机之间的网络通信流程大致如下:
-
应用层:源主机上的应用层生成数据,并通过调用传输层的API接口将数据包交给传输层处理。
-
传输层:传输层将应用层的数据封装成TCP或UDP段,并添加源端口号和目的端口号等信息。然后,传输层将数据包传递给网络层。
-
网络层:网络层将传输层的数据包封装成IP数据包,并添加源IP地址和目的IP地址等信息。网络层还负责路由选择,确定数据包传输的最佳路径。然后,网络层将数据包传递给数据链路层。
-
数据链路层:数据链路层将IP数据包封装成帧,并添加帧头和帧尾等控制信息。然后,数据链路层将帧通过物理层发送给目标网络。
-
物理层:物理层负责将帧转换成光信号或电信号等物理信号,并通过传输介质(如双绞线、光纤等)将信号传输到目标网络。
-
目标网络中的数据链路层、网络层、传输层和应用层:目标网络中的设备逐层剥离控制信息,最终将原始数据传递给目标主机上的应用层进行处理。
-
响应过程:如果目标主机需要对源主机的请求进行响应,它将按照相反的顺序(从应用层到物理层)封装响应数据,并通过网络发送给源主机。源主机收到响应后,同样逐层剥离控制信息,最终将响应数据传递给应用层进行处理。