TCP协议的通讯流程
基于TCP/IP协议的服务器和客户端程序的一般流程,如下图所示:
1、服务器初始化——LISTEN
(1)调用socket函数创建文件描述符。
(2)调用bind函数将当前的文件描述符和ip/port绑定在一起。如果这个端口已经被其他进程占用了,就会bind失败。
(3)调用listen函数声明当前这个文件描述符作为一个服务器的文件描述符,为accept做好准备。
(4)调用accept函数阻塞等待客户端连接起来。
2、建立连接的过程——三次握手(绿色部分)
第一次:调用connect函数发出SYN段向服务器发起连接请求,并阻塞等待服务器应答。
第二次:服务器收到客户端的SYN段后,会应答一个SYN-ACK段表示“同一建立连接”。
第三次:客户器端收到SYN-ACK后会从connect函数中返回,同时应答一个ACK段。
3、数据传输的过程(蓝色部分)
建立连接后,TCP协议提供全双工的通信服务。所谓全双工,意思是:在同一条链路中的同一时刻,通信双方可以同时写数据。相对的概念叫做半双工,即:在同一条链路中的同一时刻,只能由一方来写数据。
(1)服务器从accept函数返回后立刻调用re
TCP协议的通讯流程相关推荐
- WCF中如何用nettcp协议进行通讯
快速阅读 如何在wcf中用net tcp协议进行通讯,一个打开Wcf的公共类.比较好好,可以记下来.配置文件中注意配置 Service,binding,behaviors. Service中配置en ...
- 使用TCP协议的NAT穿透技术 (转)
其实很早我就已经实现了使用TCP协议穿透NAT了,但是苦于一直没有时间,所以没有写出来,现在终于放假有一点空闲,于是写出来共享之. 一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技术,基 ...
- IP/TCP协议详解
系列文章目录 第一篇 : TCP/IP协议详解 第二篇 : IP协议 第三篇 : TCP协议 第四篇 : 面试准备 文章目录 系列文章目录 前言 第一章.TCP/协议族 1.1 层次介绍 1.2 封装 ...
- 网络5g以及tcp协议等
网络5g以及tcp协议等 通讯的有关信息 网络的有关信息 OSI七层模型参考 TCP/IP 5层模型 数据的封装和解封 ------------------------------------- 通讯 ...
- TCP协议通讯流程(三次握手及四次挥手)
TCP协议通讯流程(三次握手及四次挥手) 文章目录 TCP协议通讯流程(三次握手及四次挥手) 一.服务器端 二.客户端 三.三次握手四次挥手 三.具体流程 四.相关注意事项 一.服务器端 调用sock ...
- QQ--基于TCP/UDP协议的通讯原理
QQ是一个基于TCP/UDP协议的通讯软件 发送消息的时候是UDP打洞,登陆的时候使用HTTP~因为登陆服务器其实就是一个HTTP服 务器,只不过不是常用的那些,那个服务器是腾讯自行开发的! 一 ...
- 用C#实现基于TCP协议的网络通讯
TCP协议是一个基本的网络协议,基本上所有的网络服务都是基于TCP协议的,如HTTP,FTP等等,所以要了解网络编程就必须了解基于TCP协议的编程.然而TCP协议是一个庞杂的体系,要彻底的弄清楚它的实 ...
- QQ使用了什么通讯协议?为什么要这样做?为什么采用 UDP 协议,而不采用 TCP 协议实现?
登陆采用TCP协议和HTTP协议,你和好友之间发送消息,主要采用UDP协议,内网传文件采用了P2P技术. QQ对于普通用户是采用UDP协议,对于会员用TCP协议 总来的说: 1.登陆过程,客户端cli ...
- 用C#实现基于TCP协议的网络通讯(2)
2008-09-09 19:36 作者: 出处:www.4oa.com ( 11 ) 砖 ( 12 ) 好 评论 ( 0 ) 条 进入论坛 更新时间:2005-09-29 14:54 关 键 词 ...
最新文章
- 百度“知识增强的跨模态语义理解技术”获国家技术发明奖
- python从小到大的顺序输出-python从小到大的顺序输出
- python语言格式化输出_Python | 格式化输出字符串
- 改变服务器控件的显示属性,2.6.1 设置Style特性和其他属性
- Manjaro 软件源及软件管理相关操作【pacman、pacman-mirrors】整理
- boost::multi_array模块测试 index_gen 的代码
- 复合主键 复合外键_复合双重错误
- 函数运行 形参实参变化 内存空间_可能python创始人都不知道的,python函数实参形参讲解...
- mysql+添加乱码_rsyslog+loganalyzer+mysql的IP添加与中文乱码解决
- win7x64 连接oracle 客户端 vs 2010调试 提示“ORA-12154: TNS: 无法解析指定的连接标识符 ”
- JavaScript 高级程序设计笔记
- 软件测试性能测试报告完整版,性能测试报告模板
- 【matlab图像处理】图像直方图操作和matlab画图
- HTML/CSS写的简单的注册页面
- 完整的项目管理流程包括什么?
- IBM CEO彭明盛年薪上涨11%达2090万美元
- liferay mysql_Liferay中搭配MySQL数据库的两种措施
- 全国大学生FPGA创新设计竞赛:FPGA—相位干涉仪测向算法
- 用谷歌地图api获取图形范围内有几个标记点
- EMC 重新注册license