TCP协议特点和3次握手

来源:互联网 发布:新致软件成都分公司 编辑:程序博客网 时间:2024/05/29 11:07

TCP是面向连接的协议,传输之前两端点之间要建立连接,传输结束则关闭这一连接。TCP连接有如下特点:

1.TCP连接是两端点之间点对点的连接,不支持一点对点的传输和广播。

2.TCP是全双工连接,支持双向传输,允许端点在任何时间发送数据,TCP能够在两个方向上缓冲输入和输出的数据。

3.TCP连接采用客户-服务器模式,主动发起连接请求的进程为客户,被动等待建立连接的进程为服务器。

4.TCP连接的端点用IP地址和端口号二元组来标识,而一个连接则由本地和远程的一对端点,即一个四元组(本地IP、本地端口号、远程IP、远程端口号)来标识,它是唯一的。

TCP使用了三次3握手的方式建立连接,3此握手的过程如图所示客户机主机A的端口1和服务器主机B端口2建立连接,共交换3次报文。

    

①主机A发起握手,目的端点为主机端口2

生成一个随机数作为它的初始发送序号x。

发送一个同步报文段,SYN=1,发送序号seq=x,ACK=0

②主机B监听到端口2上有连接请求,主机B响应,并继续同步过程。

生成一个随机数作为它的初始发送序号seq=y。

发送同步报文段并对主机A端口1的连接请求进行确认,SYN=1,发送序号seq=y,ACK=1.确认序号ackseq=x+1。

③主机A确认B的同步报文段,建立连接过程结束。

发出对端口2的确认,ACK=1,确认序号ackseq=y+1。

这样双方就建立了连接,客户机和女服务器主机就可以相互发送含有数据的报文段了。

3次握手时,前两个报文段不携带数据,而在第3次握手时主机A 把数据放在握手的保文段中连同对主机B的确认信息(ACK=1,ackseq=y+1)一起发送出去。

为什么TCP的连接需要3次握手,而不是两次呢?下面我们假设是两次握手看看会发生什么:

当主机A发出连接请求报文,但是它在某些中间网络节点延迟时间过长,当主机A的重传定时时限到,于是又重发一次连接请求,这次B收到了连接请求,发回确认,A收到确认,建立了连接,而且A只发送很短的 ①数据,这样传输就会很快完毕并释放了连接。

但是,A第一次发送的请求并没有真正的丢失,这个时候它姗姗来吹,到达主机B,而对于B来说,无法鉴别这种情况,误认为A又发送了一次 新的连接请求,于是它向A发出确认报文段,同意建立连接。但是A并没有要求建立连接,因此对于B的确认并不会理睬,可是B却以为传输连接接这样建立了,然后一直等待A发来数据,浪费了主机B的资源。由此一来,就产生了问题。

但是当采用3次握手时,就可以防止上述由于延迟的连接请求而引起的不正常现象发生。由下上面的3次握手的图可以看出,如发生了上述同样的情况,虽然连接已经发生了前两次握手,但是A知道这是不正常的连接,并不会继续进行正常的第3次握手,而是发送一个复位 报文段用来清除这一连接,如下图所示:


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孕早期长得太快怎么办 怀孕了肚子眼脏怎么办 孕38周孩子偏小怎么办 孕初期胖的厉害怎么办 怀孕干活累着了怎么办 怀孕了上班很累怎么办 孕妇胖的太快怎么办 孕妇长得太快怎么办 眼睛一按吱吱响怎么办 孕期太胖了怎么办啊 人流后子宫复位不好怎么办 怀孕初期有盆腔积液怎么办 怀孕了有盆腔积液怎么办 多囊怀孕不想要怎么办 6个月婴儿大小眼怎么办 健身教练岁数大了以后怎么办 超变战陀玩具手柄坏了怎么办 飓风战魂三陀螺中轴坏了怎么办 怎么办晚安角和铁陀螺 白衣服染上荧光剂了怎么办 指尖陀螺不亮了怎么办 手指陀螺不转了怎么办 月经推迟私处还老是流水怎么办 苹果手机刷机后忘记id密码怎么办 锤基意外怀孕怎么办零6 职场遇到心机婊怎么办 高二会考没过怎么办 保险柜没电了打不开怎么办 保险柜没有电了打不开怎么办 小保险箱没电了怎么办 bim墙的颜色反了怎么办 眼睛大但是无神怎么办 吃了凉的胃难受怎么办 吃凉东西胃疼怎么办 游戏只有一个分辨率选项怎么办 玩游戏心态易崩怎么办 打游戏心态炸了怎么办 赛鸽比赛回来拉稀怎么办 鸽子拉竹节水便怎么办 新买的鸽子拉稀怎么办 信鸽羽毛上长了虫子怎么办