TCP网络分层与三次握手四次挥手

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_18242391/article/details/82840421

TCP/IP网络分层

网络分层百度定义: 网络分层就是将网络节点所要完成的数据的发送或转发、打包或拆包,控制信息的加载或拆出等工作,分别由不同的硬件和软件模块去完成。这样可以将往来通信和网络互连这一复杂的问题变得较为简单。

网络层次有osi和TCP/IP两种,可划分为七层因特网协议栈和五层因特网协议栈

网络分层协议比较


分层结构

  • 1.应用层

应用层是我们经常接触使用的部分,比如常用的http协议、ftp协议(文件传输协议)、snmp(网络管理协议)、telnet (远程登录协议 )、smtp(简单邮件传输协议)、dns(域名解析),这层主要是面向用户的交互的。这里的应用层集成了osi分层模型中的应用、会话、表示层三层的功能。

  • 2 . 传输层

传输层的作用就是将应用层的数据进行传输转运。比如我们常说的tcp(可靠的传输控制协议)、udp(用户数据报协议)。传输单位为报文段。
tcp(Transmission Control Protocol)
面向连接(先要和对方确定连接、传输结束需要断开连接,类似打电话)、复杂可靠的、有很好的重传和查错机制,一般用与高速、可靠的通信服务。
udp(user datagram protocol)
面向无连接(无需确认对方是否存在,类似寄包裹)、简单高效、没有重传机制。一般用于即时通讯、广播通信等

  • 3 . 网络层

网络层用来处理网络中流动的数据包,数据包为最小的传递单位,比如我们常用的ip协议、icmp协议、arp协议(通过分析ip地址得出物理mac地址)。

  • 4 .数据链路层

数据链路层一般用来处理连接硬件的部分,包括控制网卡、硬件相关的设备驱动等。传输单位数据帧。

  • 5 .物理层
    物理层一般为负责数据传输的硬件,比如我们了解的双绞线电缆、无线、光纤等,比特流光电等信号发送接收数据。

数据传递过程,首先应用层将数据报文按照协议封装格式压缩,然后传递给传输层、传输层通过协议将数据报封装为数据报段、然后传递给网络层,网络层将数据报段封装为数据包,并传递给数据链路层,数据链路层收到数据包,封装为数据帧,然后又将数据帧转比特流传递给物理层,物理层将比特流通过光或电信号发送给目标。


更加详细看这里

三次握手和四次挥手

三次握手与四次挥手分别对应TCP连接的建立与断开

过程:
具体过程看这里

  • 1.为什么要三次握手?

三次握手是为了建立可靠的通信信道,主要目的就是双方确认自己与双方的发送与接收机能正常。
第一次握手:Client什么都不能确认;Server确认了对方发送正常。
第二次握手:Client确认了:自己发送、接收正常,对方发送、接收正常;Server确认了:自己接收正常,对方发送正常。
第三次握手:Client确认了:自己发送、接收正常,对方发送、接收正常;Server确认了:自己发送、接收正常,对方发送接收正常
所以三次握手就能确认双发收发功能都正常,缺一不可。

  • 2 . 为什么要发送特定的数据包?

三次握手的另外一个目的就是确认双方都支持TCP,告知对方用TCP传输。
第一次握手:Server 猜测Client可能要建立TCP请求,但不确定,因为也可能是Client乱发了一个数据包给自己
第二次握手:通过ack=J+1,Client知道Server是支持TCP的,且理解了自己要建立TCP连接的意图
第三次握手:通过ack=K+1,Server知道Client是支持TCP的,且确实是要建立TCP连接
四次挥手也是类型,只是为了让对方知晓自己理解了对方的意图。

  • 3 . 为什么要四次挥手?

根本原因是,一方发送FIN只表示自己发完了所有要发的数据,但还允许对方继续把没发完的数据发过来。
举个例子:A和B打电话,通话即将结束后,A说“我没啥要说的了”,B回答“我知道了”,但是B可能还会有要说的话,A不能要求B跟着自己的节奏结束通话,于是B可能又巴拉巴拉说了一通,最后B说“我说完了”,A回答“知道了”,这样通话才算结束。

参考

1 .TCP/IP分层模型

2 .TCP的三次握手与四次挥手(详解+动图)

3 . TCP三次握手和四次挥手过程

猜你喜欢

转载自blog.csdn.net/qq_18242391/article/details/82840421
今日推荐