TCP传输控制协议

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793[1]定义。

TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。

数据的加工和传输过程

TCP/IP 模型每个层都有各自的功能和分工,当有用户数据想要发送给另一台设备的时候,数据自上而下,从应用层向链路层传递有一个复杂的过程。

以 Telnet 为例,Telnet 在传输层是使用 TCP 协议的。

数据从应用层进入,到达传输层,添加上 TCP首部,将数据加工成 TCP 段,称为 Segment。这是为了保证数据的可靠性。

接着数据到达网络层,在网络层使用 IP 协议,被添加上 IP 首部,将数据加工成 IP数据报,称为 datagram 。经过网络层 IP 协议的加工,指定目标地址和 MAC 地址,保证数据准确的发送到目标机器。

接着数据到达链路层,添加上以太网头部,将数据加工成以太网帧,称为 frame,包含了网卡等硬件相关的数据。

无论是 Telnet 还是 HTTP,都至少涉及到两台设备才能称之为网络互连,那发送方有一个数据自应用层向底层链路层的加工过程,对应的,在数据接收方,有一个数据从链路层向应用层解析的过程。这中间可能经历了漫长的传输介质,比如光纤,还可能有若干个中间设备,比如路由器、交换机等等。要保证数据在这么复杂的网络环境中可靠、准确的发送到目标机器,就是靠的 TCP、IP协议精巧的设计。

相关推荐
TeleostNaCl4 分钟前
解决 Chrome 无法访问网页但无痕模式下可以访问该网页 的问题
前端·网络·chrome·windows·经验分享
KYGALYX2 小时前
在Linux中备份msyql数据库和表的详细操作
linux·运维·数据库
余—笙3 小时前
Linux(docker)安装搭建CuteHttpFileServer/chfs文件共享服务器
linux·服务器·docker
lang201509283 小时前
Linux高效备份:tar与gzip完全指南
linux·运维·服务器
寒某4 小时前
在Windows上部署RAGFlow
windows·ai
wanhengidc4 小时前
云手机的基本原理
运维·服务器·游戏·智能手机·云计算
篙芷4 小时前
两台服务器 NFS 共享目录实战
运维·服务器
Hard but lovely4 小时前
linux: centos 软件包管理 yum源
linux·运维·centos
悲伤小伞4 小时前
Linux_Socket_UDP
linux·服务器·网络·c++·网络协议·udp
2301_816073834 小时前
Chrony服务器
运维·服务器