TCP协议详解

TCP协议特点:面向连接、字节流、可靠传输。

**面向连接:**使用TCP协议通信的双方必须先建立连接,然后才能开始数据的读写。双方都必须为该链接分配必要的内河资源,以管理连接的状态和连接上数据的传输。TCP连接是全双工的,双方的数据读写可以通过一个连接进行。完成数据交换之后,通信双方都必须断开连接以释放系统资源。

**字节流:**发送端可以逐个字节地向数据流(发送缓冲区)中写入数据,接收端也可以逐个字节地将他们读出(从接收缓冲区)。基于流的数据没有边界(长度)限制。当发送端应用程序连续执行多次写操作时,TCP模块先将这些数据放入TCP发送缓冲区中。当TCP模块真正开始发送数据时,发送缓冲区中这些等待发送的数据可能被封装成一个或多个TCP报文段发出。应用程序执行的读写操作次数和TCP模块发送/接收的报文段个数之间没有固定的数量关系。

**可靠传输:**1.应答机制:发送端发送的每个TCP报文段都必须得到接收方的应答,才认为该报文段传输成功。2.超时重传机制:发送端在发送出一个TCP报文段之后启动定时器,如果定时时间内未收到应答,将重发该报文段。3.接收端的TCP协议程序会对接收到的TCP报文段排序、去重,交给上层(应用层)应用程序。

TCP连接建立过程(四次握手):

相关推荐
Li-Yongjun2 小时前
深度解析 Linux 内核参数 net.ipv4.tcp_rmem:优化网络性能的关键
linux·网络·tcp/ip
枷锁—sha2 小时前
【DVWA系列】——xss(Reflected)——Medium详细教程
前端·网络·web安全·网络安全·xss
不像程序员的程序媛2 小时前
http接口莫名奇妙返回body空白
网络·网络协议·http
晴天¥3 小时前
第一章-数据通信网络基础
网络
XMAIPC_Robot3 小时前
RK3568/RK3588 KVM系统虚拟化解决方案
网络·fpga开发·边缘计算
IT葛大侠4 小时前
OSPF域内路由
运维·网络·计算机网络
筏.k4 小时前
C++ 网络编程(10) asio处理粘包的简易方式
java·网络·c++
是小满满满满吗14 小时前
传输层:udp与tcp协议
linux·服务器·网络
小刘同学++14 小时前
ECB(电子密码本,Electronic Codebook) 和 CBC(密码分组链接,Cipher Block Chaining)区分于用途
网络·ssl
CryptoPP14 小时前
使用WebSocket实时获取印度股票数据源(无调用次数限制)实战
后端·python·websocket·网络协议·区块链