第十五章:传输控制协议(TCP)

本文详细介绍了TCP协议的基础知识,包括TCP的特点、报文段格式、连接建立过程、数据传送机制、连接关闭、异常终止连接、状态转换图、窗口管理、流量控制、差错控制及拥塞控制策略。还涵盖了TCP的各种计时器及其作用,以及TCP选项和软件包的内容。通过这些内容,读者可以深入理解TCP的工作原理和在网络通信中的重要性。
摘要由CSDN通过智能技术生成

1:基础

1:在UDP中,进程把已经定义好边界的报文发送给UDP进行发送,从进程发过来的报文称为用户数据报,并最终称为IP数据报,各个数据报之间不存在联系

2:在TCP中,进程以字节流的方式传递数据,TCP是全双工通信,每一方都有自己的发送缓存和接收缓存,这些缓存是差错控制,流量控制,拥塞控制的基础

3:进程以字节流方式将数据发送给运输层,运输层将若干个字节组成一个报文段,发送给网络层,并形成IP数据报发送出去

4:TCP通信要先建立一条虚连接,然后交换数据,最后终止连接

 

2:特点

1:字节号

1:TCP把要发送的数据按字节编号,编号不一定从0开始,而是0~2的32次方-1的一个随机数开始,由于TCP是全双工通信,两个方向的编号是独立的

2:序号

1:传输层将字节流分成报文段,每个报文段的序号就是报文段第一个字节的字节号

2:当一个报文段携带数据和控制信息(捎带)时,使用一个序号,当报文段只携带控制信息时,可能会占用一个序号,以便接收方确认,这种报文用于连接建立,连接终止,连接异常终止

3:确认号

1:报文段中的确认号是发送方希望收到的下一个分组的序号(也就是下一个数据字节号),确认号是累积的,也就是说确认号A表示A之前的数据都已经收到

4:流量控制,差错控制,拥塞控制

1:流量控制,差错控制都是面向字节的

2:发送方能发的数据量受流量控制和拥塞控制

 

3:TCP报文段格式

1:TCP首部长20~60字节,可变部分是选项和填充

2:字段包括:源端口地址,目的端口地址,32位序号,32位确认号,

首部长度:20~60字节之间

控制:,可以定义此报文段类别,如同步序号,包含确认号,紧急指针有效,终止连接等

窗口大小:16位,也就是最大65535字节,这个值被称为接收窗口,由接收方确定

检验和:同样包含IP伪首部+TCP首部+数据部分,UDP检验和是可选的,但TCP是必须计算的

紧急指针:当控制中的紧急标志置位时有效,此时报文段中含有紧急数据,此数值+报文段序号=报文段紧急数据最后一个字节的字节号

选项和填充:0~40字节,后面解释

 

4:TCP建立连接

1:三向握手

1:客户端发送SYN报文段,控制中的SYN标志置1,此报文段作用是同步序号,客户端选择了一个随机的序号,并作为此报文段序号发送给服务端,此报文段不包含确认号和窗口大小,只有当一个报文段中包含了确认号时,定义窗口大小才是有意义的,因为要发送确认号,也就是接收到数据,接收窗口会产生改变,此时告诉对方自己的接收窗口大小才有意义,此报文段还可以包含一些选项,SYN报文段是一个控制报文段,不携带数据,但它要消耗一个序号,以后发送数据时序号要加1

2:服务器发送SYN+ACK报文段,控制中的SYN和ACK标志置1,此报文段同样同步服务器序号,由于包含了确认ACK,则要告诉客户端自己的接收窗口大小,SYN+ACK报文段不携带数据,但要消耗序号

3:客户端发送ACK报文段,告诉服务端自己的接收窗口大小,此报文段一般不携带数据,所以不消耗序号,也就是使用同1所使用的一样的序号;但在有些实现中,它携带客户端的第一个数据块,这种情况下会消耗序号

2:同时打开

当两个进程都发出主动打开请求时,会有些特殊情况,后面解释

3:SYN洪泛攻击

1:原理:攻击者伪造自己的IP,不断向服务器发送SYN报文段,此时服务器不断回SYN+ACK报文段,并分配了一些资源(如创建传送控制块(TCB)表,计时器),当数量足够时,服务器没有时间处理正常的连接,这类攻击称为拒绝服务攻击

2:解决方法:

(1):限制单位时间连接次数

(2):过滤IP地址

(3):使用Cookie,做到推迟资源分配,直到服务器能够证实连接请求来自合法的IP地址,SCTP采用了这种策略

 

5:TCP数据传送

1:数据传送是双向的,一个报文段携带数据的同时也能携带确认号

2:如果一个报文段不携带数据,则它不占用序号,比如:前一个报文段发送的数据字节号为1000~2000,则下一个不携带数据的报文段序号

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值