计算机网络相关问题
①TCP三次握手和四次挥手
三次握手(创建)
1)客户端–发送带有SYN标志的数据包–一次握手–服务端
2)服务端–发送带有SYN/ACK标志的数据包–二次握手–客户端
3)客户端–发送带有带有ACK标志的数据包–三次握手–服务端
第二次握手中,服务端为何要传回SYN(发起一个新链接)?
接收端传回发送端所发送的SYN是为了告诉发送端,我接收到的信息确实就是你所发送的信号了。
双方通信无误必须是两者互相发送信息都无误。传了SYN,证明发送方到接收方的通道没有问题,但是接收方到发送方的通道还需要ACK信号来进行验证。
四次挥手(断开)
1)客户端-发送一个FIN,用来关闭客户端到服务器的数据传送
2)服务器-收到这个FIN,发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号
3)服务器-关闭与客户端的连接,发送一个FIN给客户端
4)客户端-发回ACK报文确认,并将确认序号设置为收到序号加1
②在浏览器中输入url地址->>显示主页的过程(完整描述)
域名解析 –> 发起TCP的3次握手 –> 建立TCP连接后发起http请求 –> 服务器响应http请求,浏览器得到html代码 –> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) –> 浏览器对页面进行渲染呈现给用户
③HTTP和HTTPS的区别
④TCP、UDP协议的区别
UDP:
UDP在传送数据之前不需要先建立连接,远地主机在收到UDP报文后,不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下UDP确是一种最有效的工作方式(一般用于即时通信),比如: QQ语音 QQ视频 、直播等等
1)无连接
2)尽力交付,不保证可靠
3)面向报文
4)没有拥塞控制(网络出现拥塞不会使源主机的发送速率降低,对实时应用很有用)
5)支持一对一,一对多,多对多交互通信
6)UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。
TCP:
TCP提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP不提供广播或多播服务。由于TCP要提供可靠的,面向连接的运输服务(TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接,四次挥手,用来节约系统资源),这一难以避免增加了许多开销,如确认,流量控制,计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多处理机资源。TCP一般用于文件传输、发送和接收邮件、远程登录等场景。
1)面向连接(就好像打电话一样,通话前需要先拨号建立连接,通话结束后要挂机释放连接)
2)TCP连接只能是点对点的(一对一)
3)可靠(通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达)
4)TCP提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据
5)面向字节流。TCP中的“流”(stream)指的是流入进程或从进程流出的字节序列。“面向字节流”的含义是:虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。
⑤常见的状态码
1XX informational(信息性状态码) 请求正在处理
2XX Success(成功状态码) 请求正常处理完毕
3XX Redirection(重定向状态码) 需要进行附加操作才能完成请求
4XX Client Error(客户端错误状态码) 服务无法处理请求
5XX Server Error(服务端错误状态码) 服务端处理请求出错