前端大杂烩之计算机网络(二)

7. TCP连接的特点,TCP连接如何保证安全可靠的?

TCP连接的主要特点

  1、面向连接型的传输协议

    TCP传输连接只能有两个端点,只能进行点对点的数据传输,不支持多播(multicast)和广播(broadcast)传输方式。

  2、传输单位为数据段

    TCP仍采用传统的“数据段”作为数据传输单元。由于数据段大小受应用层传送的报文大小和所途经网络中MTU值大小决定,所以每次发送的TCP数据段大小是不固定的。

  3、仅一种TPDU格式

  4、支持全双工传输

    TCP允许通信双方的应用程序在任何时候都能发送数据,因为TCP连接的两端都设有缓存,用来临时存放双向通信的数据。

  5、TCP连接是基于字节流的,而非报文

    TCP不像UDP一样那样一个个报文独立地传输,而是在不保留报文边界的情况下以字节流方式进行传输。

  6、每次发送的TCP数据段大小和数据段数都是可变的

    在TCP中,因为每次发送多少字节的数据不是固定的,也不是由主机当前可用缓存决定的,而是根据双方给出的窗口大小和当前网络的拥塞程度决定的,所以每次可以发送的TCP数据大小是不固定的。

TCP连接如何保证可靠性

  1、应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。

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

  3、当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒 。

  4、 TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段。

  5、既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。

  6、既然IP数据报会发生重复,TCP的接收端必须丢弃重复的数据。

  7、TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。

8. TCP与UDP的区别

 TCP:传输控制协议

 UDP:用户数据报协议

  1、TCP是面向连接的协议,UDP是无连接协议;

  2、TCP提供可靠的服务,UDP尽最大努力交付,即不保证可靠交付;

    TCP丢包会自动重传,UDP不会。

  3、TCP有序,UDP无序;

    消息在传输过程中可能会乱序,后发送的消息可能会先到达,TCP会对其进行重排序,UDP不会。

  4、TCP无界,UDP有界;

    TCP通过字节流传输,UDP中每一个包都是单独的。

  5、TCP有流量控制(拥塞控制),UDP没有;

    主要靠三次握手实现。以及慢开始、拥塞避免、快重传、快恢复

  6、TCP传输慢,UDP传输快;

    因为TCP需要建立连接、保证可靠性和有序性,所以比较耗时。这就是为什么视频流、广播电视、在线多媒体游戏等选择使用UDP。

  7、TCP是重量级的,UDP是轻量级的;

    TCP要建立连接、保证可靠性和有序性,就会传输更多的信息,如TCP的包头比较大。

  8、TCP需要更多资源,UDP则要好上很多;

  9、应用场合不同:TCP一般应用在对可靠性要求比较高的场合,例如http,ftp等等。而UDP一般应用在对实时性要求较高场合,例如视频直播,大文件传输等等;

9. get和post的区别?什么情况下用到?

  GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

  GET和POST有一个很大的区别就是,GET产生一个TCP数据包;POST产生两个TCP数据包。

10. http2与http1的区别?

  主要区别

  1、HTTP/2采用二进制格式而非文本格式

    比起像HTTP/1.x这样的文本协议,二进制协议解析起来更高效、“线上”更紧凑,更重要的是错误更少。

  2、HTTP/2是完全多路复用的,而非有序并阻塞的——只需一个连接即可实现并行

    HTTP/1.x 有个问题叫线端阻塞, 它是指一个连接一次只提交一个请求的效率比较高, 多了就会变慢。 HTTP/1.1 试过用管线化来解决这个问题, 但是效果并不理想(数据量较大或者速度较慢的响应, 会阻碍排在他后面的请求). 此外, 由于网络媒介和服务器不能很好的支持管线化, 导致部署起来困难重重。而多路传输能很好的解决这些问题, 因为它能同时处理多个消息的请求和响应; 甚至可以在传输过程中将一个消息跟另外一个掺杂在一起。所以客户端只需要一个连接就能加载一个页面。

  3、使用报头压缩,HTTP/2降低了开销

  4、HTTP/2让服务器可以将响应主动“推送”到客户端缓存中

    服务器推送服务通过“推送”那些它认为客户端将会需要的内容到客户端的缓存中,以此来避免往返的延迟。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值