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