TCP/IP基础知识
文章目录
1. 什么是TCP/IP
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)
是一个协议系统,一套支持网络通信的协议集合。
要回答什么是协议,首先必须回答什么是网络。
1.1 网络与协议
- 什么是网络?
网络是计算机或类似计算机的设备之间通过常用的传输介质进行通信的集合。
通常情况下,传输介质是绝缘的金属导线,它用来在计算机之间携带电脉冲。
传输介质也可以是电话线,甚至没有线路(比如无线网络)。
不管计算机之间如何连接,计算机之间的通信过程都需要将来自其中一台计算机的数据通过传输介质传输到另一台计算机,另一台计算机需要理解发来的信息,并将一条消息发回去进行响应。
在任何情况下,只要你的计算机隶属于一个网络,那么,该计算机上的应用程序就必须能够与该网络中其他计算机上的应用程序相互通信。
计算机网络根据规模可以分为WAN和LAN,WAN全称为Wide Area Network,表示广域网;LAN全称为Local Area Network。
- 什么是网络协议
网络协议就是一套通用规则系统,用来帮助定义网络通信的复杂过程。
网络协议指导着数据从一台计算机上的应用程序出发,通过操作系统的网络组件,去向网络硬件,然后跨越传输介质,通过目的计算机的网络硬件和操作系统,最终达到负责接收的应用程序。
应用程序->网络组件->网络硬件->传输介质->目标计算机(网络硬件->操作系统->应用程序)。
如果拿人与人说话的例子来理解协议,语种(中文/英文/等)相当于协议,聊天相当于通信,说话的内容相当于数据。只有协议一致(语言相同),两个人的沟通才有效果,如果一个人说英文,另一个人听不懂英文,那么这两个人是无法正常沟通的。
TCP/IP是通信协议的统称,是IP、TCP、HTTP等协议的集合。
TCP/IP协议定义了网络通信过程,更重要的是,定义了数据单元的格式和内容,以便计算机能够正确解释接收到的消息。TCP/IP及其相关协议构成了一套在TCP/IP网络中如何处理、传输和接收数据的完整系统。
1.2 TCP/IP的特性
- 逻辑编址
网络适配器有一个唯一的物理地址(MAC地址),每台计算机的网络适配器监听局域网中的每一个传输,以确认消息是否发送到他的物理地址。
在大型网络中,每个网络适配器无法监听所有的信息,TCP/IP通过逻辑编址将网络细分到更小的子网络,并加入分层设计以便让信息有效传输到目的地。
在TCP/IP协议簇中,计算机的逻辑地址称为IP地址。
IP地址和MAC地址之间的转换是通过地址解析协议(ARP)和逆向地址解析协议(RARP)实现的。
- 路由选择
路由器是一种特殊的设备,能够读取逻辑地址信息,并将数据通过网络直接传输到它的目的地。
TCP/IP包括了定义路由器如何找到网络路径的协议。
- 名称解析
TCP/IP提供了IP地址的另一种结构,它以字母数字命名,以方便用户使用。这种结构称为DNS(Domain Name System)域名/域名系统。
域名到IP地址的映射称为名称解析。
域名举例:www.baidu.com
网页地址(url统一资源定位符)包括,协议名、域名、端口号和路径。
例如:https://www.baidu.com
中,https
是协议名,www.baidu.com
是主机名(域名),端口号省略了,为默认值443。所以此地址可以写为https://www.baidu.com:443
- 错误控制和流量控制
TCP/IP的传输层通过TCP协议定义了许多错误控制、流量控制和确认功能,确保数据在网络中可靠传输的特性。
- 应用支持
协议软件必须提供某种方法来判断接收到的数据包属于哪个应用程序。
在TCP/IP中,从网络到应用程序的接口是通过称为端口的逻辑通道系统实现的。
1.3 关键术语
-
TCP/IP:在internet和很多网络上使用的网络协议簇。
-
网络协议:对通信的一个具体方面进行定义的一组通用规则。
-
协议系统/协议簇:一个互联标准和程序(协议)系统,使得计算机可以在网络上通信。
-
协议实现:实现协议标准定义的通信规则的软件组件。
-
物理地址:与网络硬件相关的地址。
-
逻辑地址:通过协议软件配置的网络地址。
-
IP地址:用于定位TCP/IP网络上计算机或其他联网设备的逻辑地址。
-
域名:通过TCP/IP的DNS域名服务系统,与IP地址关联的名字。
-
路由器:通过逻辑地址来转发数据的一种网络设备,并且可以将大型网络分为几个较小的子网。
-
网关:连接LAN到大型网络的路由器。
2. TCP/IP的工作方式
2.1 TCP/IP协议系统的职责与组成部分
2.1.1 TCP/IP系统负责完成的任务
- 把消息分解成可管理的数据块,并且将这些数据块能够有效地通过传输介质;
- 与网络适配器硬件连接;
- 寻址,发送端的计算机必须能够定位到接收数据的计算机,接收计算机必须能够识别到自己要接收的数据;
- 将数据路由到目的计算机所在的子网,即使源子网和目的子网处于不同的物理网络;
- 执行错误控制、流量控制和确认;
- 从应用程序接收数据并传输到网络;
- 从网络接收数据并传输到应用程序。
2.2.2 TCP/IP四层模型
应用层 |
传输层 |
网际层 |
网络访问层 |
上述四层模型只是描述TCP/IP的常用模型,不是唯一模型。
-
网络访问层
- 提供与物理网络连接的接口。
- 针对传输介质设置数据的格式,根据硬件的物理地址实现数据到子网的寻址,对数据在物理网络中的传递提供错误控制。
-
网际层/网络层/网间层
- 提供独立于硬件的逻辑寻址,从而使数据能够在具有不同物理架构的子网之间传递。
- 提供路由功能来降低流量,支持网间的数据传输。
- 实现物理地址与逻辑地址的转换。
-
传输层
- 为网络提供了流量控制、错误控制和确认服务。
- 充当网络应用层的接口。
-
应用层
- 为网络排错、文件传输、远程控制和Internet操作提供了应用程序;
- 还支持应用编程接口(API),从而使得针对特定的操作系统编写的程序能够访问网络。
当TCP/IP协议软件准备通过网络传递数据时,发送端计算机上每一层协议都在数据上添加层信息,对应于接收端计算机上相应的层。这个过程有时也称为封装。在接收端,当数据在协议栈里传递时,这些报头信息会被逐步去除。
TCP/IP模块化设计的主要优点:
- TCP/IP协议栈能够方便地进行修改来适应特定地硬件和操作环境;
- 对某一层修改不会影响到协议栈的其他层;
- 有助于开发人员更容易地编写出与协议系统进行交互的程序。
2.2 OSI模型
OSI(Open System Interconnection)开放系统互连,这是由ISO(国际标准化组织)为了标准化网络协议的设计所做出的规范。
应用层 |
表示层 |
会话层 |
传输层 |
网络层 |
数据链路层 |
物理层 |
- 物理层:把数据转换为传输介质上的电子流或模拟脉冲,并且监视数据的传输。
- 数据链路层:提供与网络适配器相连的接口,维护子网的逻辑链接。
- 网络层:支持逻辑寻址与路由选择。
- 传输层:为网络提供错误控制和流量控制。
- 会话层:在计算机的通信应用程序之间建立会话。
- 表示层:把数据转换成标准格式;管理数据加密与压缩。
- 应用层:为应用程序提供网络接口;支持用于文件传输、通信等网络应用。
TCP/IP模型与OSI模型都是标准,不是实现。TCP/IP的具体实现并没有严格遵守这两种模型。
网络层和传输层包含的组件最能体现出协议系统之间的区别。所以很多协议根据其网络层和传输层进行命名,比如TCP是TCP/IP的传输层协议,IP是TCP/IP的网络层协议。
2.3 数据包
在数据向外传输的过程中,其流程是从堆栈的上到下,每一层都把相关信息(“报头”)捆绑到实际的数据上,包含报头和数据的数据包就作为下一层的数据,再次被添加包头信息和重新打包。
在数据从下到上经过协议栈的过程中,每一层都解开相应的报头并且使用其中的信息。
- 在应用层生成的数据包称为消息;
- 在传输层生成的数据包封装了应用层的消息。如果它来自于传输层的TCP协议,就称为分段;如果来自于UDP协议,则为数据报;
- 在网际层的数据包封装了传输层的分段,称为数据报;
- 在网络访问层的数据包封装了数据报,称为帧;
- 帧被网络访问层里的最低子层转化为比特流。
数据包(packet)是任何协议层描述数据包的常见但不精准的简称。