计算机网络汇总

计算机网络前言介绍

在计算机进行通信中,计算机网络起着至关重要的作用,计算机网络通信的流程是,
在这里插入图片描述
路由器:有wifi的话,我们进行通信的时候,总是电子器件连接路由器,路由器连接骨干网,由骨干网连接上Internet,实现通信。(骨干网比较好理解一点的就是理解为电信机房)
电脑或者手机连接路由器这部分的网是局域网
路由器之外连接internet这部分是广域网。
路由器的图片:

路由器右面的蓝口是WAN口,WAN口是连接广域网的(Wide area network ),WAN口连接的是公网ip,与internet连接的都是公网ip,不是局域网ip。
左面的黄口是LAN口,LAN口连接的是局域网的(Local area network),WAN连接的是局域网ip.

**光猫:**以前是用电话线进行通信的,但是电话线通信传输的速度最大是8Mbps,使用拨号上网的方式是ADSL。而现在使用的是光纤传输,光纤传输的速度要比电话线传输快的多。而进行传输,传输的信号就必然需要进行调制,调制的装置就叫做猫,使用光纤传输并且对其进行调制解调的装置就叫做光猫。
8Mbps: 8Mbps的传输速度其实是1MBps,1B=8bit;
拨号上网ADSL: 在路由器上面进行上传下载文件等其他的,下载的速度明显比上传的速度要快的多,就是因为是ADSL,非对称传输。

路由器管理上面的一些操作

1.上网设置
在这里插入图片描述
上网设置里面上网方式有两种,一般情况下上网方式选择宽带拨号上网,固定ip上网个人觉得比较麻烦,如果不是特殊情况下的话;
需要注意,这里的ip地址,这里的ip地址是公网ip地址,也就是跟WAN口相关的ip地址。

2.无线设置
在这里插入图片描述
这里的2.4G和5G都是免费的频段,这里的默认设置一般是不需要进行修改的
2.4G和5G的区别:2.4G的覆盖范围比5G的要大一些,但是2.4G的网络速度是没有5G的网络速度快。

3.LAN口设置
在这里插入图片描述
对这里的ip地址就叫做局域网ip,以后对于这个i地址还有一种叫法:网关
子网掩码:255.255.255.0,这里时不需用变更

4.DHCP服务器
在这里插入图片描述
DHCP其实还是蛮重要的,急着DHCP一定是要开着的。
DHCP的作用:当电脑连接路由器的时候,是没有ip地址的,这时候就需要DHCP自动分配给电脑一个ip地址,就像上面显示的地址池开始地址到地址池结束地址,这些地址都是能够分配给连接的电子器件,这里就只能连接100个
这里的地址租期是指一个电子器件连接的时间,若是租期到了,你还在连着,就续租,若是没有那么就断开连接,空出一个位置。
网关就是局域网的ip地址
这里的DNS服务器是114.114.114.114,其实还有许多,像下面的备用DNS 202.103.24.68
,阿里的dns服务器,谷歌的dns服务器等等。

对自己电脑进行一些配置有关于DHCP,
在这里插入图片描述
对于一些小白,这里的都是自动获取,这里其实是可以自己配置的
在这里插入图片描述
我举一个例子:
ip地址:192.168.2.101
子网掩码:255.255.255.0
默认网关:192.128.2.1
首选DNS:114.114.114.114
备用DNS:233.6.6.6(阿里Ipv4的dns)

ip分类以及网络诊断ping命令

私有ip分类:
A类:10.0.0.0-----10.255.255.255 子网掩码:255.0.0.0
B类:172.10.0.0------172.31.255.255 子网掩码:255.255.0.0
C类:192.168.0.0--------192.168.255.255 子网掩码:255.255.255.0

特殊ip:
127.0.0.1(127.0.0.1—127.0.0.255)是用来进行测试本机的
169.254.x.x:如果你的主机使用DHCP来自动获取一个ip地址。当DHCP自动获取一个ip失败之后,你的网卡上面
在这里插入图片描述
这里的地址就是169.254.x.x,这是就需要检查自己的DHCP,或者重新进行配置。

0.0.0.0-----0.255.255.255:严格意义上来说已经不是一个正常的ip地址了,就是表示许多的未知的主机和目的网络。
100.64.x.x/100.72.x.x:这个也算得上是特殊ip,这个是运营商级的内网保留段,这个也是局域网而非公网ip。

公网ip: 除去所有的私有ip和特殊ip,剩下的就都是公网ip。

有必要说明一下,一般情况下我们会看到这个样子的ip地址:
192.168.127.12/24
这个24就是子网掩码前面有24个1(子网掩码是:255.255.255.0)

网络测试ping命令:
ping命令是使用在ICMP段的,他的作用有:
1.检测网络的连通情况以及测试网速
2.根据域名获得服务器ip
3.根据ping返回的TTL值来知道对方所使用的数据包以及路由器的数量
在这里插入图片描述
1.所表示所用的时间
2.表示百度的ip地址
3.表示所用的路由器

讲一个有关ping的bug:DOS(Deny of service)死亡之ping
ping命令给目标主机发送一个ICMP报文,若是ping命令发送过多,就会造成服务器瘫痪,如果说1000000台刚好可以处理的了,那么1000000000就不行了,这时服务器就会瘫痪。解决这个的方法,其实安装一个防火墙就行了,拒绝ping命令的接入,像阿里,下面就是我用ping命令访问ali的图片:
在这里插入图片描述

思考一个问题:
家里突然间断网了,如何处理:
1.先ping网关,看是不是路由器的wan口有问题
2.如果网关是好的就再ping114.114.114.114,是不是dns解析有问题

如果说自己的qq能正常上网,但是却不能访问浏览器?
那么就是域名解析的问题,看看自己电脑上面的dns是不是有问题

如果将自己寝室的DHCP关闭之后,那么曾哥寝室都不能上网了,为什么?
因为自己各个主机不能够用自己获取ip地址,那么就需要自己进行手动配置,具体的配置方式,上面已经给了一个例子。

路由器级联问题

其实路由器级联还是比较方便的
一个配置好的路由器,另一个路由器
1.将需要进行级联的路由器WAN口连接到配置好的路由器的LAN口
2.将需要进行级联的路由器的公网ip设置成上一个路由器的局域网ip。重新设置一下自己的局域网ip,注意不要ip重复。

其他的配置按照自己上面的配置方式自己进行设置

局域网与广域网进行通信

局域网: 在局域网内进行通信,任何都要有一个独一无二的ip地址,不能够地址重复
在局域网内部进行通信,是用广播域在进行通信,就如,一台电脑如果给另一台电脑发一个消息报文,那么在这个局域网内的所有的电脑都会接收到消息,是目标电脑的话就接收消息,进行消息处理,如果不是的话,那么就直接将消息丢弃。
广域网: 如果说两个人进行通信的时候,没有在一个局域网内部进行通信,那么就需要用广域网进行通信,这时候就需要使用internet来进行信息通信。
具体的传输方式就如同下面的这个图片。
在这里插入图片描述
礼物,封装之后,交给快递小哥(相当于是路由器),由快递公司进行运输,然后在由快递小哥进行运输,最后交给需要交给的人。
这只是形象的比喻,具体的实现就是下面的图
在这里插入图片描述

计算机网络模型(这个还是比较重要的)

计算机用的最多的协议是TCP/IP协议。多余TCP/IP惊醒了解可以从下面的一张图来了解
在这里插入图片描述
每层的功能:
在这里插入图片描述
数据收发的流程:
在这里插入图片描述
其实这个部分就是进行封装与拆分的过程,我个人的理解(广域网的信息传输是最明显的)

网络接口层(物理层与数据链路层)

网络接口层在ios结构当中包括数据链路层与物理层
物理层的作用:用来解决两张物理网卡之间通信的电信号的传输方式
数据链路层:将数据信号(0/1)打包成数据帧,同时解决两台机器同发送的冲突,以及数据收发是否正确的校验等链路问题

物理层中常见的协议有:有线网络802.3 (网线连接) 无线网络802.11(wifi)
手机3G/4G的ppp协议(point to point protocal)

数据链路层:数据链路层中以太网规定一组电信号就是一个数据包,而一个数据包也就是一帧,规定这个协议就是以太网协议

完整的以太网数据包为:
在这里插入图片描述
首部 是由目标mac地址,源mac地址以及类型
数据 最小有46个字节,最大不超过1500字节(如果是字节大于1500的话,是可以对数据进行划分,分为多段然后处理)
尾部 是用来确认数据包在传输中是否损坏

mac是每块网卡的身份标识,所有的网卡的mac地址是不能重复的
mac地址的表示方式如:0e-9d-d4-j9-12-3s
地址是6位的
有了mac地址之后,以太网会以广播的形式散播出去,主机接收之后会进行mac地址对比,如果是给自己的那么就接受,不是,就丢弃(在局域网内有效)
如果是远距离传输就不是使用mac传输,是用ip传输的

数据链层的主要工作就是将数据包划分成有意义的帧,然后就以广播的形式发送给接收方

网络层

网络层包含的协议:ip地址,ARP协议,路由协议
mac地址通常被称为硬件地址(物理层地址) 而ip地址则被称为软件地址
ip地址: mac地址只与厂商有关,与当前所处的网络无关,那么如果没有在同一个网络的不同主机进行通信,那么就需要定义一个新的方式,也就是ip协议来进行判断两个主机是否是在同一个网络段内
ip地址前面代表网络地址,后面代表主机地址
判断两个主机是否在同一个地址,就只需要将ip地址与子网掩码相与,就能够知道两个主机是否是处于同一个局域网内

ARP协议: ARP协议是地址解析协议,是根据ip地址解析mac地址的一个网络层协议。
RARP协议是反地址解析协议,是根据mac地址解析ip地址的一个网络层协议。
ARP协议的工作方式:
在这里插入图片描述
路由协议: 通过ARP协议可以知道,ARP解析mac地址还是局限于同一个子网,所以就引入了路由协议

首先判断是不是在同一个子网内,如果在那么就用ARP协议解析出mac地址,然后以广播的形式向该子网内的主机发送数据包。如果不是在同一个子网,那么以太网就会将该数据包打包进行路由
网关会对此数据包进行多次转发,最终会将数据包发送到目的ip的子网当中,ARP获取目标机的mac地址,最终也是广播的形式发送给接收方

骨干网上的路由器与一般的路由器会有不同,他会有独特的算法
常见的路由算法有:
RIP:路由信息协议
IGRP:内部网关路由协议
OSPF:开放式最短路径优先协议
IS-IS:中间系统到中间系统路由协议
BGP:边界网关协议

传输层:
传输层是用来不同pc上面进程的通信用的,最重要的是一个概念就是接口
端口是16位的,有65536个0~65535
其中1024个是分配给常用的服务
例如:
ftp(20/21)
ssh(22)
telnet(23)
smt(25)
dns(53)
dhcp(67/68)
tftp(69)
www/http(80)
ntp(123)
snmp(161)
https(443)

一个端口只能被一个程序占用

tcp详解
tcp除了超链接里面讲的还有一些其他的功能:
控制流量,拥塞控制以及提高网络利用率等
udp详解

tcp传输大于等于20个字节
而udp是8个字节
下面传输图
在这里插入图片描述
16位的源端口号与目的端口号都是2个字节
tcp/udp的长度与校验和也都是2个字节

tcp三次握手:
在这里插入图片描述
第一次握手: 客户端将标志位SYN置为1,随机产生一个值seq=J,并将 该数据包发送给服务器端,客户端进入SYN_SENT状态,等待服务器端确 认。
第二次握手: 服务器端收到数据包后由标志位SYN=1知道客户端请求建 立连接,服务器端将标志位SYN和ACK都置为1,ack=J+1,随机产生一个 值seq=K,并将该数据包发送给客户端以确认连接请求,服务器端进入 SYN_RCVD状态。
第三次握手: 客户端收到确认后,检查ack是否为J+1,ACK是否为1,如 果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务器端, 服务器端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功, 客户端和服务器端进入ESTABLISHED状态,完成三次握手,随后客户端 与服务器端之间可以开始传输数据了

tcp四次挥手
在这里插入图片描述
中断连接端可以是客户端,也可以是服务器端。下面以客户端为例:
第一次挥手: 客户端发送一个FIN=M,用来关闭客户端到服务器端的数 据传送,客户端进入FIN_WAIT_1状态。意思是说"我客户端没有数据要 发给你了",但是如果你服务器端还有数据没有发送完成,则不必急着 关闭连接,可以继续发送数据。
第二次挥手: 服务器端收到FIN后,先发送ack=M+1,告诉客户端,你的 请求我收到了,但是我还没准备好,请继续你等我的消息。这个时候客 户端就进入FIN_WAIT_2 状态,继续等待服务器端的FIN报文。
第三次挥手: 当服务器端确定数据已发送完成,则向客户端发送FIN=N 报文,告诉客户端,好了,我这边数据发完了,准备好关闭连接了。服 务器端进入LAST_ACK状态。
第四次挥手: 客户端收到FIN=N报文后,就知道可以关闭连接了,但是 他还是不相信网络,怕服务器端不知道要关闭,所以发送ack=N+1后进 入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。服务器端收 到ACK后,就知道可以断开连接了。客户端等待了2MSL后依然没有收到 回复,则证明服务器端已正常关闭,那好,我客户端也可以关闭连接了。 最终完成了四次握手

传输层必须要了解的概念:
MTU(Maximum Transfer Unit,最大传输单元) 链路层的帧(frame)中的数据部分的最大字节数,以太网中的一般为1500字节。
MSS(Maximum Segment Size,最大报文段大小) TCP的报文段中的数据部分的最大字节数,MTU减去IPv4的Header和TCP的HeaderIPv4(一般都是20字节),则MSS=1500-20- 20 = 1460字节
MSL(Maximum Segment Lifetime,报文最大生存时间) 报文在网络上存在的最长时间,TCP四次挥手是主动断开连接的一方再发送完最后一个ACK后进入TIME_WAIT状态时,需要 等待2MSL时间后才变成CLOSED状态,RFC 793建议为2分钟。
RTT(Round-Trip Time) 从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。 TCP中保留了RTT的加权平均值RTTS(下标S表示Smoothed)。
TTL(Time To Live) 该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL是IPv4包头的一个8 bit字段。
RTO(Retransmission Timeout,超时重传时间) TCP中触发超时重传机制的时间,应略大于RTT。RFC2988中建议RTO = RTTS + 4 * RTTD

计算机的网络传输模型

在这里插入图片描述

其实这个也不知道怎么写,一张图就能体现出蛮多的东西
进行通信也就是一个封装包与拆解包的过程
下面就详细讲讲这个过程吧:

两个pc端相互发东西,分别为pc1与pc2
假设pc1向pc2发东西
发送端:
首先,应用层到传输层,会将数据加上一个tcp/udp的头部
传输层到网络层,会在加上一个ip的头部
网络层到物理层,会在ip前面会加上一个帧头,然后由物理层以0/1电平发送出去,

接收端:
pc2接收到信息之后会首先拆解帧头,看是不是给自己的依次是拆解ip头部,tcp/udp头部
然后由端口号传输给相应的app进程

net技术

整理net技术之前,大家可以看看有关于路由表的讲解
路由表的相关讲解超链接
net技术相关图

在用net技术进行数据传输的时候,pc端发送到路由器,路由器连接接收端的时候是会用公网ip,同时为了解决不同主机之间的端口冲突,那么就会重新定义一个端口,那么这样一一对应的ip与端口,就形成了路由器net表
举一个例子:
192.168.1.33807---------->27.18.255.2482020
这样就是一个主机的ip地址以及端口与路由器广域网ip以及端口所对应形成的一个路由表的一部分

由pc1端发送东西给腾讯服务器
pc1端先将要发送的东西打包形成数据报文,发送给路由器,用的路由表由路由器转化成路由表,有路由表里面的对应的广域网ip与端口来与腾讯服务器进行通信,腾讯的服务器将信息处理完之后,将对应的ip端口号翻转,将反馈回来的信息发送到路由器上面,路由器通过查对应的路由表将信息返回给pc端以及相应的端口,从而实现通信。

那么腾讯服务器能不能访问电脑的pc端?
答案是不能。因为没有对应的路由表

路由器端口转发配置

思考上面的问题的答案,那么怎样才能访问私有地址的呢?
其实就是要配置对应的路由表
在这里插入图片描述
在这里面添加相应的内容就可以是外面的人访问私服
如同:
在这里插入图片描述
那么访问的话就是在浏览器上面输入:wan口的ip地址+外部端口 就可以访问了

SSL,4G网络与DDNS

ssl详解
对于4G来说,4G相比于wifi、3G来说更加安全
wifi只要两台主机连接到同一台路由器之下,因为在传输层是通过广播的形式进行传播的,所以另一台主机只要有点侦破的技术,就能够得到你的报文信息,不过还好,现在使用ssl非对称加密,即使得到了报文信息,也不会知道真实的内容
对于4G来说,4G是与基站点对点进行连接,相对应来说比较安全一些。

想必大家对于dns并不陌生了,dns是用来进行域名解析的,但是如果自己搭建的私服,路由器的公网ip一直变,而自己则需要使用一个稳定的地址,那么这是就需要使用ddns来让自己能够长时间使用一个域名,不管路由器的公网ip是否会改变,访问一个域名就直接可以访问私服。
DDNS的概念: DDNS(Dynamic Domain Name Server,动态域名服务)是将用户的动态IP地 址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会 通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服 务器程序负责提供DNS服务并实现动态域名解析。

域名解析流程

以访问百度为例:
因为baidu.com 是一个域名,所以要完成域名解析,即将百度的域名翻译成IP地址。这是由Windows上的DNS客户端访问DNS服务器实现的。


   1,DNS服务器的设置在Windows的网络设置里配置,Linux下 /etc/resolv.conf。DNS服务器IP地址配置成 114.114.114.114;
   2, 客户端就要发送一个应用层数据报文:“baidu.com的IP地址是多少?”
   3, 到了传输层,传输层加上TCP的头20个字节,有两个关键的元素就是源端口(系统随机分配,假设为7777)和目的端口(53)4,到了网络层,网络层加上IP头20字节,有两个关键的元素,叫做源IP(192.168.2.101)和目的IP(114.114.114.114);
   5,操作系统会看到源IP和目的IP不在一个网段内,这时候数据报文就要给默认网关,默认网关就是路由器的LAN口IP地址(192.168.2.1)
   6,接下来数据到网络接口层,我们把网络接口层分为两层来看,就是数据链路层和物理层。现在先看数据链路层。数据链路层要加上帧头:
      帧头里面有两个元素叫做 源MAC地址和目的MAC地址(网关的MAC地址);

   7,不知道路由器的MAC地址是多少? PC会发一个ARP的广播报文,“192.168.2.1,你的MAC地址是多少?”
   8, 这时候局域网内所有主机都会收到该报文,然后只有 192.168.2.1 的主机会回复说,“XXX,我的MAC地址是 XX:YY:ZZ:MM:NN:OO”
   9,接下来用源MAC和目的MAC封装数据报文,通过物理层网卡以广播的形式发送出去;
  10,局域网内所有的机器都会收到这个报文,他们会检查目的MAC地址是不是我自己,如果不是就丢掉;否则就继续解析;
  11,这时候路由器LAN口收到数据包,发现是给自己的,就往上层网络层传输;
  12,网络层收到数据包后,检查源IP和目的IP, 会私有IP转成公网IP, 把源端口也给改掉;并记录相应的修改记录到NAT表中;
  13,这时候从WAN口中发出去的数据报文都是公网IP了,经过Internet上的路由器路由转发到达 114.114.114.114主机;
  14114.114.114.114 DNS服务器主机查询自己的数据库,获取baidu.com的IP地址,然后封装数据报文“baidu.com的IP是xx.yy.zz.mm”
  15, 到传输层,将源端口和目的端口互换,到网络层将源IP和目的IP互换;再经过Internet上的路由器路由转发到家里的路由器WAN口上;
  16,路由器查询NAT表,将公网IP和目的端口修改为记录里的私有IP和端口
  17,路由器在LAN口上将数据报文广播发送出去;
  18,PC查询MAC地址是自己,然后就剥去数据链路层的帧头,然后给网络层;
  19,网络层查看IP地址,如果是自己的就剥去IP头传给传输层;
  20,传输层解析出端口,再给DNS客户端,这时候DNS客户端就能够知道baidu.com的IP是 xx.yy.zz.mm;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值