从网络分层结构谈到TCP 连接的“ 三次握手 ”与“ 四次挥手 ”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从网络分层结构谈到TCP 连接的“ 三次握手 ”与“ 四次挥手 ”相关的知识,希望对你有一定的参考价值。

参考技术A 为了使不同计算机厂家生产的计算机能够相互通信,国际标准化组织(ISO)在1978年提出了“开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)。
它将计算机网络体系结构的通讯协议分为:

应用层 :HTTP,FTP,WWW,Telnet,NFS,SMTP,Gateway,SNMP
表示层 :TIFF,GIF,JPEG,PICT,ASCII,EBCDIC,encryption,MPEG,MIDI,html
会话层 :RPC,SQL,NFS,NetBios,names,AppleTalk,ASP,DECnet,SCP
传输层 :TCP,UDP,SPX
网络层 :IP,IPX,AppleTalk DDP
数据链路层:Frame Relay,HDLC,PPP,IEEE802.3 / 802.2,FDDI,ATM,IEEE802.5 / 802.2
物理层:EIA / TIA - 232,EIA / TIA - 499,V.35,V.24,RJ45,Ethernet,802.3,802.5,FDDI,NRZI,NRZ,B8ZS

物理层:实现计算机系统与网络间的物理连接
数据链路层:进行数据打包与解包,形成信息帧
网络层:提供数据通过的路由 - 高速路
传输层:提供传输顺序信息与响应 -卡车
会话层:建立和中止连接
表示层:数据转换、确认数据格式
应用层:提供用户程序接口 -货物

应用层:Telnet,FTP,SMTP,SNMP,HTTP
传输层:TCP,UDP,UGP
网络层: IP,ICMP,IGMP
数据链路层:ARP,RARP

只要计算机要联网,TCP/IP协议就是互联网的基础协议。取名TCP/IP是因为IP代表了“网络层”,TCP(对立的有UDP)代表了“传输层”

TCP中三次握手和四次挥手

什么是TCP

  • 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
  • TCP旨在适应支持多网络应用的分层协议层次结构。
    连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。
  • 由TCP 建立的连接叫做虚连接(virtual connection),这是因为它们是由软件实现的,底层的系统并不对连接提供硬件或软件支持,只是两台机器上的TCP 软件模块通过交换消息来实现逻辑。

TCP报文格式介绍

  • TCP报文段首部格式

TCP报文首部格式

  • TCP报文段控制位介绍控制为介绍

三次握手

三次握手

  • 三次握手不足之处

SYN红泛攻击

四次挥手

四次握手模型

四次握手

为什么要等待2MSL时间

  • MSL(Maximum Segment Lifetime),TCP允许不同的实现可以设置不同的MSL值。
  • 保证客户端发送的最后一个ACK报文能够到达服务器,因为这个ACK报文可能丢失,站在服务器的角度看来,我已经发送了 FIN+ACK报文请求断开了,客户端还没有给我回应,应该是我发送的请求断开报文它没有收到,于是服务器又会重新发送一次,而客户端就能在这个2MSL时间段内收到这个重传的报文,接着给出回应报文,并且会重启2MSL计时器。
  • 防止类似与“三次握手”中提到了的“已经失效的连接请求报文段”出现在本连接中。客户端发送完最后一个确认报文后,在这个2MSL时间中,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。这样新的连接中不会出现旧连接的请求报文。
  • 建立连接的时候,服务器在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。而关闭连接时,服务器收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,而自己也未必全部数据都发送给对方了,所以己方可以立即关闭,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送,从而导致多了一次。
  • TCP还设有一个保活计时器,显然,客户端如果出现故障,服务器不能一直等下去,白白浪费资源。服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常是设置为2小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75秒发送一次。若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。

文章图片来源于哔哩哔哩王道考研 计算机网络原理

以上是关于从网络分层结构谈到TCP 连接的“ 三次握手 ”与“ 四次挥手 ”的主要内容,如果未能解决你的问题,请参考以下文章

[网络]TCP的三次握手与四次挥手[转载]

TCP中三次握手和四次挥手

TCP三次握手详解,滑动窗口,网络包路由过程,全连接队列,半连接队列

计算机网络

TCP 的三次握手,四次挥手和重要的细节—干货满满,建议细读

计算机网络八股文