1、TCP和UDP区别
1)TCP是面向连接的协议,UDP是无连接的协议。
2)TCP提供可靠地交付,UDP不可靠
3)TCP协议会为你排好序,UDP不提供任何有序性保证。
4)TCP速度慢,UDP速度快
5)TCP是重量级协议,UDP是轻量级协议
6)TCP有流量控制和拥塞控制。
7)TCP面向字节流,UDP面向报文
8)TCP只能单播,不能发送广播和组播,UDP可以
2、TCP如何实现流量控制和拥塞控制,怎么做错误处理?
利用滑动窗口机制实现流量控制,利用TCP中窗口大小字段。
拥塞控制:慢开始,拥塞避免,快重传,快恢复
Nagle避免存在太多小包,尽可能发送大包。
TCP黏包:本来发送多个TCP报文,但是只收到一个,多个报文合成一个。(原因:Nagle算法;接收端接受不及时;)
解决办法:1、关闭nagle算法2、接收端尽可能从缓冲区读数据。3、增加一个表示数据的开头和结尾的字符。
3、物理层:RJ45、CLOCK、IEEE802.3
数据链路层:PPP、FR、HDLC、VLAN、MAC
网络层:IP、ICMP、RARP、OSPF、IPX、RIP、IGMP
传输层:TCP、UDP、SPX
会话层:RPC、SQL、NETBIOS、NFS
表示层:JPEG、MPEG、ASCII、MIDI
应用层:RIP、BGP、FTP、DNS、Telent、SMTP、HTTP、WWW、NFS
4、TCP头部:1)源端口和目的端口字段。2)序号字段3)确认号字段。4)数据偏移。5)保留字段。6)紧急位。7)确认位。8)推送位。9)复位位。10)同步位。11)终止位。12)窗口字段。13)检验和。14)紧急指针字段。15)选项字段16)填充字段。
5、HTTP请求报文主要由请求行、请求头、空行、请求正文组成。
6、HTTP响应报文主要由状态行、响应头、空行、响应正文组成。
7、Http1.1和Http1.0的区别
1)Http1.1默认使用持久连接,只要客户端服务端任意一端没有明确提出端来TCP连接,就一直保持连接,在同一个TCP连接下,可以发送多次HTTP请求,默认用流水线方式发送请求。
2)Http1.0可以指定实体长度的唯一机制是通过Content——Length字段
Http1.1引入了被称为分块的传输方法。将消息实体分为任意大小的组块,并单独发给他们。
3)Http1.1加入了新的状态码100Continue,用于客户端在发送POST数据给服务器之前,征询服务器情况,看服务器是否处理POST数据。(通常是处理冗长请求的情况下)
4)Http1.1在Request消息头里多了一个Host域,而1.0没有这个域,1.0默认每台服务器绑定一个唯一的IP地址。
8、http请求中get和post区别
1)GET一般用于获取或者查询资源信息,是幂等的,POST一般是用来更新信息,既不是安全也不是幂等
2)GET方法时,客户端要把发送的数据添加到URL后面,POST是需要把传递的数据放到HTTP请求报文的消息体中。
9、HTTP为什么是无状态的?会话跟踪技术有哪些?
对事务处理没有记忆能力,不能保存每次客户端提交的信息,有点事不需要分配内存来记忆,缺点是必须重新上传
会话跟踪技术:COOKIE、Session、URL重写、作为隐藏域嵌入HTML表单中
10、Http的短连接和长连接的原理
在 HTTP/1.0 中,默认使用的是短连接。也就是说,浏览器和服务器每进行一次 HTTP
操作, 就建立一次连接, 但任务结束就中断连接。 如果客户端访问的某个 HTML 或其他类
型的 Web 页中包含有其他的 Web 资源, 如 JavaScript 文件、 图像文件、 CSS 文件等
当浏览器每遇到这样一个 Web 资源,就会建立一个 HTTP 会话。HTTP1.0 需要在 request
中增加”Connection: keep-alive“ header 才能够支持长连接。
1)使用明文不加密,内容可能被窃取。
2)不验证同新方身份,可能遭到伪装
3)无法验证报文完整性,可能被篡改
12、Https作用
内容加密,身份加密,数据完整性
13、HTTP和HTTPS的区别
1)https更安全
HTTPS是有SSL+HTTP协议构建可进行加密传输、身份认证的网络协议,要比http安全。
2)HTTPS需要申请证书
3)端口不同,https使用443端口,http使用80端口
4)所在层次不同
HTTP协议在TCP上,HTTPS在SSL/TLS之上得HTTP协议。14、Cookie和Session的原理
session可以放在文件、内存或数据库都可以,是以键值对的形式存储
Session ID保存方法:1)使用Cookie来保存。
2)URL重写。
3)在页面表单里面增加隐藏域。
cookie种类:1)以文件方式在硬盘上的永久性cookie。
2)停留在浏览器所占内存中临时性的cookie
Cookie中的maxAge决定者Cookie的有效期,单位为秒。
Cookie包括了:名字、值、过期时间、域和路径
Cookie被禁用之后:1)URL重写。2)页面表单里面增加隐藏域。
Cookie和Session的区别:1)cookie数据存在客户端,用来记录用户信息,session数据存在服务器。
2)Cookie对客户端可见。Session不可见。
3)Cookie不占用服务器资源
15、session和cache区别
session是单用户会话状态,cache是服务器端缓存。
16、如果有几千个session,就把它放到redis或memcache缓存中。
17路由器和交换机区别?
1)交换机工作在数据链路层,路由器工作在网络层。
2)交换机转发数据帧,路由器转发IP分组。
3)交换机隔离冲突域,不隔离广播域,路由器隔离冲突域,隔离广播域。
18、HTTP断电续传
在请求报文头中加入Range段。
19、TCP如何保证按序接收
1)TCP具有缓冲区
2)TCP报文具有序列号