美文网首页
第17/18章 TCP:概述、连接建立和终止

第17/18章 TCP:概述、连接建立和终止

作者: yulongsun | 来源:发表于2016-09-01 14:00 被阅读35次

1、 概述

  • TCP提供一种面向连接的可靠的字节流服务。全双工通信。
  • 一个TCP连接由一个四元组唯一确定:本地IP,本地IP端口,远程IP,远程IP端口
  • TCP将用户数据打包构成报文段,发送数据后启用一个定时器,另一端对收到的数据进行确定,对失序的数据进行重新排序,丢弃重复的数据;TCP提供端到端的流量控制,并计算和验证一个强制性的端到端检验和。许多流行的应用层程序如:Telnet,Rlogin,FTP,SMTP都使用TCP。

** TCP依靠以下方式来提供可靠性:**
超时重发。主要不得到确认,就重新发送数据报,知道对方确认为止。


2. TCP首部

TCP数据被放在一个IP数据包中,如图:

TCP数据在IP数据包中的封装

下图为TCP首部的数据格式。如果不计任选字段,通常为20个字节。

TCP首部数据格式
  • 源端口和目的端口:用于寻找发端和收端的应用进程。
  • 序号seq:标示从TCP发端向TCP收端发送的数据字节楼。4B,序号范围是[0,2^31-1]。
  • 确认序号:
  • 首部长度:
  • 保留:
  • 6个标志比特:紧急URG、确认比特ACK、推送比特PSH、复位比特RST、同步比特SYN、终止比特FIN
  • 窗口:
  • 检验和:
  • 紧急指针:
  • 选项:

3. TCP连接的建立

TCP连接建立-三次握手

三次握手过程如下

  1. 第一次握手:建立连接,客户端A发送SYN包(seq=x)到服务器,并进入SYN_SEND状态,等待服务器B确认。
  2. 第二次握手:服务器收到SYN包,必须确认客户端A的SYN包(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包。此时服务器进入SYN_RECV状态。
  3. 第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ack=y+1),此包发送完毕,客户端A
    和服务器端B都进入ESTABLISHED状态,完成三次握手。
    完成三次握手,客户端与服务器端开始传送数据。

4.TCP连接的断开

TCP连接的终止

四次挥手过程如下:

  1. 连接的一个A的某个应用程序首先调用close,执行主动关闭。他的TCP发送一个FIN分节,表示数据发送完毕;
  2. 接受的到的这个FIN分节的对端B执行被动关闭,并由其TCP确认这个FIN(向A发送确认)。然后将这个FIN作为文件结束符发送给他自身的应用进程;
  3. 一点时间后(中间有个close-waite),B调用close关闭套接字,并由其TCP发送一个FIN给A;
  4. 接受到这个FIN的A端TCP发送ACK确认这个FIN;

彩蛋:

  • TCP连接为什么不是二次也不是四次?

三次握手:
“喂,你听得到吗?”
“我听得到呀,你听得到我吗?”
“我能听到你,今天balabala……”

两次握手:
“喂,你听得到吗?”
“我听得到呀”
“喂喂,你听得到吗?”
“草,我听得到呀!!!!”
“你TM能不能听到我讲话啊!!喂!”
“……”

四次握手:
“喂,你听得到吗?”
“我听得到呀,你听得到我吗?”
“我能听到你,你能听到我吗?”
“……不想跟傻逼说话”

作者:匿名用户
链接:https://www.zhihu.com/question/24853633/answer/114872771
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

  • 三次握手 四次挥手流程如下:
整个流程
  • 参考:

TCP协议中的三次握手和四次挥手(图解)
《TCP/IP详解》学习笔记-第17/18章 TCP:概述、连接建立与终止

相关文章

  • 第17/18章 TCP:概述、连接建立和终止

    1、 概述 TCP提供一种面向连接的、可靠的字节流服务。全双工通信。 一个TCP连接由一个四元组唯一确定:本地IP...

  • TCP(I) 连接管理

    TCP 连接管理 查看原文 TCP 连接的建立和终止 一个 TCP 连接由一个四元组构成:源 IP、源端口、目的 ...

  • TCP连接的建立和终止

    目录(1)三次握手(2)四次挥手(3)TCP状态转换图(4)TCP连接三次握手+四次挥手+状态转换 一:三次握手 ...

  • TCP连接的建立和终止

    1,TCP连接的建立 (1)服务器必须准备好接受外来的连接,通常通过socket,bind和listen这3个函数...

  • TCP连接的建立和终止

    三路握手 建立一个TCP连接时,会发生下述情形: 服务器通过调用 socket、bind、和listen函数完成。...

  • TCP连接的建立和终止

    TCP建立连接 1.请求端(通常称为客户)发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号(ISN)。...

  • TCP连接的建立和终止

    UDP向另一端发生数据报时,无需任何提前的握手。而TCP必须在双方之间建立一条连接。 建立连接协议 为了建立一条T...

  • 接收连接basic_socket_acceptor

    概述 TCP有一处和UDP不同的地方是TCP是面向连接的,TCP有建立连接、通信、关闭连接的操作,Boost.As...

  • 网络资料总结3

    传输层相关 一 TCP 1.1 TCP状态 TCP连接的建立和终止 理解TCP的三次握手,四次挥手TCP 为什么是...

  • TCP连接的建立与终止

    TCP 状态变迁图 8. 同时打开 状态变化:SYN_SENT -> SYN_RCVD -> ESTABLIS...

网友评论

      本文标题:第17/18章 TCP:概述、连接建立和终止

      本文链接:https://www.haomeiwen.com/subject/kjicettx.html