课堂笔记day25

老男孩Linux运维58期课堂笔记

                                                                                                作者:于冬

                                                                                                归档:课堂笔记

                                                                                                日期:4.3

1、TCP/IP协议C/S架构建立连接过程分析

过程描述

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。


TCP数据报文格式

1、源端口号和目的端口号这个字段均为16位的长度,表示发送端和接收端的端口,用于确认发送端和接收端的应用程序。发送端的IP地址和断就好及接收端的IP地址和端口号可以确认一个在Internet上的TCP连接。

2、序列号序列号是一个32位长度的字段,表示分配给TCP包的编号。序列号用来表示应用程序从TCP的发送端到接收端发送的字节流。当TCP开始连接的时候发哦少年宫一个序列号给接收端,连接成功后,这个序列号作为初始的序列号ISN(Initial Sequence Number)。建立连接成功后发送的第一个字节的序列号为ISN+1,之后发送数据ISN将按照字节的大小进行递增。序列号是一个32位的无符号数,到达2的32此房减1之后从0开始。

3、确认号发送方对发送的首字节进行了编号,当接收方成功接收后,发送回接收成功的序列号+1表示确认,发送方再次发送的时候从确认号开始

4、头部长度表示TCP头部的长度,由于TCP的数据有可选字段,头部长度用于表示头部的长度。此字段的长度为4位,表示的是以32位长的数据。因此TCP的头部最长为60个字节,如果没有可选字段通常为20个字节。

5、保留位6位长度没有使用,必须设为0

6、控制位6b,用作控制位,可以多个位一起设置。

你可能感兴趣的:(课堂笔记day25)