zoukankan      html  css  js  c++  java
  • 具体解释TCP协议的服务特点以及连接建立与终止的过程(俗称三次握手四次挥手)

    转载请附本文的链接地址:http://blog.csdn.net/sahadev_/article/details/50780825 ,谢谢。


    tcp/ip技术经常会在我们面试的时候出现,非常多公司也要求须要掌握tcp/ip,socket等。所以掌握这项技术会为我们面试的时候加分。

    好,今天我就简单的介绍一下tcp技术:

    首先说一下tcp位于运输层,如今网络被分为了5层,由上往下说:

    应用层,运输层,网络层,链路层,物理层。

    应用层:就是我们使用的http技术或者ftp协议包装了我们要传输的数据。

    运输层:它会将应用层的数据包装发送给网络层,它为应用层提供了各种各样的传输方式。

    比如tcp提供了可靠的传输的传输技术,就是由运输层来实现的。

    网络层:对运输层的数据进一步的包装,并将上层数据包发往目的端。

    比如我们通常所熟悉的ip协议就位于这一层。

    链路层:这一层为IP发送和接收数据报,通常包含操作系统中的设备驱动程序和计算机中相应的网络接口卡,他们一起处理与电缆的物理接口细节。

    物理层:就是我们的电话线。光缆。wifi之类的。


    简介了下网络协议的分层,回来说说tcp协议的特点:

    ·应用数据被切割成TCP觉得最适合发送的数据块。由TCP传递给IP的信息单位成为报文段或段。

    ·当TCP发出一个段后,它启动一个定时器。等待目的端确认收到这个报文段。

    假设不能及时收到一个确认。将重发这个报文段。

    ·当TCP收到法子TCP链接还有一端的数据,它将发送一个确认。这个确认不是马上发送,通常将推迟几分之中的一个秒。

    ·TCP将保持它首部和数据的检验和,这是一个端到端的检验和。目的是检測数据在传送过程中的不论什么变化。

    假设收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发送端超时重发)。

    ·既然TCP报文段作为IP数据报来传输。而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。

    假设必要,TCP将对收到的数据进行又一次排列,将收到的数据以正确的顺序交给应用层。

    ·既然IP数据报会反复发送。TCP的接收端必须丢弃反复的数据(由于会超时重发)

    ·TCP还能提供流量控制。TCP链接的每一方都有固定大小的缓冲控件。

    TCP的接收端同意还有一端发送接受端缓冲区所能接纳的数据。

    这将防止较快主机致使较慢主机的缓冲区溢出。


    通过以上特点。TCP会保证发送端应用层的数据正确,准确。按次序到达目的端应用层。


    说完了TCP协议的特点。我们接下来描写叙述一下三次握手与四次挥手。网上的非常多文章对这块讲的不具体,不是依照专业词语来描写叙述的,使我们缺乏对原理的理解。

    三次握手过程:

    1.client发送一个SYN段(SYNchronous,TCP首部中同步序号标志)指明将要链接的server接口,段中包括初始序号ISN(Initial Sequence Number 初始序号)。

    2.服务端发回SYN段作为应答。当中包括服务端的初始序号以及将确认序号。确认序号设置为客户的ISN值加1,以对客户的SYN报文段进行确认。

    3.client必须将确认序号设置为server的ISN值加1并发送给服务端,以对服务端的SYN报文段进行确认。


    四次挥手过程:

    为什么要有4次挥手呢,由于TCP连接是全双工的,即数据在两个方向上能同一时候传递,所以关闭的时候须要先将一边关闭,再将还有一边关闭。

    1.当一段完毕数据发送任务之后,能够发送一个FIN(也就是finish,TCP首部中的结束标志)。来终止这个方向连接。

    2.当还有一端收到FIN之后,它必须通知应用层还有一端已经终止了那个方向的数据传送。

    而且它须要发回一个ACK(ACKnowledgment TCP首部中的确认标志)进行确认。确认序号为收到的序号加1,和SYN一样,FIN也相同会包括一个序号。同一时候TCP的这一端还向应用层传送一个文件结束符。

    3.接着这一端。也就是刚開始接收到FIN码的这一端会发送一个FIN来请求关闭还有一边的通路。

    4.client收到之后必须发挥一个确认,并将确认序号设置为收到序号加1。


    好了。以上就是关于TCP的特点以及三次握手与四次挥手的过程。希望大家能够读懂吸收成为自己的知识,有不明确的欢迎留言讨论。

  • 相关阅读:
    HDU1879 kruscal 继续畅通工程
    poj1094 拓扑 Sorting It All Out
    (转)搞ACM的你伤不起
    (转)女生应该找一个玩ACM的男生
    poj3259 bellman——ford Wormholes解绝负权问题
    poj2253 最短路 floyd Frogger
    Leetcode 42. Trapping Rain Water
    Leetcode 41. First Missing Positive
    Leetcode 4. Median of Two Sorted Arrays(二分)
    Codeforces:Good Bye 2018(题解)
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7230513.html
Copyright © 2011-2022 走看看