TCP三次握手与四次挥手

        创建TCP须要三次握手才能创建,而断开链接则须要四次握手。整个过程以下图所示:服务器

wKiom1eYpxjSOh4VAABrbN1SxTc514.jpg-wh_50

1、三次握手(创建链接)网络

wKioL1eYptyzzIJiAAAu7qAMl0I358.jpg-wh_50

    1.客户端发出段1,SYN位表示链接请求。序号是1000,这个序号在网络通信中用做临时的地址,每发一个数据字节,这个序号要加1,这样在接收端能够根据序号排出数据包的正确顺序,也能够发现丢包的状况,另外,规定SYN位和FIN位也要占一个序号,此次虽然没发数据,可是因为发了SYN位,所以下次再发送应该用序号1001。mss表示最大段尺寸, 若是一个段太大,封装成帧后超过了链路层的最大帧长度,就必须在IP 层分片,为了避 免这种状况,客户端声明本身的最大段尺寸,建议服务器端发来的段不要超过这个长度。 ide

    2.服务器发出段2,也带有SYN位,同时置ACK位表示确认,确认序号是1001,表示“我接收到序号1000及其之前全部的段,请你下次发送序号为1001的段”,也就是应答了客户端 的链接请求,同时也给客户端发出一个链接请求,同时声明最大尺寸为1024。 spa

    3.客户端发出段3,对服务器的链接请求进行应答,确认序号是8001。server

    假设不采用“三次握手”,那么只要server发出确认,新的链接就创建了。因为如今client并无发出创建链接的请求,所以不会理睬server的确认,也不会向server发送数据。但server却觉得新的运输链接已经创建,并一直等待client发来数据。这样,server的不少资源就白白浪费掉了。主要目的防止server端一直等待,浪费资源blog

2、四次挥手(断开链接)资源

wKiom1eYqs3wBCRGAAAuqTUnQ8g956.jpg-wh_50

    1.客户端发出段7,FIN位表示关闭链接的请求。 get

    2.服务器发出段8,应答客户端的关闭链接请求。 it

    3.服务器发出段9,其中也包含FIN位,向客户端发送关闭链接请求。  io

    4.客户端发出段10,应答服务器的关闭链接请求。 

相关文章
相关标签/搜索