Chinaunix首页 | 论坛 | 博客
  • 博客访问: 473272
  • 博文数量: 41
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2015-02-05 14:08
个人简介

c++ programmer

文章分类

全部博文(41)

文章存档

2020年(2)

2018年(3)

2017年(23)

2016年(13)

我的朋友

分类: C/C++

2016-12-24 16:50:57

TCP 

 TCP是一个复杂的、可靠的、无边界的全双工的字节流协议。

 1. TCP 连接建立

     TCP连接建立需要经过三次握手(客户端connect和服务端accept期间进行)。
     三路握手经过:
       ① 客户端调用connect(阻塞),发送一个SYN J分节;
       
② 服务端调用accept(阻塞),接收到SYN J客户端分节,后发送另一个SYN K分节和确认ACK J+1;
       
③ 客户端接收到服务端的SYN K和确认ACK J+1后,connect函数返回,并发送确认ACK K+1;
       
④ 服务端接收到客户端的确认,accept函数返回,三路握手完成,两者成功建立TCP通信连接。
        

 2. TCP 连接断开

     TCP连接关闭需要经过四次握手
     四分节经过:

       ① 客户端调用close,发送一个FIN M分节;
       ② 服务端read/recv返回一个文件结束符,并发送一个确认ACK M+1;
       ③ 服务端处理文件结束符,调用close,发送一个FIN N分节;
       ④ 客户端接收到FIN N,发送一个确认ACK N+1,连接完全关闭。


     

 3. TCP 状态转换 

    

 4. TCP 状态分组

     





@摘抄自《UNIX网络编程



阅读(1395) | 评论(0) | 转发(0) |
0

上一篇:log

下一篇:SCTP 关联建立与断开

给主人留下些什么吧!~~