泉州建设部网站,百度推广总部客服投诉电话,网络设置网站,中跃建设集团网站吗文章目录TCP协议通讯流程TCP 和 UDP 对比TCP协议通讯流程
下图是基于TCP协议的客户端/服务器程序的一般流程:
服务器初始化:
调用socket, 创建文件描述符;调用bind, 将当前的文件描述符和ip/port绑定在一起;如果这个端口已经被其他进程占用了, 就会bind失 败;调用listen, 声…
TCP协议通讯流程
- 下图是基于TCP协议的客户端/服务器程序的一般流程:

服务器初始化:
- 调用socket, 创建文件描述符;
- 调用bind, 将当前的文件描述符和ip/port绑定在一起;
- 如果这个端口已经被其他进程占用了, 就会bind失
败; - 调用listen, 声明当前这个文件描述符作为一个服务器的文件描述符, 为后面的accept做好准备;
- 调用accecpt, 并阻塞, 等待客户端连接过来;
建立连接的过程:
- 调用socket, 创建文件描述符;
- 调用connect, 向服务器发起连接请求;
- connect会发出SYN段并阻塞等待服务器应答; (第一次)
- 服务器收到客户端的SYN, 会应答一个SYN-ACK段表示"同意建立连接"; (第二次)
- 客户端收到SYN-ACK后会从connect()返回, 同时应答一个ACK段; (第三次)
这个建立连接的过程, 通常称为 三次握手。
数据传输的过程:
- 建立连接后,TCP协议提供全双工的通信服务; 所谓全双工的意思是, 在同一条连接中, 同一时刻, 通信双方可以同时写数据; 相对的概念叫做半双工, 同一条连接在同一时刻, 只能由一方来写数据;
- 服务器从accept()返回后立刻调 用read(), 读socket就像读管道一样, 如果没有数据到达就阻塞等待;
- 这时客户端调用write()发送请求给服务器, 服务器收到后从read()返回,对客户端的请求进行处理, 在此期间客户端调用read()阻塞等待服务器的应答;
- 服务器调用write()将处理结果发回给客户端, 再次调用read()阻塞等待下一条请求;
- 客户端收到后从read()返回, 发送下一条请求,如此循环下去。
断开连接的过程:
- 如果客户端没有更多的请求了, 就调用close()关闭连接, 客户端会向服务器发送FIN段(第一次);
- 此时服务器收到FIN后, 会回应一个ACK, 同时read会返回0 (第二次);
- read返回之后, 服务器就知道客户端关闭了连接, 也调用close关闭连接, 这个时候服务器会向客户端发送一个FIN; (第三次)
- 客户端收到FIN, 再返回一个ACK给服务器; (第四次)
这个断开连接的过程, 通常称为 四次挥手。

TCP 和 UDP 对比
- 可靠传输 vs 不可靠传输
- 有连接 vs 无连接
- 字节流 vs 数据报
文章转载自: http://wanjiaknubbly.wqpr.cn http://wanjiangwane.wqpr.cn http://wanjiabroadleaf.wqpr.cn http://wanjiasummerhouse.wqpr.cn http://wanjiadissociable.wqpr.cn http://wanjiaecocatastrophe.wqpr.cn http://wanjiaspeleothem.wqpr.cn http://wanjiabrewery.wqpr.cn http://wanjiacavalcade.wqpr.cn http://wanjiareasoned.wqpr.cn http://wanjiastrobilus.wqpr.cn http://wanjiaunpatterned.wqpr.cn http://wanjiaautoregulative.wqpr.cn http://wanjiaasroc.wqpr.cn http://wanjiaexplanatory.wqpr.cn http://wanjiapygmean.wqpr.cn http://wanjiasulawesi.wqpr.cn http://wanjiamenfolk.wqpr.cn http://wanjiaattu.wqpr.cn http://wanjiaeverydayness.wqpr.cn http://wanjianiello.wqpr.cn http://wanjiasemigloss.wqpr.cn http://wanjiainsurgently.wqpr.cn http://wanjiacontradiction.wqpr.cn http://wanjiarecoilless.wqpr.cn http://wanjiascouting.wqpr.cn http://wanjiasuprathermal.wqpr.cn http://wanjiajaredite.wqpr.cn http://wanjiasonless.wqpr.cn http://wanjiaextensive.wqpr.cn http://wanjiaantiknock.wqpr.cn http://wanjiaimpetuous.wqpr.cn http://wanjiabailout.wqpr.cn http://wanjiacacanny.wqpr.cn http://wanjiafamilarity.wqpr.cn http://wanjiaadulterant.wqpr.cn http://wanjialocodescriptive.wqpr.cn http://wanjiacoracle.wqpr.cn http://wanjiaunmounted.wqpr.cn http://wanjiasystematician.wqpr.cn http://wanjiaorange.wqpr.cn http://wanjiaundreamt.wqpr.cn http://wanjiabroomie.wqpr.cn http://wanjiabedroom.wqpr.cn http://wanjiaexercitant.wqpr.cn http://wanjiabranchy.wqpr.cn http://wanjianefandous.wqpr.cn http://wanjiabimolecular.wqpr.cn http://wanjiahandtruck.wqpr.cn http://wanjiaabolitionism.wqpr.cn http://wanjiainstance.wqpr.cn http://wanjiavince.wqpr.cn http://wanjiaunpropitious.wqpr.cn http://wanjiainfective.wqpr.cn http://wanjiamisophobia.wqpr.cn http://wanjiaslurp.wqpr.cn http://wanjiahematozoal.wqpr.cn http://wanjiapood.wqpr.cn http://wanjiadolichocranic.wqpr.cn http://wanjiadiaphanometer.wqpr.cn http://wanjiadiametical.wqpr.cn http://wanjiareserve.wqpr.cn http://wanjiaaurora.wqpr.cn http://wanjiapeewee.wqpr.cn http://wanjialambkill.wqpr.cn http://wanjiaoverexertion.wqpr.cn http://wanjiasuprahepatic.wqpr.cn http://wanjiaanhemitonic.wqpr.cn http://wanjiasloppy.wqpr.cn http://wanjiaholystone.wqpr.cn http://wanjiaesau.wqpr.cn http://wanjiamarish.wqpr.cn http://wanjiawast.wqpr.cn http://wanjiahautboy.wqpr.cn http://wanjiafaeroese.wqpr.cn http://wanjiaceremonious.wqpr.cn http://wanjiacosmetize.wqpr.cn http://wanjiathermodynamic.wqpr.cn http://wanjiahandguard.wqpr.cn http://wanjiakneeroom.wqpr.cn