【网络编程】TCP网络编程基础

知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

概述

英语:Transmission Control Protocol,缩写为TCP

TCP是传输控制协议;是一种面向连接的可靠的基于字节流的传输层通信协议,由IETF的RFC793定义

建立与释放连接的特点:三次握手、四次挥手

TCP具有校验机制、可靠、数据传输稳定

TCP链接、传输流程


TCP能做什么
聊天消息传输、推送
单人语音、视频聊天等
几乎UDP能做的都能做,但需要考虑复杂性、性能问题
限制:无法进行广播,多播等操作

TCP核心API

socket():创建一个Socket

刚创建的Socket可以是无状态的 在后续进行响应信息的绑定操作

bind():绑定一个Socket到一个本地地址和端口上

connect():连接到远程套接字

accept):接受一个新的连接

这个是服务器端独有的

write():把数据写入到Socket输出流

read():从Socket输入流读取数据

流程
客户端:
在这里插入图片描述
服务器端:
在这里插入图片描述
Socket与进程的关系
在这里插入图片描述

TCP连接可靠性

三次握手:
在这里插入图片描述
三次握手 数据随机是必要的
在这里插入图片描述
四次挥手:
在这里插入图片描述
ACK都是回送命令
U是随机值 V也是随机值

TCP传输可靠性

在这里插入图片描述
滑动窗口协议

具体内容 参考【计算机网络】谢希仁笔记 运输层

猜你喜欢

转载自blog.csdn.net/qq_42322103/article/details/94965441