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协议精巧的设计。

相关推荐
Uncle 城15 分钟前
【Linux用户与用户组管理简析】
java·linux·运维·服务器
Linux运维老纪30 分钟前
DockerHub解决镜像拉取之困
服务器·docker·云计算·运维开发
面朝大海,春不暖,花不开1 小时前
Jenkins配置SSH凭据
运维·ssh·jenkins
Lullaby—2 小时前
JavaEE-网络编程(2)Tcp协议模型
服务器·网络·tcp/ip·java-ee
cong*2 小时前
P2P 文件共享:现代网络中的高效文件传输
服务器·网络·网络协议·p2p
m0_619657052 小时前
TCP并发服务器
linux·运维·服务器
小缺在学习2 小时前
QT中通过Tcp协议的多线程的文件传输(服务器)
服务器·网络·qt·网络协议·tcp/ip
一切皆文件linux2 小时前
Linux数据相关第1个服务_备份服务rsync
linux·运维·服务器
luohailin_2 小时前
企业级WEB应用服务器TOMCAT
java·服务器·tomcat
必叫你大败而归3 小时前
案例:LVS-DR模式
服务器·网络·lvs