TCP的三次握手

来源:互联网 发布:算法c语言实现高清pdf 编辑:程序博客网 时间:2024/05/21 06:30

TCP连接的建立
一、连接建立过程中要解决的问题

1.要使每一方能够知道对方的存在;2.要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)3.能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配

二、建立方式

采用<客户服务器方式(CS)>  <主动> 发起连接建立的应用进程叫做 <客户>(client)  <被动> 等待连接建立的应用进程叫做 <服务器>(server)

SYN
位于TCP首部,同步SYN,同步SYN等于1表示这是一个连接请求或连接接受报文。
ACK
确认ACK,只有当ACK=1时,确认字段才有效,当ACK=0时,确认号无效。(确认号:位于TCP首部,占四字节)
FIN
位于TCP首部,终止FIN,用来释放一个连接,FIN=1,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。

由客户机发起TCP连接
1.客户机发SYN包

同部位SYN=1,并选择序号seq=x,表明传送数据时的第一个数据字节的序号是x

2.服务器发SYN+ACK

服务器在确认报文段中应使SYN=1,使ACK等于1,其确认号ack=x+1,自己选择的序号seq=y。

3.客户机发ACK包

客户收到报文段后向服务器给出确认,其ACK=1,确认号ack=y+1,seq=x+1

服务器的TCP收到客户的确认后,也通知上层应用进程:TCP连接已建立
这里写图片描述

TCP的三次握手:
客户:我想跟你通话?
服务器:你想说什么你说吧。
客户:好的,那我们开始通话吧。
从此。客户和服务器走上了一天天的腻歪(不要怕,你没有机会,他们也会结束的哦)

原创粉丝点击