计算机网络面试必知知识点汇总—TCP与UDP

TCP 和UDP的区别

(1)TCP提供的是面向连接的(虚拟信道在关闭连接前一直存在,来自物理信道的信道复用技术);可靠的数据流传输(无差错,不丢失,不重复,且按序到达);传输单位为TCP报文段;注重数据安全性;相关的协议有:FTP文件传输协议21端口;Telnet远程登录端口23端口;SMTP邮件传送协议用于发送邮件25端口;POP3接受邮件在110端口;HTTP超文本传输协议;
(2)UDP提供的是非面向连接的(在传送完数据后虚拟信道就注销);不可靠的数据流传输(尽最大努力交付);传输单位为用户数据报;数据传输快,不需要连接等待少了很多操作;安全性一般;相关协议:DNS域名解析服务;SNMP网络管理协议;TFTP简单文件传输协议;
总结:
(1)TCP提供可靠的服务,通过TCP连接传送的数据,无差错、不丢失,不重复,按序到达;UDP尽最大努力交付,即不保证可靠交付。
(2)TCP面向字节流;UDP面向报文。
(3)TCP连接只能是点到点的;UDP支持一对一、一对多、多对一和多对多的交互通信。
(4)TCP首部开销20字节;UDP的首部开销小,只有8个字节。
(5)TCP的逻辑通信信道是全双工的可靠信道;UDP的逻辑通信信道是不可靠信道。
(6)TCP一般用于文件传输(FTP HTTP 对数据准确性要求高,速度可以相对慢),发送或接收邮件(POP IMAP SMTP 对数据准确性要求高,非紧急应用),远程登录(TELNET SSH 对数据准确性有一定要求,有连接的概念)等等;UDP一般用于即时通信(QQ聊天 对数据准确性和丢包要求比较低,但速度必须快),在线视频(RTSP 速度一定要快,保证视频连续,但是偶尔花了一个图像帧,人们还是能接受的),网络语音电话(VoIP 语音数据包一般比较小,需要高速发送,偶尔断音或串音也没有问题)等等。

TCP可靠的原因:

(1)序列号与确认号;
(2)流量控制(滑动窗口)滑动窗口是接受数据端使用的窗口大小,用来告知发送端接收端的缓存大小,以此可以控制发送端发送数据的大小,从而达到流量控制的目的。对于数据的发送端就是拥塞窗口了,拥塞窗口不代表缓存,拥塞窗口指某一源端数据流在一个RTT内可以最多发送的数据包数;
(3)拥塞窗口:指某一源端数据流在一个RTT内可以最多发送的数据包数,cwnd:发送端窗口( congestion window )。
(4)拥塞控制: 发送端主动控制cwnd,有慢启动(从cwnd初始为1开始启动,指数启动,网络超时RTO),拥塞避免(到达ssthresh后,为了避免拥塞开始尝试线性增长,每次加1),快重传+快恢复(收到相同的ack时,推断出失败数据包序号立即重新发送,然后直接从ssthresh/2线性增长,三个重复确认)。当出现网络拥塞,比如丢包时,将慢开始门限设为原先的一半,然后将cwnd设为1,执行慢开始算法
三个重复确认采用快重传的原因:考虑到如果网络出现拥塞的话就不会收到好几个重复的确认,所以发送方现在认为网络可能没有出现拥塞。所以此时不执行慢开始算法,而是将cwnd设置为ssthresh的大小,然后执行拥塞避免算法

TCP保证可靠的总结:
建立连接(标志位):通信前确认通信实体存在。
序号机制(序号、确认号):确保了数据是按序、完整到达。
数据校验(校验和):CRC校验全部数据。
超时重传(定时器):保证因链路故障未能到达数据能够被多次重发。
窗口机制(窗口):提供流量控制,避免过量发送。
拥塞控制:同上。

TCP传输过程对报文大小的要求:
应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,传递次数过多。虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP通过滑动窗口当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。如果应用程序一次只发送一个字节,TCP也可以等待积累有足够多的字节后再构成报文段发送出去。

TCP滑动窗口和拥塞窗口

TCP的发送窗口由滑动窗口和拥塞窗口决定。

滑动窗口包含滑动窗口大小、最早未确认序号和下一次发送序号。滑动窗口主要由接收端告知窗口大小,并将窗口中已经确认的数据序号剔除,窗口向前滑动。

拥塞窗口进行拥塞控制,主要有慢启动、拥塞避免、快速重传和快速恢复算法。

  1. 慢启动为了防止一开始传输速率过快导致中间路由器的存储耗尽降低吞吐量;拥塞避免目的是当拥塞发生时降低网络传输速率。慢启动门限为现在窗口的一半,拥塞窗口一开始设置为1,拥塞窗口会先以指数增长达到慢启动门限后再线性增长。
  2. 快速重传:在接收到相同的ACK后,推断出丢失报文段起始序号立即重传;快速恢复:如果发生快速重传,执行拥塞避免算法。(如果是三个重复ACK,快速恢复,窗口变为小于门限值,一般为门限值一半;如果ACK超时,执行拥塞控制,窗口变为1,更新门限值)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值