TCP/IP(Transmission Control Protocol/Internet Procotol,传输控制协议/互联网协议)
是一个协议系统,一套支持网络通信的协议集合。
要回答什么是协议,首先必须回答什么是网络。
网络是计算机或类似计算机的设备之间通过常用的传输介质进行通信的集合。
通常情况下,传输介质是绝缘的金属导线,它用来在计算机之间携带电脉冲。
传输介质也可以是电话线,甚至没有线路(比如无线网络)。
不管计算机之间如何连接,计算机之间的通信过程都需要将来自其中一台计算机的数据通过传输介质传输到另一台计算机,另一台计算机需要理解发来的信息,并将一条消息发回去进行响应。
在任何情况下,只要你的计算机隶属于一个网络,那么,该计算机上的应用程序就必须能够与该网络中其他计算机上的应用程序相互通信。
计算机网络根据规模可以分为WAN和LAN,WAN全称为Wide Area Network,表示广域网;LAN全称为Local Area Network。
网络协议就是一套通用规则系统,用来帮助定义网络通信的复杂过程。
网络协议指导着数据从一台计算机上的应用程序出发,通过操作系统的网络组件,去向网络硬件,然后跨越传输介质,通过目的计算机的网络硬件和操作系统,最终达到负责接收的应用程序。
应用程序->网络组件->网络硬件->传输介质->目标计算机(网络硬件->操作系统->应用程序)。
如果拿人与人说话的例子来理解协议,语种(中文/英文/等)相当于协议,聊天相当于通信,说话的内容相当于数据。只有协议一致(语言相同),两个人的沟通才有效果,如果一个人说英文,另一个人听不懂英文,那么这两个人是无法正常沟通的。
TCP/IP是通信协议的统称,是IP、TCP、HTTP等协议的集合。
TCP/IP协议定义了网络通信过程,更重要的是,定义了数据单元的格式和内容,以便计算机能够正确解释接收到的消息。TCP/IP及其相关协议构成了一套在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中,从网络到应用程序的接口是通过称为端口的逻辑通道系统实现的。
TCP/IP:在internet和很多网络上使用的网络协议簇。
网络协议:对通信的一个具体方面进行定义的一组通用规则。
协议系统/协议簇:一个互联标准和程序(协议)系统,使得计算机可以在网络上通信。
协议实现:实现协议标准定义的通信规则的软件组件。
物理地址:与网络硬件相关的地址。
逻辑地址:通过协议软件配置的网络地址。
IP地址:用于定位TCP/IP网络上计算机或其他联网设备的逻辑地址。
域名:通过TCP/IP的DNS域名服务系统,与IP地址关联的名字。
路由器:通过逻辑地址来转发数据的一种网络设备,并且可以将大型网络分为几个较小的子网。
网关:连接LAN到大型网络的路由器。
| 应用层 |
| 传输层 |
| 网际层 |
| 网络访问层 |
上述四层模型只是描述TCP/IP的常用模型,不是唯一模型。
网络访问层
网际层/网络层/网间层
传输层
应用层
当TCP/IP协议软件准备通过网络传递数据时,发送端计算机上每一层协议都在数据上添加层信息,对应于接收端计算机上相应的层。这个过程有时也称为封装。在接收端,当数据在协议栈里传递时,这些报头信息会被逐步去除。
OSI(Open System Interconnection)开放系统互连,这是由ISO(国际标准化组织)为了标准化网络协议的设计所做出的规范。
| 应用层 |
| 表示层 |
| 会话层 |
| 传输层 |
| 网络层 |
| 数据链路层 |
| 物理层 |
TCP/IP模型与OSI模型都是标准,不是实现。TCP/IP的具体实现并没有严格遵守这两种模型。
网络层和传输层包含的组件最能体现出协议系统之间的区别。所以很多协议根据其网络层和传输层进行命名,比如TCP是TCP/IP的传输层协议,IP是TCP/IP的网络层协议。
在数据向外传输的过程中,其流程是从堆栈的上到下,每一层都把相关信息(“报头”)捆绑到实际的数据上,包含报头和数据的数据包就作为下一层的数据,再次被添加包头信息和重新打包。
在数据从下到上经过协议栈的过程中,每一层都解开相应的报头并且使用其中的信息。

数据包(packet)是任何协议层描述数据包的常见但不精准的简称。