计算机网络概论--整体介绍

计算机网络的每一章内容大致分为两个部分:

  1. 原理。即功能和服务,解决两个问题:这层的功能是什么,又是借用了什么服务来实现的。
  2. 实例。即具体的正在使用的协议有哪些,通过实例来了解原理。

网络分层的核心:每一层的功能,通过和上层之间的层间接口,向上层提供服务,实现上层的一些功能。同时本层的功能,又是通过和下层的层间接口,调用下层提供的服务来实现的。所以就有那句话:水平方向是协议,竖直方向是服务。

所以从这里我们可以看出功能和服务的区别。

举个例子:

应用层协议:

我们日常用的电脑上的应用实现时数据传输的原理:最简单的过程就是,我电脑上的一个应用进程向别人的电脑发送一个请求massage(报文),对方的电脑上返回给我一个响应报文(massage),计算机之间就是通过这些报文的交付来实现各种各样的网络应用。比如最典型的百度,谷歌,必应等浏览器。请求,响应,再请求,再响应。

具体的应用层协议的作用就是:规范了远程的应用进程之间相互通信的过程中,应该遵守的规则和协议,保证不同主机上的应用可以相互通信。比如定义客户端和服务器之间的应用如何交换信息。

传输层的一些协议:

TCP协议(Transmission Control Protocol,传输控制协议):面向连接的协议,提供可靠传输,当应用对实时性要求不高,但是对于数据的可靠性要求高时,一般采用这个协议。

UDP协议(User Datagram Protocol,用户数据报协议):当应用对可靠性要求不高,但是对实时性要求高时使用。例如一些实时多媒体应用,比如B站,抖音,视频号直播时的数据传输,如果你看直播的时候总是卡顿,用户体验感就非常不好了,所以很多实时多媒体应用都是跑在UDP之上。以及一些事务型应用。

问题:

有的同学在这里可能会问了,不能同时获得传输数据的可靠性和实时性吗?要是设计一个这样的协议该多好。

愿望很美好,但是现实比较骨感。。。

我们要知道,可靠性 和 实时性往往不能兼得,因为可靠性很多时候是在牺牲一部分时间和空间的情况下才能实现。

比如为了保证数据传输的可靠,我传输数据给对方之后,得保存一份数据的副本吧,不然数据要是丢了,就连想重传都没有副本了,这里就需要存储副本的空间。再者,如果对方收到数据时,数据错了,需要我们重传,这一来一去也需要时间吧。要是数据乱序了,对方还得重新排序,也需要时间。这些都是保证数据可靠性要付出的代价。

总的来说,传输层解决的是数据传输的【可靠性】(TCP协议)和【实时性】(UDP协议)而这两个性质几乎是用户传输时最关键的特性。

传输层把传输的问题解决了之后,应用层便只需要专注于本层到底要传什么样的数据的问题,不需要考虑传输的可靠性或实时性的问题。这样便把问题分解了,把一个大的“通信”问题分解成了若干个小问题,以更好地解决。

数据的可靠性是什么意思?

我们至少得保证以下几点:数据不出错(传过去123,对方收到143肯定是不行的),不重复(传123,对方收到1223也是不行的),不丢失(传123,对方只收到13也不行),不乱序(传123,对方收到321就完了)。

再往下就是网络层了,上面的两层解决的是具体的应用进程之间的数据传输。但是前提是我得在计算机网络中先找到别人对应的主机,才能获得一些服务吧。网络层就是解决这个问题的。

网络层:

提供源主机到目标主机之间的通信服务,解决的是端到端的问题。这一层传输的数据就叫做IP数据报,我提供一个IP数据报发送到网络中,你返回一个IP数据报给我。

在网络层提供的端到端的服务的基础上,传输层再借助网络层提供的服务,实现了细分到进程到进程之间的通信功能。

要注意:IP层提供的服务是尽力保证的,也就是说不能保证不出错。那这样肯定是不行的,没关系。TCP协议就是解决这个问题的,把IP层提供的不可靠服务变成可靠的服务。

网络层的协议:

1,传统的,IP协议和路由选择协议。路由和转发,由路由协议交换路由信息,由路由算法算出路由表。然后由IP协议对到来的分组做转发的处理。

但是这样的作法非常死板,一旦路由器被部署了之后,协议就无法更改和更新。这个协议其实就做两件事,接收分组,转发分组。更不上更新和发展。

2,SDN,软件定义网络。分为数据平面和控制平面。以流表的形式下发分组,多字段匹配 。

再往下,就是数据链路层。

数据链路层:

我们知道,网络层提供的是端到端的服务(end to end),从一个端点到另一个端点,从一个主机到另一个主机。但是不可能直接把两台主机用网线连起来,对吧。它中间要借助很多个节点,数据要跳很多跳,几十跳才能从一个主机真正到达另一台主机。这里的中间设备就是路由器,无数个路由器相连,便能实现地球上所有的计算机之间的通信。

路由器之间的连接就叫做 点到点 的连接(Point to Point),实现两个路由器之间的数据通信服务的协议也叫做P2P(P two P)协议。

再往下一层,物理层。

要实现数据链路层这种点到点之间的数据传输,必须要借助一些转换方法,把要传输的数字信号(比如1234)经过处理变成电信号、光信号或电磁波信号,再把对方再把物理信号经过相反的处理变回数字信号。

所以物理层要做的事就是:把发送的数字信号变成物理信号(0101,高低电平),再把接收到的物理信号转变成数字信号(0101,高低电平)

最后,媒介层(Media),这一层属于第0层。

真实的物理设备,比如电缆,双绞线、光缆,传输物理信号,比如电信号、光信号或电磁波信号,

资料来源:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kuro)

  • 30
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值