1. 什么是TCP/IP?
从TCP/IP看包含两个部分:
- TCP:(Transmission Control Protocol),传输控制协议
- IP:(Internet Protocol),网际协议
TCP/IP是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP和IP两个协议,实际上包括几十个Internet协议,其中有两个通常被认为是最重要的,就是上面提到的TCP和IP。
IP属于OSI网络层(第三层),在互联网网络中提供寻址、数据报路由等功能;TCP属于OSI传输层(第四层),负责设备上软件进程之间的连接建立和管理以及可靠的数据传输。
TCP/IP的许多最关键的功能是在第三层和第四层实现的,但是TCP/IP不仅仅是TCP和IP,TCP/IP是一个整体,需要许多不同协议和技术的协同工作,才能构成一个功能性网络,进而正确的为用户提供他们需要的应用程序。
2. TCP/IP 四层模型
TCP/IP 包含四层模型,分别是:
下面来分别介绍每一层。
2.1 网络接口层
网络接口层是TCP/IP四层模型中的第一层,是OSI参考模型定义的物理层和数据链路层的组合,这一层主要涉及计算机连接互联网的基础设施,比如以太网电缆、无线网络、网络接口卡、计算机中的设备驱动程序等。
网络接口层还负责同一网络上两个设备之间的数据传输,例如将数字数据转换为可传输信号。
网络接口层还有一个就是将IP数据报封装成网络传输的帧,并将IP地址映射到物理地址。
2.1.1 网络接口层涉及协议
网络接口层主要涉及一下协议:
- 802.3(以太网):以太网是一种计算机局域网技术,IEEE组织的IEEE 802.3标准制定了以太网的技术标准,规定了包括物理层的连线、电子信号和介质访问协议的内容。分为两类,第一类是经典以太网,第二类是交换式以太网。经典以太网是以太网的原始形式,运行速度从3到10Mbps不等;而交换式以太网正式广泛应用的以太网,可运行100、1000和10000Mbps的高速率。
- 802.11(Wi-Fi)
- PPP:(Point to Point Protocol),点对点协议,是为了在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。
- 令牌环
- FDDI
- X.25
- 帧中继
- SLIP:串行链路Internet协议,提供基本的IP帧。
2.1.2 网络接口层工作流程
网络接口层其实可以细分为三层:
- 逻辑链路控制,英文缩写 LLC(Logical Link Control),负责处理网络层使用的协议的信息,LLC 在接收端帮助决定将数据包传递到目标网络层的相应协议。
- MAC 层将源 MAC 地址和目标 MAC 地址添加到数据帧中。
- 物理层将数据帧转换为可以通过网络传输的格式。
比如在有线情况下,物理层会将数据帧转换为电信号,在通信的另一方,将电信号转换回数据帧,从数据包中删除标头,然后将数据包重新组合成完整的数据。
2.2 网络层
网络层是TCP/IP四层模型的第二层,又称为互联网层,该层控制流量的流动和路由、寻址,确保数据快速准确地发送,还负责在其目的地重新组装数据包。
- 寻址:为了与其他主机通信,网络上的每个主机都有一个特定唯一的标识符,使用这个标识符将数据发送到网络上的特定计算机。唯一标识符有两种类型:逻辑地址、物理地址。网络层提供的是一个逻辑地址,即IP地址。
- 路由:将数据包从源移动到目的地的方法,一般运行在路由器上或者支持路由的交换机上,网络设备上运行的算法可以为数据包的传递找到最佳和最短的路径。
2.2.1 网络层涉及协议
- IP
- ARP
- ICMP
其中最核心的是IP协议
2.2.1.1 ARP
ARP的英文全称是Address Resolution Protocol,我们常说的ARP解析就是这个ARP,中文意思是地址解析协议,用于识别MAC地址,如果设备知道目标设备的IP地址,则ARP向局域网中的所有设备发送请求,来搜索具有给定IP的设备的MAC地址,然后具有IP的设备会发送一个带有其MAC地址的ARP响应。
在Windows或macOS中,可以在终端中输入命令 arp -a 查询ARP表。
2.2.1.2 ICMP
ICMP的英文全称是Internet Control Message Protocol,中文意思是互联网控制协议,用于报告主机之间的通信错误,比如用的最多的就是 ping,ping可以检查主机之间是否存在连接,检查丢失的数据包数量和传输延迟。
2.2.1.3 IP
IP是非常重要的协议,英文全称是Internet Protocol,中文意思是网际协议。
IP协议有两个版本:
- IPv4
- IPv6
IPv4 使用更广泛,但只有 32 位用于寻址,大约有 43 亿(约 4.3×10 9)个可用地址,但不幸的是,在 2019 年 11 月 25 日这一天,根据欧洲区域互联网注册机构 RIPE 说法,IPv4 地址已经全部分配完。
IPv6 目前渐渐流行起来,1995 年 12 月,IETF 发布了 RFC 1883,即 IPv6 规范,它一共有 128 位地址,这个数目简直就是太庞大了,2^128 个,IPv4 是 2^32 个。
2.3 传输层
传输层主要涉及两种协议:
- TCP
- UDP
2.3.1 TCP
TCP 英文全称:Transmission Control Protocol,中文意思:传输控制协议,用于在 IP 之上确保数据包的可靠传输,是一种面向连接的协议。
在发送端,TCP 将整个消息分成更小的单元,称为段,每个段包含一个序列号,该序列号是重新排序帧以形成原始消息所需的。
在接收端,TCP 收集所有段并根据序列号对它们重新排序。
TCP 连接就是用传输中的三次握手进行连接的。
TCP三次握手简单来说有三步:
第一步:客户端发送一个带有 SYN 标记位的数据包(syn=J)到服务器,然后进入 SYN_SENT 状态;
第二步:服务器收到 SYN 包,需要确认客户端的 SYN(赋值ack=J+1),然后自己也发送一个 SYN 包(syn=K),服务器进入 SYN_RCVD 状态;
第三步:客户端收到服务器的 SYN+ACK 包,向服务器端发送确认包,即ack=K+1,发送完成之后,两边都进入 ESTABLISHED(含义:TCP连接成功) 建立连接状态。
2.3.2 UDP
UDP 英文全称:User Datagram Protocol,中文意思:用户数据报协议,是一种面向无连接的、不可靠的协议。
UDP 没有握手过程,源 UDP 只是将每个数据报交给网络层的 IP,然后继续创建下一个数据报,目的 UDP 端口监听传入的数据报并将数据传递给应用层,UDP 无法恢复丢失的数据报。
2.3.3 TCP 和 UDP 区别
- TCP 面向连接,UDP 面向无连接。
- UDP 比 TCP 快,因为 UDP 不对数据包进行排序或错误检查。
- TCP 比 UDP 更可靠,TCP 提供错误检查并确保数据包以正确的顺序传送到通信应用程序。
- TCP 比 UDP 稍微安全一些,因为 TCP 会跟踪所有数据包,因此更难插入恶意数据。
2.4 应用层
应用层是 TCP/IP 四层模型的第四层,TCP/IP 中的应用层对应 OSI 模型中的会话层、表示层、应用层,即应用层 = 会话层 + 表示层 + 应用层。应用层主要提供用户和应用程序之间的接口。
应用层涉及的协议很多,常见的如下:
- HTTP/HTTPS:超文本传输协议
- FTP:文件传输协议
- SMTP:简单邮件传输协议
- WS/WSS:Websocket
- SSH:安全外壳
- SNMP:简单网络管理协议
- DNS:域名系统
- DHCP:动态主机配置协议
2.4.1 HTTP/HTTPS
HTTP 英文全称:Hypertext Transfer Protocol,中文名称:超文本传输协议
HTTPS 英文全称:Hyper Text Transfer Protocol Secure,中文名称:安全超文本传输协议
HTTP 提供了 Web 服务器和客户端(浏览器)之间的标准通信规则,使用的默认端口号为 80。
HTTPS 是 HTTP 的安全版,使用 SSL 加密整个通信信息,使用的默认端口号为 443。
2.4.2 FTP
FTP 英文全称:File Transfer Protocol,中文意思:文件传输协议,用于计算机之间传输文件,FTP 是客户端-服务器协议,客户端会请求文件,本服务器会响应文件。
控制连接使用端口 21
传输数据使用端口 20
2.4.3 SMTP
SMTP 英文全称:Simple Mail Transfer Protocol,中文意思:简单邮件传输协议,主要用于将电子邮件从电子邮件客户端发送到电子邮件服务器,以及将邮件消息从一个邮件服务器转发到另一个邮件服务器。
2.4.4 WS/WSS
WS 英文全称:WebSocket
WSS 英文全称:WebSocket Security
WS/WSS 和 HTTP/HTTPS 很类似,一个是不安全的,一个是安全的,但是 WS 和 HTTP 本身是两个不同协议。
WebSocket 用于 Web 浏览器和服务器之间建立持久、双向、全双工 TCP 连接。
与 TCP 不同的是 WebSocket 握手后,通信通道将一直保持打开状态,可以进行连续的通信,服务器可以独立地向客户端发送数据,而无需客户端请求,如果服务器有新信息,也可以主动发送给客户端,而不需要客户端的任何特定请求,这就是 WebSocket 的强大之处。
WSS 和 HTTPS 类似,是一种安全的 WebSocket 技术,信息都是经过加密的。
2.4.5 SNMP
SNMP 英文全称:Simple Network Monitoring Protocol,中文名称:简单网络管理协议,是一组用于网络管理和监控的协议。
2.4.6 DNS
DNS 英文全称:Domain Name System,中文名称:域名系统。
计算机通过使用 IP 地址相互通信,IP 地址是一串数字,不太好记忆,DNS 的作用就是将这些 IP 地址转换为容易记忆的域名。
2.4.7 DHCP
DHCP 英文全称:Dynamic Host Control Protocol,中文名称:动态主机控制协议,是一种为网络设备自动提供 IP 地址的服务。
没有 DHCP 前,IP 地址都是静态配置的,但是静态配置的方式不适用大型网络,假如有 1 万台、10 万台设备,还是一台一台设备配置的话非常低效且容易发生错误,那么 DHCP 就是解决了这个痛点。
3. 总结
TCP/IP 是互联网的基石,而且协议众多,以上所写的部分协议只是我们日常工作中常见的,可能理解得不是很透彻,还需更深入的去理解,如若理解有误,请大家指正。
参考链接:
https://blog.csdn.net/m0_60259116/article/details/126994081