计算机网络笔记

面试

什么是字节多路通道、数组选择通道和数组多路通道?

各类通道的定义如下:(1)字节多路通道含有多个子通道。每个子通道连接一台低速设备,以轮流方式共享主通道。一子通道交换完一个字节后就将主通道让给下一个子通道。(2)数组选择通道可连接多台告诉外设,具有较高的传输速度,它有一个分配型子通道,一段时间内只能执行一道通道程序,使一台设备独占通道以进行数据交换,直到交换完后才可让给其他的设备。(3)数组多路通道含有多个非分配型子通道。每个子通道连接一台高速外设,以轮流方式共享主通道。一子通道交换完若干字节后就将主通道让给下一个子通道。

dns

http的keep-alive和tcp的keep-alive的区别

tcp如何保证可靠传输

Https

以前,直接是明文传输 第一个方案,采用对称加密,服务端告诉客户端密钥,通过这个密钥对消息加密,发送给客户端,客户端用同一个密钥解密。 第二个方案,为了防止服务端告诉客户端密钥的消息被黑客截取,先采用非对称加密对密钥传输过程进行处理,流程如下:

TCP/IP基础

首先,我们需要知道TCP在网络OSI的七层模型中的第四层——Transport层,IP在第三层——Network层,ARP在第二层——Data Link层,在第二层上的数据,我们叫Frame,在第三层上的数据叫Packet,第四层的数据叫Segment。

三次握手,四次挥手

IPV4的几类地址:

A类的范围: 0000 0000.0000 0000.0000 0000.0000 0000 0111 1111.1111 1111.1111 1111.1111 1111 =0.0.0.0127.255.255.255; B类的范围:10000000.000000000.00000000.0000000010111111.11111111.11111111.11111111 =128.0.0.0191.255.255.255 C类的范围:11000000.000000000.00000000.0000000011011111.11111111.11111111.11111111 =192.0.0.0223.255.255.255 D类的范围:11100000.000000000.00000000.0000000011101111.11111111.11111111.11111111 =224.0.0.0239.255.255.255 E类的范围:11110000.000000000.00000000.0000000011111111.11111111.11111111.11111111 =240.0.0.0255.255.255.255

底层

FDMA是采用调频的多址技术。业务信道在不同的频段分配给不同的用户。如TACS系统、AMPS系统等。 TDMA是采用时分的多址技术。业务信道在不同的时间分配给不同的用户。如GSM、DAMPS等。 CDMA(码分多址)是采用扩频的码分多址技术。所有用户在同一时间、同一频段上,根据不同的编码获得业务信道。 基本的拓扑结构有:网状网、星形网、环形网、总线型网、复合型网等。

http基础

Uniform Resource Locator, 统一资源定位符

Uniform Resource Identifier, 统一资源标识符,例如

mailto:abc@abc.com

HyperText Markup Language

发送端将http报文发给接收端,发送端应用层传输给传输层,加上Tcp首部,发给网络层,加上Ip首部,发给链路层,加上以太网首部。接收端,链路层发给网络层,删除以太网首部,网络层发给传输层,删除Ip首部,传输层发给应用层,删除Tcp首部。

Request for comment, 互联网征求意见稿

HTTP

方法

用于传输资源

只返回响应报文的头部,一般用于检查URL是否有效

用于删除资源

查询服务器支持哪些方法

可以查询客户端到服务端经过的路由,在头部加上Max-Forwards,最大多少跳,不过很多服务不支持,很少用

实现用隧道协议通信

Keep-alive

在http/1.1中,一般所有的连接都是keep-alive的,一般为15s,可以重用连接,不用每个请求都建立连接

Cookie

登陆之后,服务器返回给客户端的http header中,会有一个Set-Cookie的字段,表示客户端要保存Cookie,并且在后续的请求中要自动在请求的header中加上Cookie字段,这样服务器就能检测出来是哪个客户端了。

状态码

1XX

信息性,正在处理

2XX

成功

No Content, 成功,但是没有主体

Partial Content, 成功,返回Content-Range指定的部分结果,经常用于文件部分上传

3XX

重定向

Moved Permanently, 永久性重定向了,响应报文里面的Location是新的地址

Found, 临时性重定向

See Other, 当使用POST请求一个url,如果返回303,说明资源存在着另外一个URI,应使用GET请求另一个URI

Not Modified, 找到资源,但是没有符合条件的。GET方法可以带一些条件: If-Match, If-Modified-Since等,比如浏览器一般有缓存功能,同时访问同一个资源会带上If-Modified-Since字段,如果返回304就不用传输body了。

Temporary Redirect, 跟302一样的意思,307不会把POST变成GET

4XX

客户端报错,服务器无法处理

Bad Request, 报文存在语法错误

Unauthorized, 认证失败, 当浏览器首次接收到401状态时,会弹出一个认证的对话框

Forbidden, 请求的资源被服务器拒绝

5XX

服务器错误

Internal Server Error, 服务器出现bug或临时故障

Service Unvaliable, 服务临时不可用

网关

将http通信转化为非http通信的一个服务

header

header中如果字段重复,如何处理要看浏览器,有的浏览器以第一个为准,有的以最后一个为准

通用header

指定一些指令:

Cache-Control: private, max-age=0, no-cache

服务端返回的http header中,如果Cache-Control中指定private,则这份缓存只能给这个客户端使用,其他客户端不能使用,如果是public就可以

no-cache:

  1. 如果客户端发过去的报文中有这个指令,表示它不会接受缓存信息, 缓存服务器必须要去源服务器获取

  2. 如果服务端发过去的报文中有这个指令,表示它告诉缓存服务器,不允许对这个报文进行缓存

no-store: 不缓存请求或响应的任何一部分

max-age: 缓存时间,单位秒,

  1. 控制不再转发的字段,比如
GET / HTTP/1.1
Upgrade: HTTP/1.1
Connection: Upgrade

这条报文发到代理服务器之后,代理服务器会把它变成:

GET / HTTP/1.1
  1. 管理持久连接

Http/1.1默认所有连接是keep-alive的,如果想断开,就传Connection: close

兼容1.0版本的

可升级为TLS

[警告码][警告的主机:端口号][警告内容][日期时间]

请求header

表示客户端接受的返回媒体类型

字符集

内容编码: gzip, compress, deflate, identity

接受的自然语言集

认证信息

填写发起请求的地址

响应header

实体标识,

服务器上http服务的信息

实体header

允许的方法

gzip

zh-CN

长度

资源的URI

报文主体的md5

媒体类型

其他header

防止XSS攻击,传1就是防止

do not track, 传1,拒绝个人信息被收集

HTTPS

http的缺点

所以https引入SSL层,以保证在这个通道上传输是安全的

所以https引入CA颁发证书,以确认通信方身份是可靠的

加解密问题

Secure Socket Layer

Transport Layer Security

加密算法公开,只有一把密钥,加密和解密都用同一把密钥,但是怎么把密钥传给对方用来解密呢?

加密算法公开,有两把密钥,一把公钥一把私钥,公钥是公开的。加密时使用公钥,解密时使用私钥

https两种加密方法都使用,在交换公开密钥的阶段,使用非对称加密,让两边都知道公开密钥的情况下,传输报文时,使用对称加密,即共享密钥的形式。为了证明两边传输过程中使用的密钥是之前服务器发出来的密钥,就要用到CA来颁发了。威瑞信(VeriSign)是著名的数字证书认证机构。

数字证书认证的流程

WebDAV

在HTTP协议基础上增加一些内容,比如方法名,状态码等,实现文件的同步,增删查改等,可以用这种协议实现云盘的功能。

Web攻击

CSRF

跨站请求伪造,Cross Site Request Forgeries

XSS

跨站脚本攻击,Cross Site Scripting