对码当歌,猿生几何?

Tcp协议介绍

前情提要:根据域名建立tcp链接之前要做两件事情,1 根据arp协议找到网管mac地址 2 通过dns服务器解析出域名的Ip地址,解析出域名的Ip地址之后就可以建立tcp链接了。

tcp协议三个特点:1 实现可高传输 2 实现流量控制 3 避免网络拥塞

tcp首部:

 

 

 序号:表示传输数据第一个字节 是整个数据中的第几个字节

 确认号:表示下一个链接过来的传输数据的第一个字节 是整个数据中的第几个字节

 URG:值为1时表示数据不用进入TCP缓存池排队,直接发送给接收端

 ACK:表示确认号码是否有效,0无效 1有效 

 SYN:值为1时表示发起会话请求的标识,其他为0后者不传(一般用于tcp握手阶段)

 PSH:值为1时表示接收端要提前提交给应用程序,不要进入TCP缓存池

 RST: 值为1时表示终端链接

 RST:值为1时表示释放链接

TCP三次握手

为什么要进行三次握手?

  理论上2次握手已经可以判断网络是通畅的,但是为什么还要进行第三次呢?主要是为了解决当第一握手时,如果出现网络延迟时,客户端一段时间没有收到服务器的响应 就会再发一次握手信息,此时服务器会给客户端一个响应。后面客户端一次发送的握手信息,又传送到服务器,此时服务器会在给客户端一个响应,此时客户端就不会在处理这个响应,如果没有第三次握手,服务器还在等待着客户端传输数据,会很浪费服务器资源。

TCP四次挥手

tcp 链接图