2024年最全Android学习-网络通信那点儿事儿(1),分享一次失败的经历 面试

最后

希望本文对你有所启发,有任何面试上的建议也欢迎留言分享给大家。

好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。

好了~如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

TCP和UDP区别:

四,HTTP:

4.1,工作流程:

4.2,HTTP报文

4.3,响应报文:

五,HTTPS

5.1加密

5.2,SSL和TLS

5.3,什么是https:

5.4,HTTPS握手的过程

5.5,HTTP的安全缺点:

5.6,HTTP和HTTPS的区别:


一,计算机网络体系结构:就是计算机网络的各层和一些协议的集合。


其中包括7层OSI体系结构:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层;

4层TCP/IP体系结构:应用层,传输层,网络层,数据链路层;

五层体系结构:融合了OSI与TCP/IP体系结构,可以更好的学习计算机网络原理,现在只介绍五层体系结构(应用层=>运输层=>网络层=>链路层=>物理层)

基于TCP/IP协议,按层次可以划分为应用层,传输层,网络层,数据链路层

应用层:决定了向用户提供应用服务时候的通信活动。如文件传输,电子邮件等,TCP/IP协议如HTTP,FTP,DNS等协议。

第一步:发送URL请求,URL由以下元素组成

(1)传送协议:http: 或者  https:  等

(2)层级URL标记符号://  固定不变

(3)访问资源需要的凭证信息(可省略)

(4)服务器地址。通常为域名,也可以为IP地址,实际通信是通过IP地址访问,DNS服务器会解析域名为IP地址

(5)端口号,默认:80(可省略)

(6)路径,以单斜杠“/ ”来区分目录名称

(7)查询。以“?”为起点,get模式每个参数以“&”隔开,再以“=”赋值。

(8)片段。以“#”字符为起点,使用片段标识符

第二步:DNS对请求的URL域名进行解析

DNS(Domain Name System)服务和Http协议都是位于应用层的协议,它提供域名到IP地址之间的解析服务。可通过域名查找IP地址,也可逆向查找。

第三步:生成HTTP请求报文

HTTP协议(超文本传输协议)决定从客户端到服务端等一系列通信内容和方式。

传输层:对应用层提供网络连接时的两台计算机的数据传输,机提供端对端的接口,有两个协议:TCP和UDP

第四步:TCP连接建立数据

TCP协议(传输控制协议)位于传输层

首先是三次握手建立连接

网络层:处理网络中流动的数据包,规定通过怎样的传输路径将数据包传递到对方计算机,即为数据包选择路由,如IP协议。

第五步:数据传输到IP地址

IP(Internet Protocol)网际协议的作用在于实现数据包传递到对方计算机的IP地址,IP间的通信依赖于MAC地址(网卡所属地址),需要再通过ARP协议根据通信方的IP地址反查出对应的MAC地址。

第六步:服务器接收并解析请求报文回传响应报文

数据链路层和物理层:处理网络连接中的硬件部分,以二进制数据形式在物理媒体上传输数据,如FDDI协议。

二,TCP协议:传输控制协议


属于传输层通信协议,基于TCP的应用层协议有:万维网HTTP,电子邮件SMTP、POP3,文件传输FTP,远程终端接入Telnet。

特点:面向连接,面向字节流,全双工通信,可靠。优点是数据传输可靠,缺点是效率慢,因需建立连接,发送确认包等。


TCP报文段格式

报文段=首部+数据2部分,是TCP传送的数据单元

首部:前20个字符固定,后面有4n个字节是根据需而增加的选项,所以首部最小长度=20字节

TCP连接三次握手:

(目的:防止服务器因接收了早已失效的连接请求报文,从而一直等待客户端请求,最终形成死锁,浪费)

握手前:客户端处于CLOSE状态,客户端打开连接后,服务端有CLOSE状态转为LISTEN状态,等待握手。

第一次:客户端向服务器发送一个连接请求的报文段:SYN=1,seq=x(随机选择一个起始序号)。这时候不携带数据,因为SYN被设置为1的报文段不能携带数据,但需要消耗一个序号。此时客户端进入同步已发送状态(SYN_SEND)。

第二次:服务端收到请求连接的报文,若同意连接发送报文段:SYN=1,ACK=1,seq=y(随机选择一个起始序号),ack=x+1(确认号字段),仍然不携带数据。此时服务器进入同步已接收状态(SYN_RCVD)。

第三次:客户端发出连接确认报文段:ACK=1,seq=x+1,ack=y+1,可携带数据(因为SYN为1,若不携带数据则不消耗序号),此时客户端服务端都进入已创建状态(ESTABLISHED),可开始发送数据。

成功进行三次握手后就建立起一条TCP连接,即可传送应用层数据,三次握手期间,任何一次未收到对面的回复,则都会重发。

四次挥手:确保双方都释放连接

挥手前:都处于ESTABLISHED状态。

第一次:客户端向服务端发送连接释放报文段:FIN=1,seq=u(u为前面的数据最后一个字节的序号+1),可携带数据,然后客户端进入终止等待1状态(FIN_WAIT_1),表示没有数据发给服务端了。

第二次:服务器向客户端发回连接释放确认的报文段:ACK=1,seq=v,ack=u+1,此时服务器进入关闭等待状态(CLOSE_WAIT),客户端进入终止等待2状态,等待服务器发出释放连接请求。至此,客户端到服务端的TCP连接已断开,服务端向客户端的还未断开。

第三次:服务器无需向客户端发数据了,则发出释放连接的报文段:FIN=1,ACK=1,seq=w,ack=u+1,可携带数据,此时服务器进入最后确认状态(LAST_ACK)

第四次:用户端向服务器发回连接释放确认的报文段:ACK=1,seq=u+1,ack=w+1,可携带数据,客户端进入时间等待状态(TIME_WAIT),客户端进入CLOSE状态。此时TCP连接还未释放,需经过时间等待计时器设置的时间2MSL后,客户端才能进入连接关闭状态,也就是服务器关闭的要比客户端早一些。

无差错传输:无论对方以多快的速度发送数据,接收方都能来得及处理收到的数据。

发动窗口:任意时刻,发送方维持的一组连续的,允许发送帧的帧序号,主要是对发送方进行流量控制。

接收窗口:任意时刻,接收方维持的一组连续的,允许接收帧的帧序号,主要控制可接受(不可接收)哪些数据帧,接收方只有当收到的数据帧的序号落入接收窗口内才允许将该数据帧收下,否则一律丢弃。

三,UDP协议


用户数据报协议,属于传输层通信协议,基于UDP的应用层协议有TFTP(文件传输),SNMP(网络管理),DNS(域名转换),NFS(远程文件服务器)。

特点是无连接的(不需建立UDP连接),不可靠的(不管对方是否收到),面向报文(数据以数据报文,也就是包的形式传输),无拥塞控制(因为不管是否到达接收方,所以不需拥塞控制)。优点是速度快,缺点是消息易丢失。

报文段格式:

源端口:需对方回信时使用,不需时则设为全0;

 

目的端口:重点交付报文时需使用到;

 

长度:UDP用户数据报的长度,最小值是8(仅有首部);

 

校验和:检测UDP用户数据报在传输中是否有错,若有错则丢弃。

 

伪首部:计算校验和,不向下传送也不向上递交,实际上不属于UDP首部。

TCP和UDP区别:

TCP:面向连接,可靠,传输形式为字节流,效率慢,所需资源多,要求数据可靠时使用,首部字节为20-60;

UDP:无连接,不可靠,传输形式为数据报文段,效率高,所需资源少,要求通信速度高时使用,首部字节为8.

四,HTTP:


4.1,工作流程:

客户端                                 服务端

最后

在这里小编整理了一份Android大厂常见面试题,和一些Android架构视频解析,都已整理成文档,全部都已打包好了,希望能够对大家有所帮助,在面试中能顺利通过。

image

image

喜欢本文的话,不妨顺手给我点个小赞、评论区留言或者转发支持一下呗

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

[外链图片转存中…(img-z2shXJ5f-1715850870950)]

[外链图片转存中…(img-JpIjxoXx-1715850870951)]

喜欢本文的话,不妨顺手给我点个小赞、评论区留言或者转发支持一下呗

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值