您好,欢迎来到网暖!
?
当前位置:网暖 » 站长资讯 » 建站基础 » 网络技术 » 文章详细 订阅RssFeed

TCP协议详解,你从未见过额全新版本

来源:网络整理 浏览:180次 时间:2020-02-27
前言:

TCP/IP协议簇的传输层协议主要有两个,TCP(Transimission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)

一:TCP协议介绍

TCP是面向连接的,可靠的进程到进程通信的协议。

TCP提供全双工服务,即数据可在同一时间双向传输,每一个TCP都有发送缓存和接收缓存,用来临时存储数据。

二:TCP报文格式2.1TCP报文段

TCP将若干个字节构成一个分组,成为报文段。

TCP报文段封装在IP数据报中。

mark

2.2TCP报文段格式

mark

源端口号:16位字段,为发送方进程对应的端口号。

目标端口号:16位字段,对应的是接收端的进程,接收端收到数据后,根据这个端口号来确定吧这个数据送给哪个应用程序的进程。

序号:当TCP从进程接收数据字节时,就把他们存储在发送缓存中,并对每一个字节进行编号。

确认号:确认号是对发?#25237;?#30340;确认信息。用它来告诉发?#25237;?#36825;个序号之前的数据段都已经收到。如确认号是X,就表示前X-1个数据段都已经收到。

首部长度:一般是20字节,最大可以扩展为60字节。用它可以确定首部数据结构的字节长度。

保留:作为今后扩?#26500;?#33021;使用,现在还没有使用到。

控制位:这六位作用很重要,TCP的连接,传输?#25237;?#24320;都受这六个控制位的指挥。各位的含义如下。

URG:紧急指针?#34892;?#20301;。只有0和1,1表示指针开启。数据传输时,?#30830;?#22312;缓存(内存)中,临时保存起来,紧急指针位是指可以在内存中优先提取数据。

PSH:标志位=1时要求接收方尽快将数据段送达应用层。即PSH=1时,不经过缓存,直接将数据段送达应用层。优先级高于URG。

<u>ACK</u>:确认位。只有当ACK=1时,确认序列号才?#34892;А?#24403;ACK=0时,确认序列号字段无效。

<u>SYN</u>:连接位。同步序号位,TCP需要建立连接时将这个值设置为1.

<u>FIN</u>:断开连接标识。发?#25237;送?#25104;发送任务位,当TCP完成数据传输需要断开连接时,提出断开连接的一方将这个值设置为1.

RST:重新建立连接TCP连接时使用。,当RST=1时,通知重新建立TCP连接。

窗口大小:用于说明本地可接收数据段的数目,窗口大小是可变的。当网络通畅是窗口?#24403;?#22823;可以加快传输速度,当网络不稳定时减小这个值可以保证网络数据?#30446;?#38752;传输。TCP协议中的流量控制机制就是依靠变化窗口?#26723;?#22823;小实现的。

校验和:用来做差错控制。在发送TCP数据段时,由发?#25237;?#35745;算校验和,到达目的地时再进行一次校验和计算。若两次校验和一致,则说明数据基本是正确的,否则将认为数据已被破坏,接收端将丢弃数据。

紧急指针:和URG配合使用,当URG=1时?#34892;А?/p>

选项:在TCP首部可以有多达40字节?#30446;?#36873;信息。

三:TCP连接--三次握手3.1第一次握手

mark

建立连接过程:PC1发送建立连接请求,SYN标志位设为1.

mark

3.2第二次握手

这一次握手实际上分为两部分来完成。

第一部分:PC2收到PC1的请求,向PC1回复一个确认信息,此过程的典型标志就是TCP的ACK控制位为1。且确认序列号是PC1的初始序列号加1.

第二部分:PC2收到请求后需要回?#30784;?#21363;PC2也向PC1发送建立连接的请求,此过程的典型标志和第一次握手一样,即TCP的SYN控制位为1.

为了提高效率,一般将这里两个部分合并在一个数据包里实现。

3.3第三次握手

PC1收到了PC2的回复(包含请求和确认),此时需要向PC2回复一个确认信息,此过程的典型标志就是TCP的ACK控制位为1.且确认序列号是PC2的初始序列号加1.

此?#26412;?#23436;成了三次握手

3.4总结

上图中

Seq表示请求序列号。

Ack表示确认序列号

SYN控制位只有在请求建立连接时才被设为1.

四:TCP四?#20301;?#25163;

参加数据交换的双方中的任何一方(客户和服务器)都可以关闭连接。TCP断开连接分四步,也称为四?#20301;?#25163;。

mark

mark

4.1第一?#20301;?#25163;

PC1发送 FIN 和 ACK 控制位为1的TCP报文段给PC2.

FIN:断开连接标识,提出断开连接的一方将这个值设为1.

ACK:ACK=1,表示确认序列号字段?#34892;А?/p>4.2第二?#20301;?#25163;

PC2收到PC1的信息,开始回?#30784;?/p>

PC2 回复 ACK=1 的 TCP 报文段给 PC1。

4.3第三?#20301;?#25163;

PC2现在开始主动发送消息给PC1,发送 FIN=1,ACK=1 的报文段给PC1.

即PC2也发消息给PC1,FIN=1,我(也)要和你断开连接。ACK=1,确认序列号字段?#34892;А?/p>4.4第四?#20301;?#25163;

PC1收到 PC2 的消息,回复ACK=1 的TCP报文段。

ACK=1,确认PC2 发给 PC1 的序列号字段?#34892;А?/p>4.5半关闭

在TCP断开连接(四?#20301;?#25163;)的过程中,TCP一方(通常是客户端)可以终止发送数据,但仍然可以接收数据,成为半关闭。

具体描述一下:

1.客户端发哦是那个FIN报文段,半关闭了这个连接,服务器发送ACK报文段接收半关闭。

2.服务器继续发送数据,而客户端只发送ACK确认,不再发送任何数据。

3.当服务器吧所有数据都发送完毕时,就发送FIN报文段,客户再发送ACK报文段,这样就关闭了TCP连接。

五:DUP协议介绍5.1UDP协议

UDP缺点:是一个无连接,不保证可靠性的传输层协议,也就是说发?#25237;瞬还?#24515;发送的数据是否达到目标主机,数据是否出错等,收到数据的主机也?#25442;?#21578;诉发送方是否收到了数据,它?#30446;?#38752;性由上层协议来保障。

UDP优点:UDP的首部结构简单,在数据传输时能实现最小?#30446;?#38144;。

mark

5.2UDP报文的首部格式

UDP在实际工作中的应用?#27573;?#24456;广,例如,聊天工具QQ在发?#25237;?#28040;息?#26412;?#20351;用了UDP的方式。

mark

5.3UDP协议端口和功能

mark

TFTP:简单文件传输协议,速度快。

RPC::远程过程调用。同步传输数据的时候会用到。

NTP:比如做网络架构时,100台机器实现数据同步传输,就需要用到网络时间协议。

六:常见协议及其端口

mark

FTP:文件服务器,方便文件的上传和下载。

TELNET:采用明文发送,建议在局域网中使用,不建议在广域网中使用。

SMTP:发送?#22987;?#30340;协议

POP3:收?#22987;?#30340;协议

HTTP:打开网站用到的协议

推荐站点

  • 腾讯腾讯

    腾讯网(www.QQ.com)是中国浏览量最大的中文门户网站,是腾讯公?#23601;?#20986;的集新闻信息、互动社区、娱乐产品和基础服务为一体的大型综合门户网站。腾讯网服务于全球华人用户,致力成为最具传播力和互动性,权威、主流、时尚的互联网媒体平台。通过强大的实时新闻和全面深入的信息资讯服务,为中国数以亿计的互联网用户提供富有创意的网上新生活。

    www.qq.com
  • 搜狐搜狐

    搜狐网是全球最大的中文门户网站,为用户提供24小时不间断的最新资讯,及搜索、?#22987;?#31561;网络服务。内容包括全球热点?#24405;?#31361;发新闻、时事评论、热播影视剧、体育赛事、行业动态、生活服务信息,以及论坛、博客、微博、我的搜狐?#28982;?#21160;空间。

    www.sohu.com
  • 网易网易

    网?#36164;?#20013;国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容?#26723;潰?#21450;博客、视频、论坛?#28982;?#21160;交流,网聚人的力量。

    www.163.com
  • 新浪新浪

    新浪网为全球用户24小时提供全面及时的中文资讯,内容覆盖国内外突发新闻?#24405;?#20307;坛赛事、娱乐时?#23567;?#20135;业资讯、实用信息等,设有新闻、体育、娱乐、财经、科技、房产、汽?#26723;?0多个内容?#26723;潰?#21516;时开设博客、视频、论坛等自由互动交流空间。

    www.sina.com.cn
  • 百度一下百度一下

    百度一下,你就知道

    www.baidu.com
?
诙谐财富送彩金
l篮球即时比分 11选5吉林走势图 比较好的比分网 3d预测专家 三明期货配资公司 篮球比分在线 快中彩票app下载 东北麻将怎么胡 排列三前500期 山西十一选五 什么平台有麻将好友房 浙江20选5最新开 竞彩比分直播旧版 微乐河北麻将安卓版下载 163足球指数 nba今日比赛比分