← 网络基础学习第 6 / 55 章入门25 分钟

模块一 · 应用层

网络应用如何通信

你点击一个网页,究竟是谁在和谁说话?先理解网络应用的参与者、入口和需求,再进入HTTP、DNS等具体协议。

本章要解决的问题:你点击一个网页,究竟是谁在和谁说话?先理解网络应用的参与者、入口和需求,再进入HTTP、DNS等具体协议。

本章的证据来源:《计算机网络:自顶向下方法(原书第8版)》§2.1,纸书53–62页。本章使用教学情境,不声称采集了本机连接或真实请求。

先从一个例子理解概念

你在浏览器点开一个页面。我们先假设浏览器已经知道服务器地址,只研究“向它请求页面、收到页面”这段通信。域名解析怎样得到地址,会在DNS章节展开。

应用、进程与客户端/服务器

应用是浏览器、聊天工具等软件;进程是程序运行中的实例。网络应用的通信发生在进程之间,不只是笼统的“两台电脑通信”。

本例中,主动请求页面的浏览器进程扮演客户端,响应请求的Web进程扮演服务器。这是这次通信的角色,不是电脑永久的身份;一台机器可同时运行两种角色。

套接字与端点

套接字(socket)是进程使用网络服务的通信对象。可以先把它想成进程收发数据的“门”;它是软件对象,不是电脑上插网线的物理接口。

端点表示通信的一个入口。以普通TCP/IP程序为例,需要IP地址帮助找到目标主机的网络位置,并用端口区分应用端点。协议类型也影响端点含义,端口不是全球唯一的应用身份证。

继续同一个网页例子

这里先看服务分工,不学习报文首部和握手细节:

浏览器进程 → 本地socket → 运输服务 → 网络 → 服务器socket → Web进程
浏览器说“请求页面”                                Web进程生成响应

应用层协议规定请求和响应表达什么、怎样处理,例如HTTP。运输服务提供进程间传送数据的能力,例如TCP的字节流服务。它们处理不同的问题。

浏览器不是把一句人话直接交给网卡;它按应用协议形成消息,再通过接口使用运输服务。程序通常不需要自己决定每台中间路由器的出口。

先问应用需要什么,再选择服务

应用需求问的是什么一个例子
数据完整性能否接受缺失、重复或错误文件传输希望得到完整内容
吞吐量每秒需要交付多少数据视频需要满足所选码率等条件
时延多晚收到还可用通话中迟到的数据可能失去价值
安全内容、来源和身份需要什么保护登录需要加密和可靠身份认证

这些需求不是互斥选项。视频既需要足够吞吐,也可能有时延要求;应用“能容忍部分丢失”也不意味着应无条件丢弃所有恢复机制。

TCP和UDP先认识到什么程度

TCP向应用提供面向连接的可靠、有序字节流服务,但不直接保证固定时延、最低吞吐量或加密。连接遇到持续故障也可能以错误结束,不保证永远能够完成传输。

UDP提供数据报服务,协议本身不保证送达、顺序或去重;应用或上层协议可以在其上增加可靠性、安全等机制。UDP不是“绝对快”,TCP也不是“只能慢”。

本模块先把运输层当作提供服务的部分;下一模块才推导它内部如何实现。套接字编程章会把这些概念变成具体接口操作。

客户端/服务器之外还有什么

P2P(对等方式)让参与者也能彼此提供资源或服务。它不意味着完全没有协调服务器,也不意味着所有参与者在每时每刻能力相同。后续内容分发章节再比较它与客户端/服务器方式。

本章小结

概念先记住的意思
进程正在运行的程序实例,通信的参与者
客户端/服务器当前通信中发起请求与提供服务的角色
socket程序收发网络数据的通信对象
端点用于通信的入口,需结合协议、地址与端口理解
应用协议规定消息语义与处理规则
运输服务给进程提供数据传送能力,具体机制之后学习

自测题

5 题 · 先自己答,再展开对照

  1. “浏览器向服务器请求页面”,实际通信的参与者是什么?
    浏览器进程和提供Web服务的进程,通过各自socket使用网络服务。两台机器只是承载这些进程的设备。
  2. 客户端和服务器是机器永久不变的身份吗?
    不是,它们是具体通信的角色;同一机器可以运行客户端和服务器进程,同一程序也可在不同通信中承担不同角色。
  3. socket、IP地址和端口在例子中分别起什么作用?
    socket是进程使用网络服务的对象;IP地址用于网络寻址;端口帮助区分应用端点,还需结合协议理解,不能把端口单独当成唯一进程身份。
  4. 为什么选择运输服务之前要先说明应用需求?
    不同应用对完整性、吞吐、时延和安全有不同要求,知道需求才能判断某个服务提供了什么、还需应用补充什么。
  5. TCP直接保证加密与固定时延吗?UDP上能构建可靠通信吗?
    TCP本身不保证加密、固定时延或最低吞吐。UDP本身不保证可靠,但应用或上层协议可增加可靠性和安全等机制,不能仅以TCP/UDP名称判断快慢。

参考资料与适用范围

修订核对日期:2026-10-13。本章是教学例子,没有本次或历史观察的具体测量值。TCP/IP端点说明限定在本章普通通信情境,不替代完整接口和协议规范。

正文源自 m1-00-网络应用如何通信.md · 共 7 节 · 5 道自测题