1 Star 0 Fork 38

hua-demo / java面试迷你版

forked from papi林 / java面试迷你版 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
网络问题.md 3.91 KB
一键复制 编辑 原始数据 按行查看 历史
papi林 提交于 2020-05-19 23:23 . count1count*

网络问题

FTP:21端口。

SSH端口:22端口。

telnet用的是哪个端口:23端口。

TCP/IP是属于哪一层:TCP传输层、IP网络层。

浏览器输入URL发生什么

  1. 查询本机或本浏览器或路由器的域名缓存,查出域名对应的IP和端口,如果没有则请求DNS服务器。
  2. 根据得到的IP和端口发起HTTP请求,达到指定的服务器。
  3. 服务器根据请求的内容, 做出处理,然后响应返回到浏览器。
  4. 浏览器根据返回的内容或HTML渲染显示页面。

网络分层:

  1. 应用层:通过应用进程间交互来完成特定网络应用。DNS服务、HTTP服务等等,交互的数据单元称为报文。

  2. 运输层:负责向两台主机进程之间的通信提供通用的数据传输服务。

    传输控制协议TCP--提供面向连接、可靠的数据传输服务。保证可靠传输如下:

    • 应用数据被分割成TCP认为最适合发送的数据块。
    • TCP给发送的每个包进行编号,接收方对数据包顺序排序,把有序数据传到应用层。
    • 校验和:TCP将保持它首部和数据的校验和。这是端到端的校验和,目的是检测数据在传输过程中的任何变化,有差错则丢弃这个报文段和不确认收到此报文段。
    • TCP的接收端会丢弃重复的数据。
    • 流量控制:TCP链接的每一方都有固定大小的缓冲空间,只接受能接纳的数据,过量则会提示发送方降低发送的速率,防止包丢失。
    • 拥塞控制:当网络拥塞时,减少数据的发送。
    • ARQ协议:每发完一个分组就停止发送,等待对方确认,收到确认后再发下一个分组。
    • 超时重传:启动一个定时器,等待目的端确认收到这个报文段,不能及时就重发。

    用户数据协议UDP--提供无连接、尽最大努力的数据传输服务。(不保证数据传输的可靠性)

  3. 网络层:两个计算机之间经过很多数据链路,也可能通过很多通信子网,就是选择合适的网间路由,确保数据及时发送。把运输层报文段或用户数据报封装成分组和包,使用IP协议,因此分组也叫IP数据报。

  4. 数据链路层:链路层,两台主机的数据传输,总是在一段一段的链路上传送的,将IP数据报组装成帧,其为了数据正确传输,包含了数据验证和纠错。

  5. 物理层:数据单位是比特,实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽具体传输介质和物理设备的差异。

三次握手:A-(SYN)-B,B-(SYN/ACK)-A,A-(ACK)-B。目的建立可靠的通信信道,确认双方发送接收正常。TCP用

四次挥手:A-(FIN)-B,B-(ACK)-A,B-(FIN)-A,A-(ACK)-B

HTTP长连接,短连接:http1.0短连接,每一个请求都建立一次链接。http1.1长连接保持连接性,请求头加上Connection:keep-alive,但是需要服务器也支持长连接。http1.1还增加了一些错误状态效应码,缓存处理更多,允许请求资源的某个部分。

URI:统一资源标志符,就像身份证号码。

URL:统一资源定位符,提供资源的路径,就像个人地址。

HTTP和HTTPS的区别 : 1.端口,http用80,https用443。2.http运行在tcp之上,传输内容是明文,客户端和服务器端无法验证对方的身份。https是运行在SSL/TLS之上的HTTP协议,SSL/TLS运行在TCP之上,所有的内容都经过加密(对称加密、非对称加密、证书),但是HTTPS消耗资源给HTTP耗费更多。

拆包和粘包:分块传输的时候,拆包是指发送内容大于一个缓存区大小,粘包是指发送内容小于一个缓存区的大小。解决办法是在头部标记数据长度、或者使用特殊字符标记内容是否结束。

Java
1
https://gitee.com/hua-demo/javaLearn.git
git@gitee.com:hua-demo/javaLearn.git
hua-demo
javaLearn
java面试迷你版
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891