打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
计算机网络之基础篇

计算机网络之基础篇

什么是计算机网络?

  主机之间通过交换网络互连,交换节点一般是路由器或者交换机。


什么是网络协议?

  为进行网络中的数据交换而建立的规则、标准或约定。


协议的三要素是什么?

  语法、语义、时序。

计算机网络的结构?

网络边缘:主机(端系统)、网络应用

  主机(端系统):运行网络应用程序。

  客户/服务器(C/S)应用模型:客户发送请求,接受服务器响应。

  对等(P2P)应用模型:不用依赖专用服务器;对等实体之间直接进行通信。


接入网络,物理介质:有线或无线通信链路,将网络边缘接入核心网络

  带宽(bps):网络中指数据传输速率,Mb/s。 

  无线局域网(LANs):wifi。

  广域无线接入:通过电信运营商,3G、4G。


网络核心:互联的路由器(或分组转发设备),将数据从源主机通过网络核心发送到目的主机

  关键功能:路由+转发。

  路由:确定分组从源到目的传输路径,路由算法。

  转发:将分组从路由器的输入端口交换至正确的输出端口,本地转发表。

数据交换?

构建:

  最简单的就是任意两台主机之间建立一条链路:O(N^2)。
  然后一个交换设备,让每台主机都通过链路连接:如果主机规模很大,交换设备端口不够用;如果主机与交换设备过远,无法保证连通性。
  把交换设备连接到一起,构造成交换网络,让每台主机与交换网络中的某台设备连到一起。


什么是交换?

  动态转接: 数据通过交换设备从一个端口转到另一个端口,而且可以在多组端口之间并行。
  动态分配传输资源:数据从源主机穿越交换网络送达正确的目的主机 。

数据交换的类型?

1.电路交换—>典型的电话

  选好链路占好资源。

  资源独占,不能被第三方共享。

  电路交换网络的链路共享:多路复用。


.报文交换

  源(应用)发送信息整体,比如一个文件,完整的发到下一个站点。


.分组交换

  分组:报文分拆出来的一系列相对较小的数据包头+数据。

  需要报文的拆分和重组。

  产生额外开销:时间开销必不可少,通常在计算机网络中源主机和目的主机之间进行的,拆分重组开销不严重。


4.报文交换与分组交换均采用存储–转发交换方式

  路由器将数据分组完整的接收过来暂存一下,再决定怎么转发,转发的链路可用了,再发出去。

  丢包:队列缓存容量有限,分组到达已满队列,到达分组被丢弃--丢包(loss)。


5.报文交换的效率高于分组交换

  报文交换是串行,而分组交换很多分组之间是并行的,而且相比之下路由器需要的缓存更小。


6.分组交换VS电路交换,可支持更多用户同时使用网络,网络资源充分共享

  大家建立连接后,一般不一直传送数据,一段时间根本不用网络,平均活动时间较少。
  分组交换是统计多路复用。


7.分组交换不是绝对优于电路交换

  分组交换更适用于突发数据传输网络。

  资源充分共享;简单、无需呼叫建立,事先占好资源。
  可能产生拥塞:分组延迟和丢失,需要协议处理可靠数据传输和拥塞控制。

网络性能的评价

速率:数据传输速率或比特率(单位时间传输比特量),最重要的一个性能指标。


带宽:原指信号具有的频带宽度,单位是赫兹。在计算机网络中,指数字信道所能传送的“最高数据率”。


延迟/时延:分组在路由器缓存中排队,分组到达速率大于输出链路容量时

  结点处理延迟:差错检测、确定输出链路可用。
  排队延迟:等待输出链路可用、取决于路由器拥塞程度。
  传输延迟(发送一个分组需要的时间):分组长度L、链路带宽R, d=L/R。
  传播延迟:物理链路长度、信号传播速度。


丢包率: 丢包数/已发分组总数。


吞吐量/率:表示在发送端与接收端之间传送数据速率(b/s),取决与端到端路径之间的瓶颈链路(速率最小的链路)。

计算机网络体系结构?

从功能上描述,分层结构,每层完成本层功能,体系结构是抽象的。


为什么分层?

  结构清晰;模块化的分层易于系统更新、维护;有利于标准化。
  因为每一层要完成的功能是不同的,解决的问题是不一样的,比如要传递可靠数据(传输层)、先要实现能传递数据(网络层)、传递之前要保证两台机器之间能发数据包(数据链路层),所以分层的方式是将功能划分给每一层去实现部分功能,下层协议为上层协议提供帮助,相互配合。

  协议是控制两个对等实体进行通信的规则的集合,协议是“水平的”。 
  任一层实体使用下层服务,实现本层功能,向上层提供服务,服务是“垂直的”。 
  下层协议的实现对上层的服务用户是透明的。

网卡是什么?

  网卡:网络适配器,插在(或者集成在)主板上的硬件设备,每个网卡都有一个全球唯一的标识,从一生产出来就确定了,48位,叫做MAC地址,如11:27:F5:8A:79:54。

  网卡属于OSI模型中的物理层和数据链路层,网络层以上的部分则由操作系统中的协议栈实现,所以TCP/IP协议栈其实只包含了网络层和传输层。


网卡是怎么工作的?

  首先需要一个IP地址,用到DHCP(动态主机配置协议,集中管理、分配IP地址)。网络里有DHCP服务器,动态的分配地址,CPU写好报文。首先是一个应用层的DHCP报文,然后被DUP报文封装(目的地端口:67,源地址端口:68),之后再被IP数据报封装(目的地址:255.255.255.255,源地址:0.0.0.0)。


  网卡是数据链路层的,需要知道MAC地址才能发送到指定对方,如果不知道就发广播。然后又把数据报封装了一下,广播到同一子网内的所有电脑,目的地址就是FF:FF:FF:FF:FF:FF。


  然后网卡通过网线把报文发到交换机,交换机将报文转发到所有连接到交换机的设备。过一会,交换机转来报文,就是DHCP服务器发来的。然后网卡广播发送一个报文确定要哪个IP,之后DHCP再回一个报文,包括网卡的IP、网关路由器的IP、DNS服务器IP。


  如果系统重启之后,这个获取IP的步骤需要再走一遍,除非用户手动的配置IP地址、网关、DNS,但是这样很烦还容易出错,所以一般情况下都是自动的用DHCP搞定一个IP。

怎么访问百度?

  要想互联,不仅自己要有IP地址,还要知道对方的IP地址,比如访问www.baidu.com,要先经过DNS查询,知道它的IP。

  DNS服务器不在局域网内,我们将报文发送到网关路由器,由网关路由器想办法转给DNS服务器。那么网关路由器的MAC地址在哪呢?这时候需要用到ARP(地址解析协议),通过广播查询一个IP地址对应的MAC地址,得到网关路由器的MAC地址,网卡只需要将DNS查询发送给网关路由器即可。之后就没网卡的事情了,网卡只能管局域网的事情,出了局域网,就是路由器的事情了。


出了局域网之后的事情呢?

  现在来看网关路由器,我还在想为什么叫网关呢?在网上看到的解释是大家想上网,一定得经过这一关,所有的对局域网之外的访问必须得经过网关。

  网关直接和ISP(网络服务供应商,比如联通)的网络相连,得到一个外网地址。


NAT(网络地址转换)

  网关路由器不仅是个路由器,还是个DHCP服务器,掌握着整个局域网的IP生杀大权。局域网内的主机拿着内网IP是无法直接上网的,这个地址只有局域网的网关才知道,像百度这样的网站根本就不知道;即使知道了也没用,世界上无数的路由器都会分配192.168.xxx.xxx这样的地址,也不知道到底要找哪一个。

  那怎么通过网关路由器上网呢?下面看过程: 
  比如某个网卡想访问百度,它通过交换机给网关路由器发来一个数据帧,如:

以太网帧:

  目的地:88:25:93:97:E0:C8

  源地址:11:27:F5:8A:79:54

IP数据报:

  目的地:115.239.211.112

  源地址:192.168.1.2

TCP报文:

  目的地址端口:80

  源地址端口:3345

HTTP报文:

  GET /

  Host:www.baidu.com


  发过来之后,网关路由器这样处理:它把数据链路层去掉,发现IP数据包中的目标地址是115.239.211.112,可以知道这是要向外网发出请求了,网关路由器把源IP地址换成从ISP那里拿来的外网IP,再创建一个新的端口号将TCP数据包中的源端口也替换掉,之后数据包就换成了下面这样:

IP数据报:

  目的地:115.239.211.112

  源地址:61.52.247.112

TCP报文:

  目的地址端口:80

  源地址端口:2001

HTTP报文:

  GET /

  Host:www.baidu.com


  总之就是网关路由器将源IP地址和源端口都替换了,目的就是让外网认为这是路由器发出的,他们根本不知道什么某一块网卡。之后再给IP数据报封上数据链路层的头,将数据包发送给服务商的网络,剩下的事情就不用管了。

  这个替换源地址和源端口的小把戏就叫做网络地址转换,简称为NAT。 
  当然不止一台电脑通过网关路由器上网,还有很多别的电脑,所以网关路由器将这些转换关系记录下来,形成了NAT转换表,如下:

  PS:路由器上的WAN口是用来连接外网的,或者说连接宽带运营商的;LAN口(1、2、3、4)是用来连接内网中的设备的。

  接着说,当百度那边的回复通过别的路由器转到网关路由器这里,需要反过来处理:首先去掉数据链路层的头,发现IP和TCP数据报中包含这样的信息:目的IP:61.52.247.112,端口:2001,这时候网关去查表,找到了192.168.1.2:3345,就知道这是给哪一块网卡的数据包了。就再次把数据报中的IP地址和端口号改了,让网卡认为这个数据包是网关发的。

  就这样,网关用一个外网的IP支持了局域网内多个电脑的上网需求,并且他们根本不知道怎么回事!

NAT弊端

  NAT使IP会话的保持时效变短。一个会话建立后会在NAT设备上建立一个关联表,因为IP和端口资源有限,通信的需求无限,所以必须在会话结束后回收资源。

  NAT在实现将多个内部主机发出的连接复用到一个IP上,这样使得依赖IP进行主机追踪的机制失效了。NAT隐蔽了通信的一端,把简单的事情复杂化了。

  NAT工作机制依赖于修改IP头部信息,这会妨碍一些安全协议的工作。NAT篡改了IP地址、端口和校验和,这会导致认证协议彻底不能工作,因为认证的目的就是要保证这些信息在传输过程中没有发生变化。

NAT穿越

  在P2P模式下,比如电驴,机器不仅仅是客户端,同时也是一个能够接受请求的服务器。但是其他人怎么能连上它呢?外网的人不知道它的IP地址呀。

  解决方案是这样的,网卡可以主动的请求网关建立一个NAT映射,比如(192.168.1.2 : 4096) <-> (61.52.247.112: 3001),保存到NAT表中,当有外网连接到来时,网关负责把连接请求转发到指定主机。这其实是UPnP。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
谈谈ARP欺骗那点破事
计算机网络模型——网络层
IPv6隧道介绍(过渡技术)
Ping命令不能PING通的种种解惑
网络运维常用理论知识大汇总(二)
UC头条:重学网络系列之(Ping与网关)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服