计算机网络面试题目

https://blog.csdn.net/justloveyou_/article/details/78303617

TCP和UDP的区别

TCP和UDP协议
首先讲一下TCP协议和UDP协议区别:(面试常客呀)
没有拥塞控制和流量控制,udp
在这里插入图片描述
UDP 在传送数据之前不需要先建立连接,UDP传输得是数据报文段,需要调动的资源少,速度快,首部只需要八个字节远地主机在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 确是一种最有效的工作方式(一般用于即时通信),比如: QQ 语音、 QQ 视频 、直播等等
UDP发送到是包,因为没有连接,所以只能发一发包,打包成一份一份去发送,TCP是有连接的,就像有个管道,所以可以发送流。
所谓的ping一下就是发送一个UDP的报文段看看能不能行。
TCP 提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。 TCP 不提供广播或多播服务。由于 TCP 要提供可靠的,面向连接的运输服务(TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源),这一难以避免增加了许多开销,如确认,流量控制,计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多处理机资源。TCP的首部一般需要20个以上字节,对数据进行控制TCP 一般用于文件传输、发送和接收邮件、远程登录等场景。
5.每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。
6.TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道。

TUP和UDP的报文

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
加上选项位置,最多可以到60位。
(1)16位源端口号和16位目的端口号:每个TCP段都包含源端和目的端的端口号,用于寻找发端和收端应用进程。这两个值加上IP首部中的源端IP地址和目的端IP地址唯一确定一个TCP连接。

(2)32位序号:用来标示从TCP发端向TCP收端发送的数据字节流,它表示在这个报文段中的第一个数据字节,TCP用序号对每个字节进行计数。序号是32位无符号数,序号到达2^32-1后又从0开始。当建立一个新的连接时,SYN标示变为1,序号字段包含由这个主机选择的该连接的初始序号ISN(Initial Sequence Number)。该主机要发送数据的第一个字节序号为这个ISN加1,因为SYN标志消耗了一个序号。TCP为应用层提供全双工服务,这意味数据能在两个方向上独立地进行传输,因此,连接的每一端必须保持每个方向上的传输数据序号。

(3)32位确认序号:既然每个传输的字节都被计数,确认序号包含发送确认的一端所期望收到的下一个序号。因此,确认序号应当是上次已成功收到数据字节序号加1。只有ACK=1时确认序号字段才有效。TCP首部中的确认序号标示发方已成功收到字节,但还不包括确认序号所指的字节。当前还无法对数据流中选定的部分进行确认。例如,如果11024字节已经成功收到,下一报文段中包含序号从20493072的字节,收端并不能确认这个新的报文段。它所能做的就是发回一个确认序号为1025的ACK,它也无法对一个报文段进行否认。例如,如果收到包含1025~2048字节的报文段,但它的校验和错误,TCP接收端所能做的就是发回一个确认序号为1025的ACK。

(4)4位首部长度:首部长度给出首部中32bit(4字节)的数目。需要这个值是因为选项字段长度是可变的,这个字段占4位,因此,TCP最多有(1111)=15*4=60字节的首部,然而,没有选项字段,正常的长度是20字节。

数据偏移:占4个比特,并以4字节为单位。用来指出TCP报文段的数据载荷的部分距离TCP首部有多远。这个字段实际上就是TCP报文段首部的长度。首部固定的字节为20,因此数据偏移字段的最小值为(0101)2.
首部最大的字节为60字节,因此数据偏移字段的最大值为(1111)

在这里插入图片描述
数据偏移位,最多表示为15,说明最多有15行
每行32位,4字节。
最少也要有5行,因此最小值是0101.
数据偏移位,实际上指的就是,从报文开始,到数据结束位置的行数,每行32位。

(5)保留(6位):

(6)URG:紧急指针有效

(7)ACK:发送ACK无需任何代价,因为32位的确认序号字段和ACK标志一样,总是TCP首部的一部分。因此,我们看到一旦一个连接建立起来,这个字段总是被设置,ACK标志也总是被设置为1。

(8)PSH:接收方应该尽快将这个报文段交给应用层

(9)RST:重建连接

(10)SYN:同步序号用来发起一个连接

(11)FIN:发端完成发送任务

(12)16位窗口大小:TCP的流量控制由连接的每一端通过声明的窗口大小来提供。窗口大小为字节数,起始于确认序号字段指明的值,这个值是接受端正期望接收的字节。窗口大小是一个16位字段,因此窗口大小最大为65535字节。

(13)16位校验和:校验和覆盖整个TCP报文段:TCP首部和TCP数据,这个一个强制性的字段,一定是由发端计算和存储,并由收端进行校验。

(14)16位紧急指针:只有URG=1时紧急指针才有效,紧急指针是一个正的偏移量,和序号字段中的值相加标示紧急数据最后一个字节的序号。TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。

(15)选项:最常见的可选字段是最大报文长度MSS(Maximum Segment Size),每个连接方通常都在通信的第一个报文段中指明这个选项。

(16)数据:TCP实际报文。TCP报文段中的数据部分是可选的。在一个连接建立和一个连接终止时,双方交换的报文段仅有TCP首部,如果一方没有数据要发送,也使用没有任何数据的首部来确认收到的数据,在处理超时的许多情况下,也会发送不带任何数据报文段。

UDP的报文段
在这里插入图片描述

TCP常用的对应协议

(1) FTP:定义了文件传输协议,使用21端口。

(2) Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。

(3) SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。

(4) POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。

(5)HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。

UDP对应的协议:

(1) DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。

(2) SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。

(3) TFTP(Trival File Transfer Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。

DHCP:动态主机配置协议DHCP,服务器端的端口号是67
DHCP:客户机端的端口号是68
POP3:POP3仅仅是接收协议,POP3客户端使用SMTP向服务器发送邮件。POP3所用的端口号是110
SMTP:端口号是25

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值