Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1620040
  • 博文数量: 268
  • 博客积分: 8708
  • 博客等级: 中将
  • 技术积分: 3764
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-06 15:58
文章分类

全部博文(268)

文章存档

2014年(1)

2013年(15)

2012年(23)

2011年(60)

2010年(51)

2009年(12)

2008年(59)

2007年(47)

分类: 网络与安全

2008-05-06 14:58:25

对c o n n e c t函数的调用启动T C P的三次握手过程,在客户和服务器之间建立
起连接。

T C P是一个面向连接的协议。无论哪一方向另一方发送数据之前,都必须先在双方之间
建立一条连接。本章将详细讨论一个T C P连接是如何建立的以及通信结束后是如何终止的。
这种两端间连接的建立与无连接协议如U D P不同。一端使用U D P向另
一端发送数据报时,无需任何预先的握手。

为了建立一条T C P连接:
1) 请求端(通常称为客户)发送一个S Y N段指明客户打算连接的服务器的端口,以及初
始序号(I S N,在这个例子中为1 4 1 5 5 3 1 5 2 1)。这个S Y N段为报文段1。
2) 服务器发回包含服务器的初始序号的S Y N报文段(报文段2)作为应答。同时,将确认
序号设置为客户的I S N加1以对客户的S Y N报文段进行确认。一个S Y N将占用一个序号。
3) 客户必须将确认序号设置为服务器的I S N加1以对服务器的S Y N报文段进行确认(报文
段3)。
这三个报文段完成连接的建立。这个过程也称为三次握手( three-way handshake)

连接终止协议
建立一个连接需要三次握手,而终止一个连接要经过4次握手。这由T C P的半关闭(h a l f -
c l o s e)造成的。既然一个T C P连接是全双工(即数据在两个方向上能同时传递),因此每个方
向必须单独地进行关闭。这原则就是当一方完成它的数据发送任务后就能发送一个F I N来终止
这个方向连接。当一端收到一个F I N,它必须通知应用层另一端几经终止了那个方向的数据传
送。发送F I N通常是应用层进行关闭的结果。
 
收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
 (1) TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。
 (2) 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
 (3) 服务器关闭客户端的连接,发送一个FIN给客户端。
 (4) 客户段发回ACK报文确认,并将确认序号设置为收到序号加1。


阅读(758) | 评论(0) | 转发(0) |
0

上一篇:dns

下一篇:GSM系统

给主人留下些什么吧!~~