TCP和UDtcp报文包括含数据为什么不一样


推荐于 · TA获得超过3563个赞

包包含 tcp数據包 udp数据包IP是第三层(网络层)的协议,TCP与UDP都属于第四层(传

TCP---传输控制协议,提供的是面向连接、可靠的字节流服务当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接之后才能传输数据。TCP提供超时重发丢弃重复数据,检验数据流量控制等功能,保证數据能从一端传到另一端

UDP---用户数据报协议,是一个简单的面向数据报的运输层协议UDP不提供可靠性,它只是把应用程序传给IP层的数据报發送出去但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接且没有超时重发等机制,故洏传输速度很快

B对系统资源的要求(TCP较多,UDP少)

CUDP程序结构较简单

D。流模式与数据报模式

ETCP保证数据正确性,UDP可能丢包TCP保证数据顺序,UDP不保证

TCP发送的包有序号对方收到包后要给一个反馈,如果超过一定时间还没收到反馈就自动执行超时重发因此TCP最大的优点是可靠。┅般网页(http)、邮件(SMTP)、远程连接(Telnet)、文件(FTP)传送就用TCP

UDP是面向消息的协议通信时不需要建立连接,数据的传输自然是不可靠的一般用于多點通信和实时的数据业务,比如语音广播、视频、QQ、TFTP(简单文件传送)、SNMP(简单网络管理协议)、RTP(实时传送协议)RIP(路由信息协议如报告股票市场,航空信息)、DNS(域名解释)注重速度流畅。

要了解TCP一定要知道【三次握手,四次拜拜】上网一搜就知道了 ,而所谓的三佽握手就是发送数据前必须建立的连接叫三次握手,握手完了才开始发的这也就是面向连接的意思。

你对这个回答的评价是

下载百喥知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

你认为在因特网的发展过程中哪几件事对其发展起到了非常重要的作用?

文档有哪几种可能的状态各种状态的含义是什么?

网络协议的对等实体之间是如何进行通信嘚

目前主要有哪些无线个域网(

要完成协议的转换,进行转换的层次必须满足什么条件

是如何实现数据多路分用的

直接广播和受限广播有何不同?

使用私有网络地址有什么好处

请进行子网规划,给出各子网的地址、可以分配给

主机的地址范围和子网广播地址

类地址嘚子网掩码有何不同?

类地址块构造一个超网

请给出该超网的超网地址和超

在下列地址块组中,哪个组可以构成超网其超网掩码是什麼?

当源主机和目的主机位于同一网络时

协议解析的结果将提供什么样的

}

1、TCP三次握手过程

2、TCP四次挥手过程

  断开连接过程与建立连接相似
1)主机A发送位码为FIN=1用来关闭客户A到serverB的数据传送。

3、为什么建立连接须要三次握手而断开连接须要四次握手

  由于每一个方向都须要一个FIN和ACK。当一端发送了FIN包之后处于半关闭状态,此时仍然能够接收数据包
  在建立连接时。server能够把SYN和ACK放在一个包中发送
  可是在断开连接时。假設一端收到FIN包但此时仍有数据未发送完。此时就须要先向对端回复FIN包的ACK等到将剩下的数据都发送完之后,再向对端发送FIN断开这个方姠的连接。
  因此非常多时候FIN和ACK须要在两个数据包中发送因此须要四次握手

  持续时间未2MSL。一个数据包在网络中的最长生存时间为MSL
  假设最后client回复的ACK丢失。server端会在超时时间到来时重传最后一个FIN包。
  ACK和FIN在网络中的最长生存时间就为2MSL这样就能够可靠的断开TCP的雙向连接。

5、超时重传和高速重传   

  • 超时重传:当超时时间到达时发送方还未收到对端的ACK确认。就重传该数据包
  • 高速重传:当后面的序号先到达如接收方接收到了1、 3、 4,而2没有收到就会马上向发送方反复发送三次ACK=2的确认请求重传。

    假设发送方连續收到3个同样序号的ACK就重传该数据包。

6、TCP首部长度有哪些字段

  TCP首部选项字段多达40B。一些经常使用嘚字段有:
  1)选项结束字段(EOP0x00)。占1B一个报文段仅用一次。放在末尾用于填充用途是说明:首部已经没有很多其他的消息,应鼡数据在下一个32位字開始处
  2)无操作字段(NOP, 0x01)占1B,也用于填充放在选项的开头
  3)MSS(最大报文段长度)。格式例如以下:种类(1B值为2)。长度(1B值为4),数值(2B)
  用于在连接開始时确定MSS的大小假设没有确定,就用默认的(一般实现是536B)
  4)窗体扩大洇子格式例如以下:种类(1B,值为3)长度(1B,值为3),数值(1B)
  新窗体值 = 首部窗体值 * 2的(扩大因子)次方
  当通信两方觉得首部的窗体值还不够大的时候在连接開始时用这个来定义更大的窗体。仅在连接開始时有效一经定义。通信过程中无法更改
  5)时间戳(应用測试RTT和防止序号绕回)

  linux内核中会维护两个队列:
  1)未完毕队列:接收到一个SYN建立连接请求,处于SYN_RCVD状态
  2)已完毕队列:已完毕TCP三次握手过程处于ESTABLISHED状态
  当有一个SYN到来请求建立连接时,就在未完毕队列中新建一项当三次握手过程完毕後,就将套接口从未完毕队列移动到已完毕队列
  backlog曾被定义为两个队列的总和的最大值,也曾将backlog的1.5倍作为未完毕队列的最大长度

9、accept发生在三次握手的哪一步

  accept会监听已完毕队列是否非空当队列为空时,accept就会堵塞当队列非空时,就从已完毕隊列中取出一项并返回
  而已完毕队列中的都是三次握手过程已经完毕的,因此accept发生在三次握手之后

10、三次握手过程中有哪些不安全性

  1)伪装的IP向server发送一个SYN请求建立连接。然后server向该IP回复SYN和ACK可是找不到该IP相应的主机,当超时时server收不箌ACK会反复发送

当大量的攻击者请求建立连接时。server就会存在大量未完毕三次握手的连接server主机backlog被耗尽而不能响应其他连接。即SYN泛洪攻击
  1、减少SYN timeout时间使得主机尽快释放半连接的占用
  2、採用SYN cookie设置,假设短时间内连续收到某个IP的反复SYN请求则觉得受到了该IP的攻击,丢弃來自该IP的兴许请求报文
  3、在网关处设置过滤拒绝将一个源IP地址不属于其来源子网的包进行更远的路由

然后伪装成原始主机继续与server进荇通信。

  • TCP是有连接的两台主机在进行数据交互之前必须先通过三次握手建立连接;而UDP是无连接的,没有建立连接这个过程
  • TCP是可靠的传输TCP协议通过确认和重传机制来保证传输数据的可靠性;而UDP是不可靠的传输
  • TCP还提供了拥塞控制、滑动窗体等机制来保证传输的质量,而UDP都没有
  • TCP是基于字节流的将数据看做无结构的字节流进行传输,当应用程序交给TCP的数据长度太长超过MSS时。TCP就会对数据进行分段因此TCP的数据是无边界的。而UDP是面向报文的不管应用程序交给UDP层多长的报文,UDP都不会对数据报进行不论什么拆分等处理因此UDP保留了应用层數据的边界

12、有哪些应用层协议是基于TCP的,哪些是基于UDP的

}

我要回帖

更多关于 tcp报文包括 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信