【计网】计算机网络底子

打印 上一主题 下一主题

主题 1012|帖子 1012|积分 3036


   当自律变成一种本能的习惯,      你就会享受到它的快乐。        --- 村上春树 ---       

  
1 初识协议

1.1 协议分层

起首,协议是一种约定。就好比使用汉语进行通信,就要遵循汉语的使用约定,不能胡乱遣词造句!
   计算机之间的传输媒介是光信号和电信号.。通过 “频率” 和 “强弱” 来表现 0 和 1 如许的信息。要想传递各种不同的信息, 就需要约定好两边的数据格式,这就是计算机网络协议的本质!
  那么既然是进行计算机的通信,假如每个地区的通信协议不划一,就好比地方上的方言,那么肯定是不可能行的,必须是要推广普通话的。计算机世界也是如许,需要进行一个统一的协议来保证通信的可行性!!!
协议本质也是软件, 在筹划上为了更好的进行模块化, 解耦合, 也是被筹划成为层状结构的!这种分层的结构让维护通信的成本降低,进步效率!
   张三和李四通过电话来进行通信,张三会把汉语协议的信息传给电话,电话再通过电话协议将信息传给李四的电话,李四通过汉语协议理解张三的信息。这就是实现了物理意义的分层:
张三 -> 电话 -> 电话 -> 李四
  如许就是良好的解耦,张三李四不需要思量电话之间是怎样进行通信的,只需要向电话中传入信息或者获取信息!电话不需要管张三李四之间通信的信息怎样理解,只需要做到信息的传递就可以。如许维护起来不就简单多了!!!
  通过上面的简单例子, 我们是能理解, 分层可以实现解耦合, 让软件维护的成本更低。但是现实的网络通信协议, 筹划的会更加复杂, 需要分更多的层。
1.2 OSI七层模型

OSI(Open System Interconnection, 开放体系互连) 七层网络模型称为开放式体系互联参考模型, 是一个逻辑上的界说和规范;


  • 把网络从逻辑上分为了 7 层. 每一层都有相干、 相对应的物理设备, 好比路由器, 交换机;
  • OSI 七层模型是一种框架性的筹划方法, 其最主要的功能使就是帮助不同类型的主机实现数据传输;
  • 它的最大优点是将服务、 接口和协议这三个概念明确地区分开来, 概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的体系不同的网络之间实现可靠的通讯;

但是, 它既复杂又不实用; 以是我们按照 TCP/IP 四层模型来讲解:
TCP/IP 是一组协议的代名词, 它还包罗许多协议, 组成了 TCP/IP 协议簇。TCP/IP 通讯协议采取了 5 层的层级结构, 每一层都呼叫它的下一层所提供的网络来完成本身的需求。
   

  • 物理层: 负责光/电信号的传递方式。物理层的本领决定了最大传输速率、 传输间隔、 抗干扰性等. 集线器(Hub)工作在硬件层面的。这里我们不对其进行探索!
  • 数据链路层: 负责设备之间的数据帧的传送和辨认。 比方网卡设备的驱动、 帧同步(就是说从网线上检测到什么信号算作新帧的开始)。有以太网、 令牌环网,无线 LAN 等标准。交换机(Switch)工作在数据链路层.
  • 网络层: 负责地址管理和路由选择。 比方在 IP 协议中,通过 IP 地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。
  • 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。
  • 应用层: 负责应用步伐间沟通 ,如简单电子邮件传输(SMTP) 、 文件传输协议(FTP) 、 网络远程访问协议(Telnet) 等.。我们的网络编程主要就是针对应用层。
  1.3 TCP / IP协议

为什么要有TCP/IP协议?

  • 起首, 在独立的计算机内部 ,其实都是存在协议的, 好比: 其他设备和内存通信, 会有内存协议;其他设备和磁盘通信, 会有磁盘相干的协议(SATA, IDE, SCSI 等).只不过我们感知不到罢了。 而且这些协议都在本地主机各自的硬件中, 通信的成本低、 不容易出现问题。
  • 而在计算机之间的通信过程中,间隔是比较远的,通信的成本变高了,那么也一定会带来新的问题。 有问题就得办理问题, 以是需要新的协议啦。
   我要发信息到目标主机B:
  

  • 我需要发送信息给B,但是间隔太远了,需要先发送给路由器,这要怎么办?
  • 网上有许多主机,怎样才可以定位并找到B。
  • 假如我发送数据出去了,中途数据丢失了,怎么办?
  • B接收到了数据,他怎么知道我传送的数据要怎样处置处罚呢?
    以是一定需要协议来办理这些问题!TCP/IP协议就是办理方案!
  

无论是windows ,linux 或者安卓,都要遵循如许的协议,如许就能实现不同设备之间的通信!在四层的协议之间中,网络层和传输层是最紧张的,统称为TCP/IP协议。
所谓协议 ,就是通信两边都认识的结构化数据类型!
下面通过快递单来朴素的理解协议:
   小明买了一个新键盘,那么他想要收到的就是键盘。但事实上,快递送达的时间除了键盘,他还会收到一张纪录信息的快递单。这张快递单上储存着各种各样的信息,这些信息是卖家填的,小明和卖家都可以理解这些信息,那么小明就会明确这是他的快递!这张单子是快递公司订定的板式,小明和卖家都是按照规则读取和写入数据。以是这个快递单本质就是一种协议!!!用C语言表现不就是一个结构体吗!!!
我们把“快递单”称之为报头 , “键盘”称之为有效载荷!

  通过协议就可以理解对方发送的信息的含义什么,就可以进行通信了!!!
2 初识局域网

2.1 什么是局域网

起首,两台计算机在一个局域网中,是可以进行直接通信的。就好比在我的世界里的局域网联机,这就答应在同一个局域网中玩家之间可以直接进行通信!!!
我们以上课的例子来理解局域网:
   王老师在教室给同学们上课,教室里有张三,李四,王五,赵六,刘八等同学。忽然王老师说:“张三站起来 , 你作业为什么不交!”,所有同学都听见了这个信息,但只有张三站了起来,其他人不会站起来,因为其他人在听到消息后理解了这条信息的接受者是张三,而不是他们!
同学们听到信息,都提取出了对话目标是张三,再与自身信息进行对比。以是只有张三会站起来!
  张三站起来之后说:“我交了作业,只是你没看罢了”
此时也不会有其他人进行插嘴,因为这是传送给王老师的信息!
  在这个过程中,王老师和同学们同处在一个区域网(教室)中,张三和王老师的对话可以称之为单独对话吗?当然可以,因为两人话语的对象是彼此,虽然其他同学也会听到,但是他们知道消息不是发送给他们的!仅仅是吃瓜群众罢了!!!
王老师和同学们就相当于局域网下的不同主机,为了可以在局域网中判断信息是否是发送给本身的,就需要一个唯一的标识信息来进行判断:


  • 每台主机都要有一个MAC地址!这是唯一的!
2.2 MAC地址

MAC 地址用来辨认数据链路层中相连的节点:


  • 长度为 48 位,及 6 个字节。一般用 16 进制数字加上冒号的情势来表现(比方:08:00:27:03:fb:19)
  • 在网卡出厂时就确定的,不能修改。mac 地址通常是唯一的(虚拟机中的 mac 地址不是真实的 mac 地址,可能会辩论;也有些网卡支持用户配置 mac 地址)。
我们可以查看一下Linux主机的MAC地址:

通信过程中,就会将本身的MAC地址和对方的MAC地址加入到报头中,方便其他计算机的判断!

2.3 局域网通信



  • 以太网中, 任何时间, 只答应一台机器向网络中发送数据
  • 假如有多台同时发送, 会发生数据干扰, 我们称之为数据碰撞。(数据的传输是通过光电信息进行传递的,多个信息回互干系扰!!!)
  • 所有发送数据的主机要进行碰撞检测和碰撞避免
  • 没有交换机的情况下, 一个以太网就是一个碰撞域
  • 局域网通信的过程中, 主机对收到的报文确认是否是发给本身的, 是通过目标mac 地址判断
那么可以看到,这个以太网只答应一台机器进行访问,不就相当于是临界资源吗!但是并不会进行上锁的方式办理,而是通过碰撞检测来进行办理临界问题。发送碰撞就重新进行发送!
每台电脑都可以理解为:用户层,传输层,网络层和数据链路层。假如要进行通信,那么就要从用户层来进行,一层一层的向下传递,传递到网卡,通过网卡将数据发送出去,然后另一台计算机接收到信息,一层一层的向上解包传递!


  • 封装信息的过程,可以理解为不断的用纸盒进行包装,然后贴上快递单(每层的协议)!
  • 解包信息的过程,可以理解为阅读快递单(通过协议进行解包),一层一层的打开包装!

每层只关注本身的信息,都认为是在与对方同层协议进行直接通信!!!
整个结构可以理解为栈结构,封装信息的过程就是不断将信息进行入栈,解包的过程就不断的弹栈!!!以是网络才称之为网络协议栈!
数据在网络中传送,一定最终是要在硬件上进行!!!以是才要进行封装和解包的过程,而不是每次协议直接进行通信!
报头部分, 就是对应协议层的结构体字段, 我们一般叫做报头,除了报头, 剩下的叫做有效载荷:
   报文 = 报头 + 有效载荷
  除了应用层,其他层都需要办理一个问题:本身的有效载荷应该交给上层的哪一种协议?以是协议结构体中都要有一个字段表现上层应该传给哪一个协议!!!
总的来说:通信的过程可以理解为下面一张图

3 简单认识IP地址

假如要进行跨网络通信,就需要IP地址来进行标识!
IP 协议有两个版本, IPv4 和 IPv6. 我们整个的课程, 凡是提到 IP 协议, 没有特别阐明的,默认都是指 IPv4


  • IP 地址是在 IP 协议中, 用来标识网络中不同主机的地址;
  • 对于 IPv4 来说, IP 地址是一个 4 字节, 32 位的整数;
  • 我们通常也使用 “点分十进制” 的字符串表现 IP 地址, 比方 192.168.0.1 ; 用点分割的每一个数字表现一个字节, 范围是 0 - 255;跨网段的主机的数据传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器.
对比 IP 地址和 Mac 地址的区别:
• IP 地址在整个路由过程中, 一直不变(目前, 我们只能如许阐明, 背面在修正)
• Mac 地址一直在变
• 目标 IP 是一种长远目标, Mac 是下一阶段目标, 目标 IP 是路径选择的紧张依据, mac 地址是局域网转发的紧张依据
以后我们会继续深入学习IP,这里只是简单介绍一下!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曂沅仴駦

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表