加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

聊点TCP干货

发布时间:2019-05-29 08:43:47 所属栏目:教程 来源:美码师
导读:我们在平时的开发中,或多或少都会涉猎到网络传输这块。 这篇文章,主要是整理一下 TCP 的一些知识要点,作为一名开发者来说,尽管有那么多的基础设施(框架、组件)帮我们屏蔽了这些细节。但我仍然认为了解它的一些基本原理必有些裨益,尤其是当你在分布式

(6) 标志位:紧急标志位(URG):开启时表明此数据包处于紧急状态应该优先处理

  • 确认标志位(ACK):开启时表明确认号有效,否则忽略确认号
  • 推送标志位(PSH):开启时表明应该尽快交付给应用进程,而不必等到缓存区填满才推送,比如 telnet 的场景
  • 复位标志位(RST):开启时表明TCP连接出现连接出现错误,数据包非法拒绝连接
  • 同步标志位(SYN):开启时表明连接建立的标志
  • 终止标志位(FIN):开启时表明释放一个连接

(7) 窗口大小:表明期望接受到的数据包字节数,用于拥塞控制。

(8) 校验和:实现对TCP报文头以及数据区进行校验。

(9) 紧急指针:在紧急状态下(URG打开),指出窗口中紧急数据的位置(末端)。

(10) 选项(可变):用于支持一些特殊的变量,比如最大分组长度(MSS)。

(11) 填充:用于保证可变选项为32 bit的整数倍。

黑板:一般情况下TCP 头部为20字节,加上20字节的 IP头部,一个数据包至少包含40字节的头部

三、TCP 工作流程

链是指链路,这个是物理层的概念,比如光缆光纤,或是无线的电磁波。

但这里所说的链路其实是网络连接的意思,即 IP 上层的概念。

那么,一个TCP 正常的通讯流程,会包含建链(建立连接)、传输数据、拆链(关闭连接),

如下图所示:

聊点 TCP 干货

(图来自网络)

据上图所示,在进行 TCP 进行数据传输时,都不可避免的会经过这两个阶段:

  • 三次握手建立连接
  • 执行数据传输、双方读写
  • 四次挥手释放连接

下面,重点说明下建链与拆链的过程

四、 三次握手

聊点 TCP 干货

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读