一、通信与网络

通信的概念我们并不陌生,在人类社会的起源和发展过程中,通信就直伴随着我们。般认为, 20世纪七、八十年代,人类社会已进入到信息时代,对于生活在信息时代的我们,通信的必要性和重要性更是不言而喻的。

通信古已有之,“烽火戏侯“鸿雁传书”“八百里急报"等这些大家耳熟能详的故事就是与古代的通信技术紧密相关的。但今天我们所说的通信,- 般是指电报、 电话、广播、电视、网络等现代化的通信技术。而本书中所说的通信,如无特别说明,则是指通过诸如互联网这样的计算机网络所进行的通信,亦即网络通信。

1.1 什么是通信

“通信”一 词中,“通”者,传递与交流也:“信”者,信息也。所谓通信,就是指人与人、人与物、物与物之间通过某种媒介和行为进行的信息传递与交流。通信技术的最终目的是为了帮助人们更好地沟通和生活。

1.2一些常见的术语

术语 解释和说明

数据载荷    根据快递服务的比喻,我们将数据载荷理解为最终想要传递的信息。而实际上, 在具有层次化结构的网络通信过程中,上一层协议传递给下一层协议的数据单元(报文)都可以称之为下一层协议的数据载荷

报文           报文是网络中交换传输的数据单元,它具有定的内在格式并通常都具有头部+

数据载荷+尾部的基本结构。在传输过程中,报文的格式和内容可能会发生改变

头部           为了更好地传递信息,在组装报文时,在数据载荷的前面添加的信息段统称为报文的头部

尾部           为了更好地传递信息,在组装报文时,在数据我荷的后面添加的信息段统称为报文的尾部。注意,很多报文是没有尾部的

封装           对数据载荷添加头部和尾部,从而形成新的报文的过程

解封装        解封装是封装的逆过程,也就是去掉报文的头部和尾部,获取数据我荷的过程

网关            网关是在采用不同体系结构或协议的网络之间进行互通时,用于提供协议转 换、路由选择、数据交换等功能的网络设备。网关是种根据其部界位置和功能而命名的术语,而不是种特定的设备类型

路由器        简单地讲,路由器就是为报文选择传递路径的网络设备。后续的学习会使读者对路由器的理解更加深入而全面

二、OSI模型和TCP/IP模型

对OSI参考模型中各层功能的进步补充解释如下。

(1)物理层实现了逻辑上的数据与可以感知和测量的光/电信号之间的转换。物理层功能是通信过程的基础。物理层关注的是单个“0”和“1”的发送、传输和接收。

(2)数据链路层实现了有内在结构和意义的连串的“0”和“1”的发送和接收。如果没有数据链路层,则通信的双方只能看到不断变化的光电信号,并从中识别出一连串的“0”和“1",但却不能将这些“0”和“1”组织起来,形成有意义、可理解的数据。

(3)数据连路层实现的是数据在相邻节点之间的(这里的“相邻节点”是指其间不跨越任何路由节点)、局部性的直接传递,局域网技术便是聚焦在数据链路层及其下面的物理层。而网络层需要实现的则是任意两个节点之间的、全局性的数据传递。

(4)两个人在谈话交流时,如果个人说得太快,另一个人通常会说:“你说慢点。”“你说慢点”这句话的作用其实是在控制谈话交流的速度。如果?个人在听对方说话时,有的话没有听清楚,通常就会说:“对不起,刚才没听清楚,你再说遍。” ...你再说一:遍”这句话其实是在提高谈话交流的可靠性。传输层的某些功能非常类似于“你说慢点”“你说快点”“请再说遍”等起的作用。

(5)我们上网请求某种网络服务时,由于输错了账号/密码,结果服务请求被拒绝。服务提供方对我们输入的账号/密码进行了验证,发现有问题,于是立即终止了接下来的通信过程。服务提供方进行的账号/密码验证并关闭通信过程的操作,便是会活层的功能之一。

(6)我们平时常用的rar压缩解压工具所起的作用,就是表示层的典型功能之。文件发送方为了减少对网络带宽资源的使用,将原始文件进行了压缩后再进行发送。如果接收方不对收到的压缩文件进行解压,就无法识别和理解所发送的原始文件的真正内容。总之,表示层的作用就是使得通信双方的应用层能够识别和理解对方应用层发送过来的数据。

(7) OSI模型中的应用层(第七层),其实是指“系统应用层”。在“系统应用层”之上,其实还有一层(第八层),称为“用户应用层(User-defined Aplication Layer)",但是

“用户应用层”已经不属于OSI模型的范畴。HTTP SMTP (Simple Mail Transfer Protocol)、FTP、SNMP (Simple Network Management Protocol)等协议模块本是属于TCP/IP协议簇的(下面马上会讲到TCP/IP),如果我们把这些协议模块看成是属于OSI模型的协议模块的话,那么这些协议模块就位于OSI的“系统应用层”。而像Netscape、IE(Intermet Explorer)等这些不同的网络浏览器软件就位于OSI的“用户应用层”,但它们都会调用“系统应用层”中的HTTP模块:像Foxmail、Outlook等这些不同的E mail收发软件也位于OSI的“用户应用层”,但它们都会调用“系统应用层”中的SMTP模块。

 TCP/P模型与OSI模型在层次的划分上稍有差异,但这种层次划分上的差异并不是二者之间的主要差别。TCP/IP模型与OSI模型的主要差别在于二者所使用的具体协议的不同。图下列出了TCP/IP模型与OSI模型各自所使用的部分协议。 

读者可能会发现,OSI模型所使用的那些协议显得非常陌生,而TCP/IP模型所使用的那些协议则相对比较熟悉。为什么会是这样呢?原来,诸如Internet 等现实中的网络的设计与实现,使用的几乎全都是TCP/IP协议簇,而不是OSI协议簇。

在OSI模型中,我们习惯把每层的数据单元都称为“协议数据单元(ProtocolDataUnit, PDU)”。例如,第六层的数据单元称为L6 PDU,第三层的数据单元称为L3 Pdu,其中的L代表“层(Layer)”。

在TCP/IP模型中,我们习惯把物理层的数据单元称为“比特(Bit)"; 把数据链路层的数据单元称为“帧(Frame)";把网络层的数据单元称为“分组或包(Packet)”。 对于传输层,我们习惯把通过TCP封装而得到的数据单元称为“段(Segment)”,即“TCP段(TCP Segment)”;把通过UDP封装而得到的数据单元称为“报文(Datagram)”,即“UDP报文(UDP Datagram)”。对于应用层,我们习惯把通过HTTP封装而得到的数据单元称为“HTTP报文(HTTP Datagram)”,把通过FTP封装而得到的数据单元称为“FTP报文(FTP Datagram)”,如此等等。

三、网络类型

3.1局域网和广域网

 根据不同的划分原则,网络可以分为不同的类型。如果按照地理覆盖范围来划分,则网络可以分为局域网(Local Area Network, LAN)和广域网(Wide Area Network,WAN)。下表给出了二者的比较。 

3.2网络拓扑形态

 除了可以依据地理覆盖范围来划分网络类型之外,我们还可以根据网络的拓扑形态来划分网络类型。网络拓扑是网络结构的种图形化展现方式,下表给出了各种拓扑形态的网络类型。 

四、传输介质及通讯方式

通信过程中所使用的物理信号必须通过某种Medium才能传递。Medium词通常翻译为“介质”“媒体”“媒介”“媒质”等。多媒体通信中也会使用到“媒体(Medium)”一词,但其中的“媒体”指的是信息的表现形式(如:声音、图像、视频、文本等)。为避免产生歧义,本书中将只使用“介质”或“传输介质"来指代光/电信号在其上进行传输的物理介质。

另外,如果有人问你:“通信方式是指什么?”你定会觉得茫然而不知所问。“通信方式”一词的外延太广,光通信与电通信,无线通信与有线通信,单播通信与广播通信、同步通信与异步通信等,说的都是不同的通信方式。本节所说的通信方式,指的是串行通信与并行通信方式,单工、半双工以及全双工通信方式。

4.1传输介质

现代通信技术所使用的物理信号主要是光、电信号,所使用的传输介质主要有空间、金属导线和玻璃纤维三大类。

空间这类传输介质主要用来传递电磁波。从通信的角度来看,空间类传输介质又可分为真空和空气两种介质。电磁波在真空中的传播速度为299792458m/s(也即“光速”);电磁波在空气中的传播速度非常接近光速,大约为299 705 000m/s。

金属导线主要用来传递电流、电压信号。在金属导线这类传输介质中,主要使用的是铜线。电流、电压信号在铜线上的传播速度也非常接近光速。网络通信中经常使用到两种结构不同的铜线,一种 是同轴电缆,另种是双绞线。

我们通常所说的“光纤”,其实就是一种玻璃纤维,它是用来传递光信号的(从本质上讲,光就是一种波长在特定范围内的电磁波)。光在光纤中的传播速度大约只有光速的2/3,约为200 000 000 m/s。

接下来,我们将分别简单介绍一下同轴电缆、双绞线和光纤这3种传输介质。

1.同轴电缆

同轴电缆中的铜导线才是用来传输电流、电压信号的,铜网屏蔽层的作用是抵御环境中的电磁辐射对所传输的电流、电压信号的干扰。有线电视网络系统广泛地使用了同轴电缆作为传输介质。早期的以太网是总线型网络,所使用的总线便是同轴电缆。目前,以太网已经演化为种星型网络,不再使用同轴电缆,而是使用双绞线或光纤。

2.双绞线

双绞线(Twisted Pair)的名称源自于通信中所使用的铜导线通常是缠绕捆绑在一起的双绞方式。根据电磁学原理,双绞方式的导线可以较好地抵御环境电磁辐射对导线中传递的电流、电压的干扰。

依据是否包含了屏蔽层,双绞线可分为屏蔽双绞线( Shielded Twisted Pair, STP)和无屏蔽双绞线(Unshielded Twisted Pair, UTP) 两种,这两种双绞线的结构和实物外观分别如图1-12和图1-13 所示。从图1-12和图1-13可以看到,双绞线内的8根铜线两两相互缠绕,形成4组线对,或称4个绕组。显然,由于省去了屏蔽层,UTP比STP要便宜一些,但是抗干扰能力也会弱些。不过,除了某些特殊场合(如电磁辐射比较严重,或对信号传输质量要求较高等)需要使用STP外,一般情况下都可以使用UTP。

3.光纤

我们平时所说的光网络(或光传输网络、光通信网络),是指以光导纤维(简称光纤)作为传输介质的网络通信系统。这里的光导纤维,其实是一种玻璃纤维。在光网络通信系统中,光纤中传递的是一种波长在红外波段的、肉眼不可见的红外光。

光纤外面加上若干保护层后,便是我们通常所说的光缆(Optical Fiber Cable)。- - 条光缆中可以包含根光纤,也可以包含多根光纤。 图1-15 示意了光纤/光缆的基本结构和实物外观。注意,外套、加强材料、缓冲层等都只是光纤的保护层,真正的光纤(光导纤维)指的是纤芯和覆层。纤芯和覆层的材质均是玻璃,所不同的是覆层玻璃体的折射系数约小于纤芯玻璃体的折射系数。

4.2传输方式

1.串行通信与并行通信

串行通信是指在一条数据通道上, 将数据-位-位(比特比特)地依次传输的通信方式。串行通信一次只能传输一个“0”或一个“1”。RS-232 线路上的通信方式就是一种串行通信方式。

并行通信是指在一组数据通道上, 将数据组-组地依次传输的通信方式。并行通信一次能够传输多个“0”和“1”。并行通信中,每一条数据通道上的传输原理都与串行通信类似。通常,并行通信是以字节为单位来进行传输的。计算机与数字投影仪之间的通信方式就是一种并行通信方式。

并行通信虽然可以大幅提升传输速率,但是也存在一些问题。 例如,并行通信需要更多的数据通道,也就是需要更多的铜线或光纤,这无疑会增加网络的建设成本。另外,并行通信中,各数据通道上的信号同步要求非常苛刻。我们可以看一个例子,如图1-18所示,PCI通过并行通信方式向PC2发送了两组数据。由于干扰或者别的什么原因,导致了数据1的第一位“1”比数据1的其他7位稍微晚了点到达PC2,于是PC2便会认为这-位已经丢失。然后,数据1的第一位“1”与数据2的第二位至第八位的到达时间几乎一致,于是PC2就会将数据1的第一位“1”当成是数据2的第一位,这样就产生了严重的误码情况。

 2.单工、半双工、全双工通信方式
根据通信的指向性的不同,通信可以分为单工( Simplex)通信方式、半双工(Half-duplex )通信方式和全双工(Ful-duplex)通信方式。 

单工方式中,信息的流向只能由一方指向另一方。在图1-19所示的单工通信方式中,信息只能从A流向B,而不能从B流向A。也就是说,A只能向B发送数据,而B只能接收来自A的数据。广播通信系统、传统的模拟电视系统等都是单工通信方式的例子。

半双工方式中,信息的流向可以从A到B,也可以从B到A,但信息不能同时在两个方向上进行传递。也就是说,当A发送数据时,B只能接收数据:当B发送数据时,A只能接收数据。如果A和B同时发送数据,则通信双方都不能成功接收到对方发送的数据。对讲机系统就是半双工通信方式的例子。

全双工方式中,信息可以同时在两个方向上进行传递。也就是说,A、B双方可以同时发送并接收数据。当A发送数据时,可以接收B正在发送的数据,反之亦然。我们平时所使用的固定电话通信系统和移动电话通信系统,都是全双工通信方式的例子。

HCNA之网络通信基础的更多相关文章

  1. Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器    定义:       ...

  2. Android 学习笔记之网络通信基础+WebView....

    PS:加快学习进度...下周一完成Android网络通信...然后正式进入实战... 学习内容: 1.Android中Http基础... 2.Android中的Socket基础... 3.Androi ...

  3. C# 网络通信基础 总结

    1.WebClient类 如果只是想从特定的URI(统一资源标识符)请求文件,则可以使用最简单的.NET类,System.Net.WebClient.支持http:.https:和file:标识符开头 ...

  4. HCNA(一)网络传输介质

    一 .同轴线缆 介绍:同轴线缆是一种早期的网络传输介质,同轴电缆的得名与它的结构相关,由内导体.外导体.绝缘介质和防护套四部分组成.同样支持10Mbps传输速率.现在已经基本被淘汰,不在应用于企业网络 ...

  5. Java网络通信基础编程

    一.同步阻塞方式(BIO) 方式一: 服务器端(Server): package com.ietree.basicskill.socket.mode1; import java.io.IOExcept ...

  6. HCNA网络技术学习指南

    网络通信基础 网络与通信 OSI模型和TCP/IP模型 网络类型 传输介质及通信方式 2 VRP基础 VRP简介 VRP命令行 登录设备 基本配置 配置文件管理 通过Telnet登录设备 文件管理 基 ...

  7. Python面向对象进阶和socket网络编程-day08

    写在前面 上课第八天,打卡: 为什么坚持?想一想当初: 一.面向对象进阶 - 1.反射补充 - 通过字符串去操作一个对象的属性,称之为反射: - 示例1: class Chinese: def __i ...

  8. 网络编程api bind函数细节 select 细节

    struct sockaddr_in bindaddr; bindaddr.sin_family = AF_INET; bindaddr.sin_addr.s_addr = htonl(INADDR_ ...

  9. Linux C高级编程——网络编程基础(1)

    Linux高级编程--BSD socket的网络编程 宗旨:技术的学习是有限的,分享的精神是无限的. 一网络通信基础 TCP/IP协议簇基础:之所以称TCP/IP是一个协议簇,是由于TCP/IP包括T ...

随机推荐

  1. 每日一练之大整数加法(P1255 数楼梯)

    走楼梯走一步还是两步的问题其实就是斐波那契数列(F(n)=F(n-1)+F(n-2),而在int型范围内存在45个相异的数,题干说明楼梯总数可以为5000,则考虑使用字符串进行存储.当两个数相加产生进 ...

  2. Loadrunner 50个Vusers并发创建3000个账号脚本调试以及场景运行

    目标:用50个并发用户创建3000个账号到HP Web Server 分析: 1. Vugen录制脚本时,打开首页http://127.0.0.1:1080/WebTours/,进入注册账号界面不用重 ...

  3. c# linq 汇总

    例子:List<string> list = new List<string>(); list.Add("1 a");list.Add("2 b& ...

  4. IDEA中显示RunDashboard

    在打开.idea/workspace.xml,找到RunDashboard的配置,添加红色字体内容 <component name="RunDashboard"> &l ...

  5. jmeter学习笔记--线程组

    jmeter组件:线程组 是什么? 进程:一个正在执行的程序对应一个进程 线程:进程中的执行线索(一个进程中有多个执行线索) 线程组:按照线程性质对线程进行分组 并发执行:多个线程同时进行    特点 ...

  6. Ganglia监控扩展实现机制

    Ganglia监控扩展实现机制 默认安装完成的Ganglia仅向我们提供基础的系统监控信息,通过Ganglia插件可以实现两种扩展Ganglia监控功能的方法.1.添加带内(in-band)插件,主要 ...

  7. CentOS7 PHP+Redis实现Session共享

    先yum简单的安装redis wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/epel-7.repo ...

  8. HTTP 错误码

    HTTP 400 – 请求无效 HTTP 401.1 – 未授权:登录失败 HTTP 401.2 – 未授权:服务器配置问题导致登录失败 HTTP 401.3 – ACL 禁止访问资源 HTTP 40 ...

  9. L3-021 神坛(极角排序求三角形最小面积)

    在古老的迈瑞城,巍然屹立着 n 块神石.长老们商议,选取 3 块神石围成一个神坛.因为神坛的能量强度与它的面积成反比,因此神坛的面积越小越好.特殊地,如果有两块神石坐标相同,或者三块神石共线,神坛的面 ...

  10. java mail 接收邮件

    package com.mw.utils; import com.mw.bean.SmsAlarmLogBean; import javax.mail.*; import javax.mail.int ...