网络协议和网络编程

TCP建立连接的过程。

TCP(传输控制协议)和UDP(用户数据包协议) 都是运输层的协议,基于网络层的IP协议
TCP连接三次握手,具体是客户端发送连接请求,服务器接收并确认返回应答信息,客户端之后第三次发送请求确认,从而建立连接,开始树传输,原因是避免建立无用、错误的TCP长连接
为什么要是三次握手,不多不少,三次握手,是为了保证每一次连接失败都不会造成资源的浪费

第一次客户端请求连接SYN = 1 表示建立新连接 第二次服务端发送SYN = 1 ACK = 1 确认收到,服务端申请资源准备新连接的建立
第三次客户端发送SYN = 1 ACK = 1 确认收到,建立连接

如果第一次请求发送失败,重复发送,如果一段时间内重复申请了多次连接,收到多个ACK,只会回应最后一个SYN + SCK的连接
如果第二次服务端确认发送失败,客户端不会申请资源,服务端会申请资源,但是又与不会受到第三次的确认,资源也会释放
若果第三次客户端确认发送失败,服务端未收到确认,服务端和客户端都申请了资源,服务端的资源由于没有收到确认,会释放,后续客户端的数据内容发送到服务器端,会回复rest,重置连接

这里写图片描述

TCP断开连接的过程。

第一次有客户端发出要关闭连接的请求;第二次,服务器端返回请求确认;第三次,服务器关闭与客户端的连接,发送连接关闭的信息;第四次,客户端发送信息成功接受的确认
之所以这么麻烦,因为TCP是全双工的,在连接关闭时,先关读,后关写。由客户端发送关闭请求,所以是,客户端数据发送完毕,发送要求关闭连接的消息,之后服务器发送信息确认,然后服务接受其对客户端的数据传输操作,发送连接关闭消息,之后客户端发送确认,至此TCP通道关闭

这里写图片描述

浏览器发生302跳转背后的逻辑?

这里写图片描述
301和302表示重定向:

301表示这个网页已经永久的由服务器的A路径下移动到路径B下,

而302表示临时移动到B路径下,对应到Url地址也即http://baidu.com/file/A/1.htmlhttp://baidu.com/file/B/1.html,当浏览器访问前面一个地址的时候,这个时候服务器会告知浏览器,请到B路径下获取这个文件,随后浏览器重新发起网络请求,请求B路径下的页面,经过渲染,呈现给用户,例如淘宝的例子,请求taobao.com,收到302,从而浏览器再次请求www.taobao.com获得页面内容。

HTTP协议的交互流程。HTTP和HTTPS的差异,SSL的交互流程?

HTTPS是基于SSL的HTTP协议
1.HTTPS协议需要申请证书。
2.HTTP是明文传输;HTTPS使用的是具有安全性的SSL加密传输协议
3.HTTP端口是80;HTTPS端口号是443
4.HTTP连接简单无状态;HTTPS由SSL+HTTP协议构件的可进行加密传输、身份验证的网络协议。
参考:https://blog.csdn.net/hjyzjustudy/article/details/50933205

Rest和Http什么关系? 大家都说Rest很轻量,你对Rest风格如何理解?

Rest是一种web服务实现方式,Http接口按照Rest风格设计就是restfull http
rest风格,一种更为简洁,良好的设计风格,可以遵守,也可不必

TCP的滑动窗口协议有什么用?讲讲原理。

滑动窗口协议和固定窗口相对应,滑动窗口的大小会根据链路的状态自动调整,和累计ACK相结合,加快消息传输速率,还有拥塞控制协议,减半窗口大小

HTTP协议都有哪些方法?

HTTP协议是一个基于TCP/IP通信协议来传递数据,(超文本传输协议),是一个属于应用层的面向对象的协议
定义一些与服务器的交互方法:GET、POST、PUT、DELETE、HEAD、CONNECT等

交换机和路由器的区别?

都是存储转发分组交换机
交换机属于链路层,通过MAC地址寻址,具有即插即用的特性
路由器属于网络层,依靠IP寻址,需要人为配置IP,会划分子网,对广播有一定的控制

什么是VLAN,有什么作用?

虚拟局域网,将一个局域网(LAN)从逻辑上进行划分

什么是VXLAN,有什么作用?

虚拟可拓展局域网,vlan的升级版,两者的区别:https://zhidao.baidu.com/question/436355219165681684.html

http协议(报文结构,断点续传,多线程下载,什么是长连接)

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:
请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。
一般情况下,服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息。
HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

tcp协议(建连过程,慢启动,滑动窗口,七层模型)

物理层、链路层、网络层、传输层、应用层
传输层 -> 会话层 -> 表示层 -> 应用层
在五层模型中,会话层、表示层都是合并到应用层中
应用层协议:HTTP、TFTP、FTP、SMTP、DHCP、DNS

webservice协议(wsdl/soap格式,与rest协议的区别)

Web Service使用的是 SOAP (Simple Object Access Protocol)协议
SOAP协议= HTTP协议+ XML数据格式
SOAP协议是基于HTTP协议的,两者的关系就好比高速公路是基于普通公路改造的,在一条公路上加上隔离栏后就成了高速公路.
商店的服务员只要收到了钱就给客户提供货物,商店服务员不用关心客户是什么性质的人,客户也不用关心商店服务员是什么性质的人.同样,WebService客户端只要能使用HTTP协议把遵循某种格式的XML请求数据发送给WebService服务器,WebService服务器再通过HTTP协议返回遵循某种格式的XML结果数据就可以了,WebService客户端与服务器端不用关心对方使用的是什么编程语言.

NIO的好处,Netty线程模型,什么是零拷贝

NIO是相对OIO而言,现在更倾向与叫Not - Blocking IO
好处:
使得服务器运行的连接数大幅增加,不再局限与JVM的最大线程数
充分利用系统资源,平衡计算机处理的速度与数据输入的速度
Netty的线程模型
Thread - select - 多个channel
零拷贝是指避免数据在用户态中冗余拷贝,提高数据的传输速率

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值