面试之--计算机网络常见知识点

网络7层协议

第一层: 物理层

比特流。物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流。物理层特性:机械特性、电气特性、功能特性、过程特性。定时接口通信信道上的原始比特流传输。

网卡,光纤是物理层的。

数字传输系统。

asdl技术:对现有模拟电话用户线改造

第二层: 数据链路层

需要一些协议来控制这些数据。

点对点信道数据单元帧。物理寻址,同时将原始比特流转变为逻辑传输线路。将网络层交下来的数据构成帧发送到链路上。把接收到的帧中的数据取出上交网络层。

第三层:网络层

分组,数据报。控制子网的运行,如逻辑编址,分组传输

路由选择

路由器属于网络层,数据包,主要关注ip协议

第四层: 传输层

分段。海量文件传输等,为了保障准确性,切分段落,每个段落需要怎么传,传输层要考虑的。

接收上一层的数据,在必要的时候把数据分割

规定适当的发送数率

主要关注tcp udp协议

第五层:会话层

数据。用户级别的。要建立自动收发包,自动寻址的功能。建立管理应用之间的通信。不同机器上用户之间建立及管理会话。

第六层:表示层

数据。解决不同系统之间通信语法的问题。信息的语法语义以及它们的关联。如加密解密、转换翻译、解压缩

第七层:应用层

数据。http协议,规定发送方,接收方的消息头等

传输控制协议tcp简介

1.面向连接的、可靠地、基于字节流的传输层通信协议

2.将应用层的数据流分割成报文段并发送给目标节点的tcp层

3.数据包都有序号,对方收到则发送ack确认,未收到则重传

4.使用校验和来校验数据在传输过程中是否有误

报文格式共20字节:

源端口号(2字节)

目的端口号(2字节):

序号(4字节):

用来标识TCP发端向TCP收端发送的数据字节流

确认序号(4字节):

由于该报文为SYN报文,ACK标志为0,故没有确认序号(ACK标志为1时确认序号才有效)

一旦连接建立,该值将始终发送(同ACK标志)

首部长度(4位)

标志位(12位):

紧急指针URG(2字节):当Urgent标志置1时,紧急指针才有效,0忽略

ACK: 一旦一个连接建立起来,该标志总被置为1(除了SYN标志为1的报文,其它所有报文的该标志总为1)

PUSH标志:(接收方应尽快将报文段提交至应用层)

RST:重置连接标志,重置由于主机崩溃或者错误连接

SYN:同步序号,用于建立连接过程,SYN=1 ACK=0 连接请求中没有使用稍待的确认域,SYN=1 ACK=1 确认

FIN:传输数据结束标志,用于释放连接,1关闭数据流

窗口大小(2字节):TCP流量控制通过连接的每一端声明窗口大小进行控制(接收缓冲区大小)

检验和(2字节):检验和覆盖整个TCP报文段;强制字段,由发送端计算存储,由接收端进行验证

紧急指针(2字节):当Urgent标志置1时,紧急指针才有效

tcp的三次握手

全双工通信

握手 是为了建立连接,tcp三次握手的流程图如下:

例子

首先a(客户端),b(服务端 )都处于关闭状态,先创建传输进程控制块tcp

seq属于起始值

第一次握手:建立连接,客户端发送SYN包

a 发送 SYN=1,seq=x 进入SYN_SEND状态,等待服务器确认

第二次握手:服务器收到SYN包,必须确认客户的SYN。

b 回传 SYN=1,ACK=1,seq=y, 确认应答序号为x+1 处于SYN-RCVD状态

第三次握手:客户端收到服务器的SYN+ACK包,并向服务器发送确认包,此包发送完毕客户端和服务器进入ESTABLISHED状态。

a 发送 SYN=1,ACK=1,seq=x+1 ack=y+1

tcp四次挥手

挥手是为了终止连接,

第一次 Client发送一个FIN,用来关闭Client到Server的数据传送

a->b FIN=1,seq=u a:FIN-WAIT-1

第二次 Server收到Fin后发送一个ACK给client,确认序号为收到序号+1,Server进入CLOSE_WAIT状态。

b->a ACK=1,seq=v,ack=u+1 b:CLOSE-WAIT a:FIN-WAIT-2

第三次 Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。

b->a FIN=1,ACK=1,seq=w,ack=u+1 b:LAST-ACK a:FIN-WAIT-2

第四次 Client 收到FIN后,client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1.Server进入CLOSED状态

a->b ACK=1,seq=u+1,ack=w+1 a:等待2msl TIME-WAIT b:CLOSED

TCP的滑动窗口

TCP中窗口大小是指tcp协议一次传输多少个数据

RTT:发送一个数据包到收到对应的ACK,所花费的时间

RTO:重传时间间隔

TCP使用滑动窗口做流量控制和乱序重排

保证Tcp的可靠性

保证tcp流控特性

udp:

面向非连接

不维护连接状态,支持同时向多个客户端传输相同的消息

数据包报头只有8个字节,额外开销较小

吞吐量只受限于数据生成速率,传输速率以及机器性能

尽最大努力交付,不保证可靠交付,不需要维持复杂的链接状态表

面向报文,不对应用程序提交报文信息进行拆分或者合并

http

超文本传输协议

支持客户/服务器模式

简单快速

灵活

无连接

无状态

请求响应步骤

客户端连接到web服务器

发送http请求

服务器接受请求并返回http响应

释放连接tcp连接

客户端浏览器解析html内容

在浏览器地址栏键入URL,按下回车后经历的流程??

dns解析

浏览器,系统,路由器,ips服务器,根服务器缓存,顶级域名服务器缓存

tcp连接

发送http请求

服务器处理请求并返回http报文

浏览器解析渲染页面

连接结束(释放tcp连接,4次挥手)

http状态码

1xx 表示请求已接收,继续处理

2xx 成功--表示请求已被成功接收、理解、接受

3xx 重定向---要完成 请求必须进行更进一步的操作

4xx 客户端错误,请求有语法错误或请求无法实现

5xx 服务端错误--服务器未能实现合法的请求

401 请求未经授权,这个状态代码必须和www-authenticate报头域一起使用

403 Forbidden 服务器收到请求,但是拒绝提供服务

Cookie和Session的区别

Cookie

客户端解决方案

Session

解析客户端请求并操作session id 按需保存状态

Session相对于Cookie更安全

若考虑减轻服务器负担,应当使用Cookie

Http和Https的区别

http tcp/ip协议

https 多了一个 ssl/tls tcp/ip协议

ssl:

为网络通信提供安全及数据完整性的一种安全协议

是操作系统对外的API,SSL3.0后更名为TLS

采用身份验证和数据加密保证网络通信的安全和数据的完整性

https数据传输过程

浏览器将支持的加密算法信息发送给服务器

服务器选择一套浏览器支持的加密算法,以证书形式回发浏览器

浏览器验证证书合法性,并结合证书公钥加密信息发送给服务器

服务器使用私钥解密信息,验证哈希,加密响应信息回发浏览器

浏览器解密响应信息,并对信息验真,之后进行加密交互数据

区别:

https需要到ca申请证书,http不需要

https密文传输,http明文传输

连接方式不同,https默认443端口,http 80端口

https=http+加密+认证+完整性保护,较http安全

Socket简介

socket是对tcp/ip协议的抽象,是对操作系统对外开放的接口

流程:

服务器根据地址类型(ipv4、ipv6)、socket类型、协议创建socket

 服务器为socket绑定对应的IP地址和端口号

 服务器监听端口号请求,接收用户发来的连接请求,此时服务器没有打开socket

 用户创建socket

 用户打开socket,并通过IP地址+端口号试图connect服务器的socket

 服务器接收到了用户发来的socket连接请求,被动打开socket,开始接收客户端请求,直到用户返回连接信息。这时候服务器 的socket进入堵塞状态,所谓堵塞,即accept();方法一直接收到客户端返回连接信息后才返回,然后开始接收下一个用户 端请求

 客户端连接成功,开始向服务器输入状态信息

 服务器accept();方法返回,连接成功

 客户端写入信息

 服务器读取信息

 客户端关闭

 服务端关闭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瞬间的醒悟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值