Linux socket编程(一)——TCP基础知识

我从不生产知识,我只是知识的搬运工 。

 

目录

1 TCP连接的建立与终止

1.1 TCP连接三路握手

1.2 TCP连接终止 

2 TCP状态转换图

3 TCP连接的分组交换

参考:


1 TCP连接的建立与终止

1.1 TCP连接三路握手

TCP连接建立过程:

(1)、服务器必须准备好接受外来的连接。这通常通过调用socket、bind、listen这三个函数来完成,称之为被动打开;

(2)、客户端通过connect发起主动打开;这将导致客户端TCP发送一个SYN(同步)分节,告诉服务器在将要建立的连接中发送的数据的初始序列号;

(3)、服务器确认(ACK)客户端的SYN,并发送一个SYN分节;

(4)、客户端确认(ACK)服务器的SYN;

1.2 TCP连接终止 

TCP连接终止过程:

(1)、某个应用进程首先调用close,我们称该端执行主动关闭(active close)。该端的TCP
于是发送一个FIN分节,表示数据发送完毕;

(2)、接收到这个FIN的对端执行被动关闭(passive close);

(3)、一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致
它的TCP也发送一个FIN;

(4)、接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN;

 

2 TCP状态转换图

    TCP为一个连接定义了11种状态,规定了如何基于当前状态及在该状态下所接收的分节从一个状态转换到另一个状态;

3 TCP连接的分组交换

    下图展示了一个完整的TCP连接所发生的实际分组交换情况;

 

参考:

  • 《UNIX网络编程卷1:套接字联网AP》

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值