news 2026/5/1 8:42:37

TCP传输控制协议

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TCP传输控制协议

一、服务器客户端模型

CS,client,server 由功能强大的服务器为多个客户端提供集中服务

BS,browser,server 使用标准化浏览器作为统一客户端来访问服务器上的应用

P2P,peer to peer 网络中的每个节点同时作为客户端和服务端,彼此直接共享资源与服务

2.CS与BS的区别

对比维度CSBS
客户端类型专用客户端通用客户端
使用协议应用层标准协议/自定义协议应用层HTTP/HTTPS协议
功能强弱功能相对复杂,可承载高交互、高性能业务功能相对简单,侧重轻量化
资源存储资源存储在本地客户端资源由服务器发送,本地仅临时存储

3.P2P

在 P2P 网络下载工具中,下载初期自身进度为 0%,数据由其他客户端及服务器传输而来;当下载进度达到 90% 时,自身会向新接入的客户端上传已获取的数据,整个过程中,自身兼具下载者与上传者的双重身份,既是客户端,也是服务器。

二、TCP传输控制的特征

1.有链接 表现为三次握手。

2.可靠传输。

3.流式套接字,数据没有边界。连续的,有顺序的。

4.全双工,双缓存区。

5.发送和接受次数不需要对应。

6.有写阻塞 64k

7.如果对方端口断开连接,另一方端口可以感知 四次挥手

三、三次握手与四次挥手

三次握手:1.客户端向服务器发送SYN 报文,发起连接请求,携带初始序列号。
2. 服务器接收后,回复SYN+ACK 报文,确认客户端请求,同时携带自身初始序列号。
3. 客户端接收服务器的 SYN 报文后,发送ACK 报文确认,连接正式建立。

四次挥手:1.主动关闭方向被动关闭方发送FIN 报文,关闭自身发送通道。
2. 被动关闭方回复ACK 报文,确认收到关闭请求。
3. 被动关闭方数据发送完毕后,向主动关闭方发送FIN 报文,关闭自身发送通道。
4. 主动关闭方回复ACK 报文确认,等待超时后彻底断开连接。

四、TCP相关函数

1.int socket(int domain, int type, int protocol); 功能:程序向内核提出创建一个基于内存的套接字描述符 返回值:成功 返回申请的套接字id 失败 -1;
2、int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen); 功能:如果该函数在服务器端调用,则表示将参数1相关的文件描述符文件与参数2 指定的接口地址关联,用于从该接口接受数据
3、 int listen(int sockfd, int backlog); 功能:在参数1所在的套接字id上监听等待链接。 返回值:成功 0 失败 -1
4.int accept(int sockfd, struct sockaddr *addr,socklen_t *addrlen); 功能:从已经监听到的队列中取出有效的客户端链接并接入到当前程序。 返回值:成功 返回一个用于通信的新套接字id; 通信套接字 从该代码之后所有通信都基于该id 失败 -1;
5.ssize_t recv(int sockfd, void *buf, size_t len, int flags); 功能:从指定的sockfd套接字中以flags方式获取长度为len字节的数据到指定的buff内存中。 返回值:成功 表示接受的数据长度,一般小于等于len 失败 -1
int send(int sockfd, const void *msg, size_t len, int flags); 功能:从msg所在的内存中获取长度为len的数据以flags方式写入到sockfd对应的套接字中。 返回值:成功 发送的字符长度 失败 -1;
客户端 自动连接服务器。 int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen); 功能:该函数固定有客户端使用,表示从当前主机向目标主机发起链接请求。 返回值:成功 0 失败 -1;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 3:10:44

告别复杂训练流程:GPT-SoVITS一键部署与快速上手

告别复杂训练流程:GPT-SoVITS一键部署与快速上手 在内容创作日益个性化的今天,你是否曾想过,只需一分钟录音,就能拥有一个和自己声音几乎一模一样的“数字分身”?无论是为视频自动配音、生成有声书,还是打造…

作者头像 李华
网站建设 2026/5/1 7:24:12

compressO:3分钟搞定视频压缩的终极方案

compressO:3分钟搞定视频压缩的终极方案 【免费下载链接】compressO Convert any video into a tiny size. 项目地址: https://gitcode.com/gh_mirrors/co/compressO 还在为视频文件太大而烦恼吗?想要快速压缩视频却找不到合适的工具?…

作者头像 李华
网站建设 2026/4/26 0:18:06

GPT-SoVITS语音情感迁移可能性研究

GPT-SoVITS语音情感迁移可能性研究 在内容创作、虚拟交互与无障碍通信日益依赖个性化语音的今天,一个核心问题摆在我们面前:能否仅凭一分钟录音,复现一个人的声音,并让这把“声音”真正传达情绪? 传统语音合成系统往往…

作者头像 李华
网站建设 2026/5/1 7:23:59

AI智能体重构产业生态,从效率革命到体验升级

当Google Gemini 2.0开启AI智能体时代,一个以自主行动、目标导向为核心的智能变革正在席卷全球产业。不同于早期单一功能的AI工具,AI智能体能够主动理解需求、规划流程并执行任务,这种"能动性"特质使其从辅助工具升级为产业生态的重…

作者头像 李华
网站建设 2026/4/18 4:12:46

一键掌控视频播放:VLC Pause Click插件深度体验

一键掌控视频播放:VLC Pause Click插件深度体验 【免费下载链接】vlc-pause-click-plugin Plugin for VLC that pauses/plays video on mouse click 项目地址: https://gitcode.com/gh_mirrors/vl/vlc-pause-click-plugin 在视频播放的日常使用中&#xff0c…

作者头像 李华
网站建设 2026/4/30 21:30:18

TegraRcmGUI:让Switch自定义注入变得像点外卖一样简单

你是否曾经面对复杂的命令行操作感到手足无措?是否在寻找一个能让Switch自定义注入变得直观易懂的工具?今天我要向你介绍的TegraRcmGUI,就是这样一个让你从"技术恐惧"到"轻松掌控"的完美桥梁。 【免费下载链接】TegraRcm…

作者头像 李华