关于网络知识的一些总结

5层/7层网络(物理层,链路层,网路层,传输层,应用层(会话层,表示层))

交换机与路由器的区别

1:路由器可以给你的局域网自动分配IP,虚拟拨号,交换机只是用来分配网络数据的。
2,路由器在网络层,路由器根据IP地址寻址,路由器可以处理TCP/IP协议,交换机不可以。交换机在中继层,交换机根据MAC地址寻址。
3,路由器可以把一个IP分配给很多个主机使用,这些主机对外只表现出一个IP。交换机可以把很多主机连起来,这些主机对外各有各的IP。(nat)
4,路由器提供防火墙的服务,交换机不能提供该功能。集线器、交换机都是做端口扩展的,就是扩大局域网(通常都是以太网)的接入点,也就是能让局域网可以连进来更多的电脑。 路由器是用来做网间连接,也就是用来连接不同的网络。
5,交换机用来将一根网线变为多根,如果网络需要登录大家各自分别登录。路由器用来将一条网络变为多条,分出的多条网络共享主线的网络带宽。
6,交换机工作于数据链路层,用来隔离冲突域,连接的所有设备同属于一个广播域(子网),负责子网内部通信。路由器工作于网络层,用来隔离广播域(子网),连接的设备分属不同子网,工作范围是多个子网之间,负责网络与网络之间通信。

物理层

网络类似一个拓扑图
可以是有线或者无线的
物理层解决信号的调制和解调:数字信号与模拟信号(最后都会转换为数字信号01 充分理解01信号)
信号发送是01的二进制信号(使用曼(差分)彻斯特方法//这个方法自带时钟)

链路层

分为两层:1,控制信号编码封装如何发出去;2,链路的访问,谁应该使用这个链路,出现冲突怎么处理.

fram 以太帧:数据链路层的协议数据单位.每一个以太帧中包含了目标地址,源地址,冗余效验,负载(实用数据)

广播域的概念:广播域就是说如果站点发出一个广播信号后能接收到这个信号的范围。通常来说一个局域网就是一个广播域。

每一个网卡都有一个绝对地址(mac地址),出厂自带,一般改不了.

wlan的通信效果类老式以太网(广播域)
只能点对点的传输
ca避免冲突

MAC地址:介质访问控制,识别数据链路层中互连的节点,以太的mac地址类似快递,(交互的站点,人与人)ip类似发出地址和目标地址.

以前用以太网(局域网)

产生冲突的时候:
csma:载波监听,多个站同时发送帧,则会产生冲突现象.
csma/cd/:争用型的介质访问控制协议,工作原理:它的工作原理是: 发送数据前 先侦听信道是否空闲 ,若空闲,则立即发送数据。若信道忙碌,则等待一段时间至信道中的信息传输结束后再发送数据;若在上一段信息发送结束后,同时有两个或两个以上的节点都提出发送请求,则判定为冲突。若侦听到冲突,则立即停止发送数据,等待一段随机时间,再重新尝试。
其原理简单总结为:先听后发,边发边听,冲突停发,随机延迟后重发

带有冲突检测的载波监听多路访问,可以检测冲突,但无法“避免”

csma/ca/*碰撞检测*/这种协议实际上就是在发送数据帧之前先对信道进行预约.(1)首先检测信道是否有使用,如果检测出信道空闲,则等待一段随机时间后,才送出数据。(2)接收端如果正确收到此帧,则经过一段时间间隔后,向发送端发送确认帧ACK。(3)发送端收到ACK帧,确定数据正确传输,在经历一段时间间隔后,会出现一段空闲时间。

令牌环介质访问控制使用一个令牌沿着环循环,且应确保令牌在环中为唯一的,有令牌的才能发送,没有的就停止工作.

在传输过程中,mac始终在各个节点之间变化,ip地址不变.

网络层

arp协议:地址解析协议,即ARP,是根据IP地址获取物理地址的一个TCP/IP协议。一个ip地址映射出一个mac地址.一个ip发出广播(或者单播)想要得到一个mac地址,匹配的mac地址单播响应ip,交换机可以设置响应次数.
cmd中命令:arp -a //可以看见所有连接的ip-mac地址
高级的交换机可以设置ip响应次数
ip与pc是对等的 没有主次机的说法 cmd:ipconfig //查看ip  

网关实质上是一个网络通向其他网络的IP地址,网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。

同一个交换机中,不在同一个子网(网段)的机子不是局域网.
如果需要想通,需要安装一个路由器.设置默认网关,交换机上只有mac地址.

子网掩码:它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,分成网段,前面是网络(子网的ip),后面是主机(具体设备的具体ip),以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。所以在路由器中的插入都是局域网,因为nat.

对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。

IP地址在设计时就考虑到地址分配的层次特点,将每个IP地址都分割成网络号和主机号两部分,以便于IP地址的寻址操作。

子网掩码转换成二进制之后,子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。这样做的目的是为了让掩码与ip地址做按位与运算时用0遮住原主机数,而不改变原网络段数字,而且很容易通过0的位数确定子网的主机数(2的主机位数次方-2,因为主机号全为1时表示该网络广播地址,全为0时表示该网络的网络号,这是两个特殊地址)。只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。
所以网络号越长,主机越少.

路由器有多个出口,根据内部的路由表(ip表)决定数据走向,交换机中也有类似表(mac地址)


经过路由器转换的网络是网络层(站点为链式)
在传输过程中,mac始终在各个节点之间变化,ip地址不变,校验和一直在变化.
ip地址是按照区域划分的(类似快递 国->->->->县)

ip数据报包含在以太帧中
ip数据报中包含了目标ip 源ip
TTL(time to live)存货次数,共255次,转发一次-1,可以防止数据循环转圈.
TTL设置的次数太少,未达到目标地址,回返回在哪个路由器停止,经过了那些路由.

icmp:回显请求,Ping发送一个ICMP回声清求消息给目的地并报告是否收到所希望的ICMP回声应答。它是用来检查网络是否通畅或者网络连接速度的命令,用在ip主机,路由器之间传递控制信息,即:网络是否通畅,主机是否可达,等网络自身的问题。它所利用的原理:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。Ping 是Windows系列自带的一个可执行命令。利用它可以检查网络是否能够连通,用好它可以很好的分析判定网络故障。
tracert(跟踪路由,Ping与ttl封装的命令 返回一个回显请求)

nat:多个网公用一个公网(eg:路由器与家用电脑),默认网关都是路由器本身ip,nat在内网设备进出时,网内设备的私有ip通过路由器出去会改变成路由器的ip.在nat传输中,udp端口基本不变,如果两个设备用到了相同的端口,路由器会自动记录,回复时正确.

dns:域名映射ip 一个域名指定了一个ip地址.
dns服务器:自定义时解析Ip域名,不能给DNS服务器的域名,不然会出现死解析. 
dns走的udp 一次请求 一次响应

DDNS:动态域名--(指向)-->不同的新ip,DDNS捕获用户每次变化的IP地址,然后将其与域名相对应,这样其他上网用户就可以通过域名来进行交流。而最终客户所要记忆的全部,就是记住动态域名商给予的域名即可,而不用去管他们是如何实现的。动态域名服务的对象是指IP是动态的,是变动的。普通的DNS都是基于静态IP的,有可能是一对多或多对多,IP都是固定的一个或多个。但DDNS的IP是变动的、随机的。

传输层

端口号:网络服务是依靠“IP地址+端口号”实现的.

udp协议:端口收发,不提前建立连接,不会主动绑定,收没收到不管,也不会重发.可能会丢包,丢包率大概为5%,端口自动接收.含有源端口,目标端口,数据,等.

Dhcp:动态主机配置,是一个局域网的网络协议,使用UDP协议工作,给内部网络或网络服务供应商自动分配IP地址(比如插网线)(0.0.0.0作为自己的ip地址 255.255.255.255作为目的地址). 设备udp广播(我需要一个ip,)一个或多个dhcp响应(可以分配),设备再次广播(已经得到了ip),相互配对上的可开始传输内容.

租约:租约是客户机可使用指派的IP地址期间 dhcp服务器指定的时间长度。租用给设备时,租约是活动的。在租约过期之前,设备一般需要通过服务器更新其地址租约指派。当租约期满或在服务器上删除时,租约是非活动的。租约期限决定租约何时期满以及设备需要用服务器更新它的次数。dhcp的租约到期之前,如果电脑正在工作的话,是会自动续约的,不会造成网络中断。如果电脑在租约到期之后重新开机,会得到一个新的IP地址,过程是自动的,不需要用户干涉.

vpn:就是利用公用网络架设专用网络,虚拟网卡与远程机器形成局域网.就如同专门架设了一个专用网络一样,但实际上vpn使用的是互联网上的公用链路,因此VPN称为虚拟专用网络,其实质上就是利用加密技术在公网上封装出一个数据通讯隧道。

tcp/ip

tcp:可靠有序的发送,发出去的包,对方要响应,无响应会重复,tcp流,点对点
发送出去的ip数据报可能会错乱方向,tcp为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收.

服务器会知道数据从何而来,建立连接才能互通(监听).

三次握手:在不可靠的信道上进行进行单次可靠信息传输,至少需要三次.
第一次:客户端向服务器端发送 请求连接(syn)
第二次:服务端回应客户端 表示收到,表达请求连接(syn ,ack)
第三次:客户端回应(ack)
短时间内,客户端发起请求,主机快速建立监听,连接成功.

tcp五元组:源IP地址,源端口,目的IP地址,目的端口,和传输层协议. 每一个五元组可以确定一个准确的连接.
客户端可以复用端口(理论上可以建立无穷多个连接)
现阶段窗口大小=窗口大小*窗口缩放因子.

tcp数据包:源端口,目的端口.数据序号32位,TCP为发送的每个字节都编一个号码,这里存储当前数据包数据第一个字节的序号;确认序号32位,为了安全,TCP告诉接受者希望他下次接到数据包的第一个字节的序号.

保留字:
ack:1时候,确认号字段有效,为0时确认号无效.包含的信息:1,期望接收到的下一字节的序号n,该n代表接收方已经接收到了前n-1字节数据,此时如果接收方收到第n+1字节数据而不是第n字节数据,接 收方是不会发送序号为n+2的ACK.2,当前的窗口大小m,如此发送方在接收到ACK包含的这两个数据后就可以计算出还可以发送多少字节的数据给对方,假定当前发送方已发送到第x字节,则可以发送的字节数就是y=m-(x-n).这就是滑动窗口控制流量的基本原理.


psh:tcp收到数据后,这个数据包以及以前接收到的数据包需要交给应用层立即进行处理。
syn:表示这是一个连接请求或连接接受报文。
fin:当fin=1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
rst:连接出现问题,断开连接,重置.
urg:紧急的数据包(优先传给应用层)

MSS是最大传输段大小的缩写,指一个TCP报文的数据载荷的最大长度,不包括TCP选项.在第三次握手建立连接时已经确定了不会被分片处理的最大数据长度.

tcp窗口:分为流量控制和拥塞控制.

tcp通过滑动窗口的概念来进行流量控制:
滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发送方自己的窗口大小,从而控制发送方的发送速度,从而达到防止发送方发送速度过快而导致自己被淹没的目的。如果发送方在合理的时间内没有收到确认,则重发数据。没有听到确认的发送方不知道接收方是否实际接收到分组(数据可能在传输中丢失或损坏)。 如果错误检测显示损坏,则数据包将被接收方忽略,并且不会发送确认。 因为网络传输的时延,将有大量时间被用于等待确认,导致传输效率低下。

当窗口左边沿向右边沿靠近为窗口合拢。这种现象发生在数据被发送和确认时。
当窗口右边沿向右移动时将允许发送更多的数据,我们称之为窗口张开。这种现象发生在另一端的接收进程读取已经确认的数据并释放了tcp的接收缓存时。
当右边缘向左移动时,称之为窗口收缩。



拥塞控制:
对于数据的发送端就是拥塞窗口了,拥塞窗口不代表缓存,拥塞窗口指某一源端数据流在一个RTT内可以最多发送的数据包数.认为接收方的窗口尽可能的大,接到数据就扔掉,不去处理.发送方不停地发,这时候网络会拥塞.
tcp可以限制一个合适的网速(带宽*时间延迟)
发送方最开始的发送窗口以(慢启动) 和式增加(线性增加),加快发送速度.当发送方发送一些报文段时,如果发送方没有在时间间隔内收到接收方的确认报文段,则就可以人为网络出现了拥塞.没有收到对方的ack.窗口 积式减少(直接缩一半,比例减少)

快重传:
发送方发给接收方的数据未收到,收方收到一个失序的报文段后就立刻发出重复确认,而不要等待自己发送数据时才进行捎带确认。如果发送方一连收到三个重复的ACK,不等待超时,直接重传.

0窗口情况:
接收方响应对面,窗口为0,不要发送数据了.
为了避免死锁:真正在0窗口之后,发送方会主动的每隔段时间发送极少量的数据包,等到接收方的ack.

四次挥手:
第一次:发送端向接收端发送find,之后不会再发送任何数据.释放内存  
第二次:接收端向发送端发送一次ACK
第三次:接收方发送一个fin,如果中间还有数据没有发送完,会单方面传递.
第四次:发送方会发送一个ACK 
当双方都没有残余数据,接收方也可以将ack/fin同时发送.
释放tcb.
在网络传输层,tcp模块中有一个tcb(传输控制模块,transmitcontrolblock),它用于记录tcp协议运行过程中的 变量。

至此,一个伟大的tcp连接全部结束.在这个过程中,客户端与服务端经历了风风雨雨,一路坎坷,丢包无数,计算无数,窗口滑动缩放无数次,控制传递无数次,只因为最开始的三次握手,让他们情比金坚的坚持了下来.让我们为他们欢呼雀跃吧!

加密的一些东西

加密与解密使用相同的密钥成为对称加密,反之为非对称加密

rsa算法加密:
公钥发送,私钥保密.
公钥加密,私钥解密.
私钥加密,公钥解密.

rsa算法运行时间太慢.
所以可以使用,先建立tcp连接使用非对称加密,协商密码.再对称加密这个密码.
类似加密过程
加密:x->(私钥s1)->y->(公钥p2)->z
解密:z->(公钥s2)->y->(私钥p1)->x

预共享密钥:提前商量好密码.

证书:确保你所连接的就是你想要连接的.
证书通常会和域名绑定在一起(证书是一层一层颁发的)
根证书是ca
服务端会给客户端送达证书,
(客户端)x-->----访问-->---y(服务端)
       ^                 ^                  
       |-----------------|ca(根证书)

http

常见的应答状态
401 未授权(未登录)
403 隐藏   (未授权)
404 未找到
 soft404,返回一个200的页面
          但内容是404页面的样子
          ie浏览器对于小于512字节的404页面是不展示的
451 政治原因不予显示

301 永远移动到新的位置(返回也会移动,用于登录界面)
302 暂时移动到新的位置
304 未改变(可以继续使用这个缓存)

501 服务器内部出现的问题,导致无法访问 
502 服务器内部出现的问题,导致无法访问 

请求首部:
User-Agent,浏览器标识,可以用js通过navigator,userAgent读到
host,用来高速服务器,浏览器是通过什么域名来连接服务器的,带端口号。可用此特性来实现同一个服务器有多个网站,coding/github pages就是这么做的
Referer 告诉服务器,浏览器是在哪个页面请求的这个资源,页面完整地址,可以用来防盗链
If-None-Match(请求)/ETag(响应):IOS Time String,如果不需要更新,服务器就会响应304请求。 304 Not Modfied

响应相关首部:
Content-Security-Policy:告诉浏览器,页面里面的js,甚至是其他的资源能否被执行。
CORS
    Access-Control-Allow-Origin:允许哪些域下的页面里的js请求此资源
    Access-Control-Max-Age:86400 表明此次允许跨域访问时效是多久,过去后浏览器会重新发送OPTONS请求以及重新询问服务器是否还可以跨越访问。

ajax xmlhttprequest核心内容

属性:

readstate
表示xmlhttpRequest对象的状态:
0:未初始化,对象已经建立,未调用open;
1:open方法调用成功,但是send方法未调用
2send方法已经调用,尚未开始接收数据
3:正在接收数据,http响应头信息已经接受,但尚未接收完成
4:完成,既数据接受完成。

status
说明:服务器返回的http状态码。200表示成功,404表示未找到,500表示服务器内部错误

responseTsxt:服务器响应的文本内容

responseXML:服务器响应的XML内容对应的DOM对象

statusText:服务器返回状态的文本信息

Onreadystatechange:请求状态改变的事件触发器(readyState变化时会调用这个属性上注册的javascript函数)。

具体内容查找红宝书
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值