Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1342585
  • 博文数量: 244
  • 博客积分: 1039
  • 博客等级: 少尉
  • 技术积分: 1562
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-06 09:40
文章分类

全部博文(244)

文章存档

2021年(2)

2019年(6)

2018年(2)

2014年(1)

2013年(187)

2012年(47)

分类: LINUX

2012-03-17 22:12:27

TCP 三次握手
TCP 连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程:
1. 客户端向服务器发送一个SYN置位的TCP报文,其中包含连接的初始序列号x和一个窗口大小(表示客户端上用来存储从服务器发送来的传入段的缓冲区的大小)。
2. 服务器收到客户端发送过来的SYN报文后,向客户端发送一个SYN和ACK都置位的TCP报文,其中包含它选择的初始序列号y、对客户端的序列号的确认x+1和一个窗口大小(表示服务器上用来存储从客户端发送来的传入段的缓冲区的大小)。
3. .客户端接收到服务器端返回的SYN+ACK报文后,向服务器端返回一个确认号y+1和序号x+1的ACK报文,一个标准的TCP连接完成。
TCP 使用类似的握手过程来结束连接。这可确保两个主机均能完成传输并确保所有的数据均得以接收.

上面是在网上看到的,看了还不是很明白。感觉还没有回答为什么需要握手,为什么是三次?

还是来看Richard Stevens的大作《unix 网络编程》(第三版)

2.6TCP连接和终止

2.6.1三路握手

第二点:

客户通过用connect 发起主动打开。这导致客户TCP发送一个SYN(同步)分节,他告诉服务器客户将在(待建立)连接中发送的数据的初始化列号。通常SYN分节不携带数据,其所在IP数据包只含一个IP首部,一些可能有的TCP选项。

也就是说,三次连接,是为了告诉和确认对方的,初始化序列号,和一些TCP选项。

TCP选项包括什么呢?

1、MSS选项(maximum segment size)最大分节大小。

2、窗口规模选项

3、时间戳选项。

这些选项在TCP传输过程中有什么作用的呢?下回分解……

阅读(3420) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

☆彼岸★花开2012-03-20 00:07:02

额(⊙o⊙)…期待LZ下回分解……