【<TCP专题>】

[1] 讲一下TCP/IP协议?

TCP/IP协议模型在OSI七层模型的基础上,通过合并的方式,简化为四层,分别为应用层,传输层,网络层以及链路层

我们通常的应用程序都工作在应用层,当各个应用之间通信时,传输层的TCP模块负责给HTTP数据添加TCP头部等信息;网络层的IP模块负责给HTTP数据添加IP头部等信息;链路层添加以太网首部等信息,并且通过电信号来传输数据包;然后数据包会依次经过对方的链路层,网络层,传输层以及应用层,实现数据的通信。

[2] 讲一下TCP和UDP协议的区别(5条)?

答:TCP和UDP协议都是传输层常见的协议,它们的主要区别如下所示:

  1. TCP提供面向连接的传输,通信前要先建立连接(三次握手机制); UDP提供无连接的传输,通信前不需要建立连接。
  2. TCP提供可靠的传输(校验,重排序,应答,丢弃重复,超时重发,滑动窗口); UDP不能保证传输的可靠
  3. TCP面向字节流的传输,因此它能将信息分割成组,并在接收端将其重组; UDP是面向数据报的传输,没有分组开销。
  4. TCP提供拥塞控制; UDP则不提供。
  5. 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信;
  6. 网络包中的TCP头部为20-60个字节;UDP头部只有8个字节。

数据报是通过网络传输的数据的基本单元,包含一个报头(header)和数据本身,其中报头描述了数据的目的地以及和其它数据之间的关系。数据报是完备的、独立的数据实体,该实体携带要从源计算机传递到目的计算机的信息,该信息不依赖以前在源计算机和目的计算机以及传输网络间交换

**总结:**TCP通信类似于打电话,接通了,确认身份后,开始通话;
UDP通信类似于村喇叭,很多村民都能听到。

[3] TCP协议是如何保证可靠传输的?
  1. 数据包校验:目的是检测数据在传输过程中的任何变化,若校验出包有错,则丢弃报文段并且不给出响应,这时 TCP 发送数据端超时后会重发数据;

  2. 对失序数据包重排序:既然 TCP 报文段作为 IP 数据报来传输,而 IP 数据报的到达可能会失序,因此 TCP 报文段的到达也可能会失序。TCP 将对失序数据进行重新排序,然后才交给应用层;

  3. 丢弃重复数据:对于重复数据,能够丢弃重复数据;

  4. 应答机制:当 TCP 收到发自 TCP 连接另一端的数据,它将发送一个确认(这个确认不是立即发送,通常将推迟几分之一秒);

  5. 超时重发:当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段;

  6. 滑动窗口是一种流量控制技术。TCP连接每一方都有固定大小的缓冲空间,滑动窗口的大小意味这接收方有多大的缓存区接受数据。当接收缓冲池的大小发生变化时,要给对方发送更新窗口大小的通知,利用滑动窗口机制有效提高通信效率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值