美文网首页
TCP/IP(感觉这个能被问一百遍)

TCP/IP(感觉这个能被问一百遍)

作者: 小雨启明 | 来源:发表于2018-09-11 22:49 被阅读0次

如何保证TCP/IP的可靠性

1、校验和
2、序列号
3、确认应答
4、超时重传
5、连接管理
6、流量控制
7、拥塞控制

一、校验和

计算方式:在数据传输的过程中,将发送的数据段都当做一个16位的整数。将这些整数加起来。并且前面的进位不能丢弃,补在后面,最后取反,得到校验和。
发送方:在发送数据之前计算检验和,并进行校验和的填充。
接收方:收到数据后,对数据以同样的方式进行计算,求出校验和,与发送方的进行比对。

注意:如果接收方比对校验和与发送方不一致,那么数据一定传输有误。但是如果接收方比对校验和与发送方一致,数据不一定传输成功。

二、序列号与确认应答
SYN ACK

序列号:TCP传输时将每个字节的数据都进行了编号,这就是序列号。
确认应答:TCP传输的过程中,每次接收方收到数据后,都会对传输方进行确认应答。也就是发送ACK报文。这个ACK报文当中带有对应的确认序列号,告诉发送方,接收到了哪些数据,下一次的数据从哪里发。

序列号的作用不仅仅是应答的作用,有了序列号能够将接收到的数据根据序列号排序,并且去掉重复序列号的数据。这也是TCP传输可靠性的保证之一。

三、超时重传

在进行TCP传输时,由于确认应答与序列号机制,也就是说发送方发送一部分数据后,都会等待接收方发送的ACK报文,并解析ACK报文,判断数据是否传输成功。如果发送方发送完数据后,迟迟没有等到接收方的ACK报文,这该怎么办呢?而没有收到ACK报文的原因可能是什么呢?

首先,发送方没有介绍到响应的ACK报文原因可能有两点:

数据在传输过程中由于网络原因等直接全体丢包,接收方根本没有接收到。
接收方接收到了响应的数据,但是发送的ACK报文响应却由于网络原因丢包了。
TCP在解决这个问题的时候引入了一个新的机制,叫做超时重传机制。简单理解就是发送方在发送完数据后等待一个时间,时间到达没有接收到ACK报文,那么对刚才发送的数据进行重新发送。如果是刚才第一个原因,接收方收到二次重发的数据后,便进行ACK应答。如果是第二个原因,接收方发现接收的数据已存在(判断存在的根据就是序列号,所以上面说序列号还有去除重复数据的作用),那么直接丢弃,仍旧发送ACK应答。

那么发送方发送完毕后等待的时间是多少呢?如果这个等待的时间过长,那么会影响TCP传输的整体效率,如果等待时间过短,又会导致频繁的发送重复的包。如何权衡?

由于TCP传输时保证能够在任何环境下都有一个高性能的通信,因此这个最大超时时间(也就是等待的时间)是动态计算的。

四、连接管理

三次握手 四次挥手
三次握手的原因:如果两次握手的话,客户端一个迷路的请求到达服务器端后会建立其一个连接,该连接显而易见是无效的浪费的。
四次挥手:三次也可以,看服务器端要不要发送数据,
timewait:最后一个ACK失效的话,服务器端会重发FIN,所以需要时间等待来判断是否丢失了。还有就是让最后一个ACK在迷路中死去,不要再去骚扰服务器端。

一定要会手写

老哥的动图做的不错https://blog.csdn.net/qzcsu/article/details/72861891

流量控制与拥塞控制

流量控制与拥塞控制的区别

流量控制是端到端的控制,例如A通过网络给B发数据,A发送的太快导致B没法接收(B缓冲窗口过小或者处理过慢),这时候的控制就是流量控制,原理是通过滑动窗口的大小改变来实现。

拥塞控制是A与B之间的网络发生堵塞导致传输过慢或者丢包,来不及传输。防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不至于过载。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络性能有关的所有因素。

拥塞控制 写的不错

https://www.cnblogs.com/wuchanming/p/4422779.html

相关文章

  • TCP/IP(感觉这个能被问一百遍)

    如何保证TCP/IP的可靠性 1、校验和2、序列号3、确认应答4、超时重传5、连接管理6、流量控制7、拥塞控制 一...

  • tcp/ip的基本知识

    一.什么是tcp/ip tcp/ip是一类协议系统,它是用于网络通信的一套协议集合. 传统上来说tcp/ip被认为...

  • TCP/IP协议服务

    什么是TCP/IP TCP/IP 是传输控制协议/因特网协议 的缩略词,指的是一些主要协议中的两个协议,这个协议被...

  • C1 了解Web及网络基础

    KeyWords: 诞生,网络基础TCP/IP,TCP/IP协议族,TCP/IP的分层管理,TCP/IP通信传输流...

  • TCP协议

    TCP/IP协议分层详解TCP/IP协议详解通俗易懂网络协议(TCP/IP概述)什么是TCP/IP协议?

  • Android 面试题精选合集

    面试时,你被问到过 TCP/IP 协议吗? - 掘金前言: 精通 TCP/IP,熟练使用 Socket 进行网路编...

  • SNMP简单网络管理协议

    基于TCP/IP的网络管理包含:网络管理站和被管理的设备。被管理的设备都运行TCP/IP协议,同时被管理的设备运行...

  • TCP HTTPS专题

    TCP HTTPS专题 TCP协议 TCP/IP协议分层 TCP/IP 协议族里重要的一点就是分层。 TCP/IP...

  • 《图解HTTP》

    网络基础TCP/IPTCP/IP协议族说法一:TCP/IP是指TCP和IP两种协议说法二:TCP/IP是在IP协议...

  • TCP 和 UDP 的区别

    写在开头: TCP UDP 都属于 TCP/IP 协议簇 , TCP/IP 协议包括了TCP,UDP,IP,FTP...

网友评论

      本文标题:TCP/IP(感觉这个能被问一百遍)

      本文链接:https://www.haomeiwen.com/subject/nfzegftx.html