TCP 连接的前世今生
点击上方“码农突围”,马上关注 这里是码农充电第一站,回复“666”,获取一份专属大礼包 真爱,请设置“星标”或点个“在看
前言
缘起
什么是TCP
面向连接:一定是「一对一」才能连接,不能像 UDP 协议可以一个主机同时向多个主机发送消息,也就是一对多是无法做到的。 可靠交付:无论的网络链路中出现了怎样的链路变化,TCP 都可以保证一个报文一定能够到达接收端。 面向字节流:也就是说仅仅把上层协议传递过来的数据当成字节传输。
网络模型
七层模型
应用层报头:Ppplication Header, 简称 AH。 表示层报头:Presentation Header, 简称 PH。 会话层报头:Session Header, 简称 SH。 传输层报头:Transport Header, 简称 TH。 网络层报头:Network Header, 简称 NH。 数据链路层报头:Data link Header, 简称 DH。 应用层协议数据单元:Protocol Data Unit,简称 PDU。 数据链路层报尾:Data link Termination,简称 DT。
五层网络模型
应用层:确定进程之间通信的性质,以满足用户需求。应用层协议有很多。如支持万维网应用的 HTTP 协议、支持电子邮件的 SMTP 协议、等等。 传输层:负责主机间不同进程的通信。这一层中的协议有面向连接的 TCP (传输控制协议)、无连接的 UDP (用户数据报协议);数据传输的单位称为报文段或用户数据报。 网络层:负责分组交换网中不同主机间的通信。作用为:发送数据时,将运输层中的报文段或用户数据报封装成 IP 数据报,并选择合适路由。 数据链路层:负责将网络层的 IP 数据报组装成帧。 物理层 :透明地传输比特流。
四层网络模型
网络接口层:包括用于协作 IP 数据,在已有网络介质上传输的协议。实际上 TCP/IP 标准并不定义与 ISO 数据链路层和物理层相对应的功能 。相反,它定义了像 ARP (地址解析协议)这样的协议,提供 TCP/IP 协议的数据结构和实际物理硬件之间的接口。 网络层:网络层对应于 OSI 七层参考模型的网络层。本层包含 IP 协议、RIP 协议(路由信息协议),负责数据的包装、寻址和路由。同时还包含 ICMP (网间控制报文协议)用来提供网络诊断信息。 传输层:传输层对应于 OSI 七层参考模型的传输层,它提供两种端到端的通信服务。其中 TCP协议提供可靠的数据流运输服务, UDP 协议提供不可靠的用户数据报服务。 应用层:应用层对应于 OSI 七层参考模型的应用层和表示层。因特网的应用层协议包括 FTP (文件传输协议)HTTP (超文本传输协议)、 Telent (远程终端协议)、SMTP (简单邮件传送协议)、 IRC (因特网中继会话)、NNTP (网络新闻传输协议)等。
TCP头格式
URG 标志,表示紧急指针是否有效。 ACK 标志,表示确认号是否有效,一般称携带 ACK 标志的 TCP 报文段为"确认报文段"。 PSH 标志,提示接收端应用程序应该立即从 TCP 接收缓冲区中读走数据,为接收后续数据腾出空间(如果应用程序不将接收到的数据读走,它们就会直停留在 TCP 接收缓冲区中)。 RST 标志,表示要求对方重新建立连接,一般称携带 RST 标志的 TCP 报文段为"复位报文段"。 SYN 标志,表示请求建立 个连接,一般称携带 SYN 标志的 TCP 报文段为"同步报文段"。FIN 标志,表示通知对方本端要关闭连接了,一般称携带 FIN 标志的 TCP 报文段为"结束报文段"。
TCP三次握手
第一次握手:建立连接时,客户端发送 SYN 包到服务器,并进入 SYN_SEND 状态,等待服务器确认。
第二次握手:服务器收到 SYN 包,必须确认客户的 SYN ,同时自己也发送一个 SYN 包,即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态。
第三次握手 :客户端收到服务器的 SYN + ACK 包,向服务器发送确认包 ACK,此包发送完毕,客户端和服务器进入 ESTABLISHE 态。
连接建立中的异常
建连接时SYN超时问题
关于SYN Flood攻击
避免方式
TCP四次挥手
TCP的连接断开
为什么建连接要三次握手,断连接需要四次挥手?
断开连接中的异常
TIME_WAIT数量太多
优化法一:tcp_tw_reuse
优化法二:tcp_max_tw_buckets
TCP状态流转
总结
- END - 最近热文
• 韦神!北大数学系韦东奕爆红!拒绝哈佛offer,留任北大! • 他是世界上最杰出程序员之一,1 个月写了个操作系统,退休后去做飞行员! • 开挂的00后!17岁「天才少女」被8所世界名校录取,最终选择MIT计算机系 • 微信沙雕功能“炸屎”上线!网友:满屏的粑粑真可爱
评论