网络中数据传输过程
我们每天都在使用互联网,我们电脑上的数据是怎么样通过互联网传输到到另外的一台电脑上的呢?
我们知道现在的互联网中使用的TCP/IP协议是基于,OSI(开放系统互联)的七层参考模型的,(虽然不是完全符合)从上到下分别为 应用层 表示层 会话层 传输层 网络层 数据链路层和物理层。其中数据链路层又可是分为两个子层分别为逻辑链路控制层(Logic Link Control,LLC )和介质访问控制层((Media Access Control,MAC )也就是平常说的MAC层。LLC对两个节点中的链路进行初始化,防止连接中断,保持可靠的通信。MAC层用来检验包含在每个桢中的地址信息。在下面会分析到。还要明白一点路由器是在网路层的,而网卡在数据链路层。
我们知道,ARP(Address Resolution Protocol,地址转换协议)被当作底层协议,用于IP地址到物理地址的转换。在以太网中,所有对IP的访问最终都转化为对网卡MAC地址的访问。如果主机A的ARP列表中,到主机B的IP地址与MAC地址对应不正确,由A发往B数据包就会发向错误的MAC地址,当然无法顺利到达B,结 果是A与B根本不能进行通信。
首先我们分析一下在同一个网段的情况。假设有两台电脑分别命名为A和B,A需要相B发送数据的话,A主机首先把目标设备B的IP地址与自己的子网掩码进行“与”操作,以判断目标设备与自己是否位于同一网段内。如果目标设备在同一网段内,并且A没有获得与目标设备B的IP地址相对应的MAC地址信息,则源设备(A)以第二层广播的形式(目标MAC地址为全1)发送ARP请求报文,在ARP请求报文中包含了源设备(A)与目标设备(B)的IP地址。同一网段中的所有其他设备都可以收到并分析这个ARP请求报文,如果某设备发现报文中的目标IP地址与自己的IP地址相同,则它向源设备发回ARP响应报文,通过该报文使源设备获得目标设备的MAC地址信息。为了减少广播量,网络设备通过ARP表在缓存中保存IP与MAC地址的映射信息。在一次 ARP的请求与响应过程中,通信双方都把对方的MAC地址与IP地址的对应关系保存在各自的ARP表中,以在后续的通信中使用。ARP表使用老化机制,删除在一段时间内没有使用过的IP与MAC地址的映射关系。一个最基本的网络拓扑结构:
如果中间要经过交换机的话,根据交换机的原理,它是直接将数据发送到相应端口,那么就必须保有一个数据库,包含所有端口所连网卡的MAC地址。它通过分析Ethernet包的包头信息(其中包含不原MAC地址,目标MAC地址,信息的长度等信息),取得目标B的MAC地址后,查找交换机中存储的地址对照表,(MAC地址对应的端口),确认具有此MAC地址的网卡连接在哪个端口上,然后将数据包发送到这个对应的端口,也就相应的发送到目标主机B上。这样一来,即使某台主机盗用了这个IP地址,但由于他没有这个MAC地址,因此也不会收到数据包。
现在我们讨论两台不在同一个网段中的主机,假设网络中要从主机PC-A发送数据包PAC到PC-C主机中,如下图所示:
PC-A并不需要获取远程主机(PC-C)的MAC地址,而是把IP分组发向缺省网关,由网关IP分组的完成转发过程。如果源主机(PC-A)没有缺省网关MAC地址的缓存记录,则它会通过ARP协议获取网关的MAC地址,因此在A的ARP表中只观察到网关的MAC地址记录,而观察不到远程主机的 MAC地址。在以太网(Ethernet)中,一个网络设备要和另一个网络设备进行直接通信,
除了知道目标设备的网络层逻辑地址(如IP地址)外,还要知道目标设备的第二层物理地址(MAC地址)。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。 数据包在网络中的发送是一个及其复杂的过程,上图只是一种很简单的情况,中间没有过多的中间节点,其实现实中只会比这个更复杂,但是大致的原理是一致的。
(1)PC-A要发送数据包到PC-C的话,如果PC-A没有PC-C的IP地址,则PC-A首先要发出一个dns的请求,路由器A或者dns解析服务器会给PC-A回应PC-C的ip地址,这样PC-A关于数据包第三层的IP地址信息就全了:源IP地址:PC-A,目的ip地址:PC-C。
(2)接下来PC-A要知道如何到达PC-C,然后,PC-A会发送一个arp的地址解析请求,发送这个地址解析请求,不是为了获得目标主机PC-C的MAC地址,而是把请求发送到了路由器A中,然后路由器A中的MAC地址会发送给源主机PC-A,这样PC-A的数据包的第二层信息也全了,源MAC地址:PC-A的MAC地址,目的MAC地址:路由器A的MAC地址,
(3)然后数据会到达交换机A,交换机A看到数据包的第二层目的MAC地址,是去往路由器A的,就把数据包发送到路由器A,路由器A收到数据包,首先查看数据包的第三层ip目的地址,如果在自己的路由表中有去往PC-C的路由,说明这是一个可路由的数据包。 (4)然后路由器进行IP重组和分组的过程。首先更换此数据包的第二层包头信息,路由器PC-A到达PC—C要经过一个广域网,在这里会封装很多广域网相关的协议。其作用也是为了找下一阶段的信息。同时对第二层和第三层的数据包重校验。把数据经过Internet发送出去。最后经过很多的节点发送到目标主机PC_C中。
现在我们想一个问题,PC-A和PC-C的MAC地址如果是相同的话,会不会影响正常的通讯呢!答案是不会影响的,因为这两个主机所处的局域网被广域网分隔开了,通过对发包过程的分析可以看出来,不会有任何的问题。而如果在同一个局域网中的话,那么就会产生通讯的混乱。当数据发送到交换机是,这是的端口信息会有两个相同的MAC地址,而这时数据会发送到两个主机上,这样信息就会混乱。因此这也是保证MAC地址唯一性的一个理由。
我暂且按我的理解说说吧。
先看一下计算机网络OSI模型的七个层次:
┌—————┐
│ 应用层 │←第七层
├—————┤
│ 表示层 │
├—————┤
│ 会话层 │
├—————┤
│ 传输层 │
├—————┤
│ 网络层 │
├—————┤
│数据链路层│
├—————┤
│ 物理层 │←第一层
└—————┘
而我们现在用的网络通信协议TCP/IP协议者只划分了四成:
┌—————┐
│ 应用层 │ ←包括OSI的上三层
├—————┤
│ 传输层 │
├—————┤
│ 网络层 │
├—————┤
│网络接口层 │←包括OSI模型的下两层,也就是各种不同局域网。
└—————┘
两台计算机通信所必须需要的东西:IP地址(网络层)+端口号(传送层)。
两台计算机通信(TCP/IP协议)的最精简模型大致如下:
主机A---->路由器(零个或多个)---->主机B
举个例子:主机A上的应用程序a想要和主机B上面的应用程序b通信,大致如下
程序a将要通信的数据发到传送层,在传送层上加上与该应用程序对应的通信端口号(主机A上不同的应用程序有不同的端口号),如果是用的TCP的话就加上TCP头部,UDP就加上UDP头部。
在传送成加上头部之后继续向往下传到网络层,然后加上IP头部(标识主机地址以及一些其他的数据,这里就不详细说了)。
然后传给下层到数据链路层封装成帧,最后到物理层变成二进制数据经过编码之后向外传输。
在这个过程中可能会经过许多各种各样的局域网,举个例子:
主机A--->(局域网1--->路由器--->局域网2)--->主机B
这个模型比上面一个稍微详细点,其中括号里面的可以没有也可能有一个或多个,这个取决于你和谁通信,也就是主机B的位置。
主机A的数据已经到了具体的物理介质了,然后经过局域网1到了路由器,路由器接受主机A来的数据先经过解码,还原成数据帧,然后变成网络层数据,这个过程也就是主机A的数据经过网络层、数据链路层、物理层在路由器上面的一个反过程。
然后路由器分析主机A来的数据的IP头部(也就是在主机A的网络层加上的数据),并且修改头部中的一些内容之后继续把数据传送出去。
一直到主机B收到数据为止,主机B就按照主机A处理数据的反过程处理数据,直到把数据交付给主机B的应用程序b。完成主机A到主机B的单方向通信。
这里的主机A、B只是为了书写方便而已,可能通信的双方不一定就是个人PC,服务器与主机,主机与主机,服务器与服务器之间的通信大致都是这样的。
再举个例子,我们开网页上百度:
就是我们的主机浏览器的这个应用程序和百度的服务器之间的通信。应用成所用的协议就是HTTP,而服务器的端口号就是熟知端口号80.
大致过程就是上面所说,其中的细节很复杂,任何一个细节都可以写成一本书,对于非专业人员也没有必要深究。
网络传输是指用一系列的线路(光纤,双绞线等)经过电路的调整变化依据网络传输协议来进行通信的过程。其中网络传输需要介质,也就是网络中发送方与接收方之间的物理通路,它对网络的数据通信具有一定的影响。常用的传输介质有:双绞线、同轴电缆、光纤、无线传输媒介。网络协议即网络中(包括互联网)传递、管理信息的一些规范。如同人与人之间相互交流是需要遵循一定的规矩一样,计算机之间的相互通信需要共同遵守一定的规则,这些规则就称为网络协议。网络协议通常被分为几个层次,通信双方只有在共同的层次间才能相互联系。
中文名 网络传输
传输介质 光纤,双绞线
别 称 传输媒体
分 类 导向传输介质和非导向传输介质
简介
传输介质又称为传输媒体。分为导向传输介质和非导向传输介质。导向传输介质有:金属导体和光纤导体等有线形式。非导向传输介质有:短波、微波、蓝牙、卫星和光波等无线电波,为无线传输形式。
一、双绞线电缆(TP):
将一对以上的双绞线封装在一个绝缘外套中,为了降低信号的干扰程度,电缆中的每一对双绞线一般是由两根绝缘铜导线相互扭绕而成,也因此把它称为双绞线。双绞线分为非屏蔽双绞线(UTP)和屏蔽双绞线(STP)。
市面上出售的UTP分为3类,4类,5类和超5类、6类五种:
3类:传输速率支持10Mbps,外层保护胶皮较薄,皮上注有“cat3”
4类:网络中不常用
5类(超5类):传输速率支持100Mbps或10Mbps,外层保护胶皮较厚,皮上注有“cat5”
超5类双绞线在传送信号时比普通5类双绞线的衰减更小,抗干扰能力更强,在100M网络中,受干扰程度只有普通5类线的1/4,在较长传输距离时,表现出很好的性能。
6类:一般在千兆网络中使用。
STP分为3类和5类两种,STP的内部与UTP相同,外包铝箔,抗干扰能力强、传输速率高但价格昂贵。
双绞线一般用于星型网的布线连接,两端安装有RJ-45头(水晶头),连接网卡与集线器,最大网线长度为100米,如果要加大网络的范围,在两段双绞线之间可安装中继器,最多可安装4个中继器,如安装4个中继器连5个网段,最大传输范围可达500米。
同轴电缆:
由一根空心的外圆柱导体和一根位于中心轴线的内导线组成,内导线和圆柱导体及外界之间用绝缘材料隔开按不同形式,可分为粗缆和细缆两种:
粗缆:传输距离长,性能好但成本高、网络安装、维护困难,一般用于大型。
局域网的干线,连接时两端需终接器。
(1)粗缆与外部收发器相连。
(2)收发器与网卡之间用AUI电缆相连。
(3)网卡必须有AUI接口(15针D型接口):每段500米,100个用户,4个中继器可达250米,收发器之间最小2.5米,收发器电缆最大50米。
细缆:与BNC网卡相连,两端装50欧的终端电阻。用T型头,T型头之间最小0.5米。细缆网络每段干线长度最大为185米,每段干线最多接入30个用户。如采用4个中继器连接5个网段,网络最大距离可达925米。
细缆安装较容易,造价较低,但日常维护不方便,一旦一个用户出故障,便会影响其他用户的正常工作。
根据传输频带的不同,可分为基带同轴电缆和宽带同轴电缆两种类型:
基带:数字信号,信号占整个信道,同一时间内能传送一种信号。
宽带:可传送不同频率的信号。
光纤
是由一组光导纤维组成的用来传播光束的、细小而柔韧的传输介质。应用光学原理,由光发送机产生光束,将电信号变为光信号,再把光信号导入光纤,在另一端由光接收机接收光纤上传来的光信号,并把它变为电信号,经解码后再处理。与其它传输介质比较,光纤的电磁绝缘性能好、信号衰小、频带宽、传输速度快、传输距离大。主要用于要求传输距离较长、布线条件特殊的主干网连接。
分为单模光纤和多模光纤:
单模光纤:由激光作光源,仅有一条光通路,传输距离长,2千米以上。
多模光纤:由二极管发光,低速短距离,2千米以内。
网络传输的单位是MBPS,你电脑右下面的连接速度有写。它表示的是一秒传输的信号的频率,但是这频率不是我们平常说得byte(简称B),B表示的是文件的占据的空间,是大小的意思。
1T=1024GB=1,048,576MB=107,374,1824KB=1,099,511,627,776B(byte)。
1GB=1024MB=1,048,576KB=107,374,1824B。
1MB=1024KB=1,048,576B。
1KB=1024B
1byte=8 bit
1 bit=1位的二进制数(这也就是我们常说为什么计算机只处理0和1的原意)。
内容
在日常网络传输中大致1mbps=1秒125KB(1\8换算) 文件传输速度,也就是我们所说的1兆网络带宽可下载只有128KB每秒的原因。
网络协议即网络中(包括互联网)传递、管理信息的一些规范。如同人与人之间相互交流是需要遵循一定的规矩一样,计算机之间的相互通信需要共同遵守一定的规则,这些规则就称为网络协议。
一台计算机只有在遵守网络协议的前提下,才能在网络上与其他计算机进行正常的通信。网络协议通常被分为几个层次,每层完成自己单独的功能。通信双方只有在共同的层次间才能相互联系。常见的协议有:TCP/IP协议、IPX/SPX协议、NetBEUI协议等。在局域网中用得的比较多的是IPX/SPX.。用户如果访问Internet,则必须在网络协议中添加TCP/IP协议。
TCP/IP是“transmission Control Protocol/Internet Protocol”的简写,中文译名为传输控制协议/互联网络协议)协议,TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式。TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的标准方法。在数据传送中,可以形象地理解为有两个信封,TCP和IP就像是信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在该信封面上记录有分段号的信息,再将TCP信封塞入IP大信封,发送上网。在接受端,一个TCP软件包收集信封,抽出数据,按发送前的顺序还原,并加以校验,若发现差错,TCP将会要求重发。因此,TCP/IP在INTERNET中几乎可以无差错地传送数据。 对普通用户来说,并不需要了解网络协议的整个结构,仅需了解IP的地址格式,即可与世界各地进行网络通信。
IPX/SPX是基于施乐的XEROX’S Network System(XNS)协议,而SPX是基于施乐的XEROX’S SPP(Sequenced Packet Protocol:顺序包协议)协议,它们都是由novell公司开发出来应用于局域网的一种高速协议。它和TCP/IP的一个显著不同就是它不使用ip地址,而是使用网卡的物理地址即(MAC)地址。在实际使用中,它基本不需要什么设置,装上就可以使用了。由于其在网络普及初期发挥了巨大的作用,所以得到了很多厂商的支持,包括microsoft等,很多软件和硬件也均支持这种协议。
NetBEUI即NetBios Enhanced User Interface ,或NetBios增强用户接口。它是NetBIOS协议的增强版本,曾被许多操作系统采用,例如Windows for Workgroup、Win 9x系列、Windows NT等。NETBEUI协议在许多情形下很有用,是WINDOWS98之前的操作系统的缺省协议。总之NetBEUI协议是一种短小精悍、通信效率高的广播型协议,安装后不需要进行设置,特别适合于在“网络邻居”传送数据。所以建议除了TCP/IP协议之外,局域网的计算机最好也安上NetBEUI协议。另外还有一点要注意,如果一台只装了TCP/IP协议的WINDOWS98机器要想加入到WINNT域,也必须安装NetBEUI协议。
各种协议:
A、ARP(地址解析协议Address Resolution Protocol)
B、BGP(边缘网关协议 Border Gateway Protocol)
BlueTooth(蓝牙(Blue Tooth)
BOOTP(自举协议 Bootstrap Protocol)
D、DHCP(动态主机配置协议Dynamic Host Configuration Protocol)
DNS(域名服务Domain Name Service)
DVMRP(距离矢量组播路由选择协议Distance-Vector Multicast Routing Protocol)
E、EGP(Exterior Gateway Protocol)
F、FTP(文件传输协议File Transfer Protocol) 21端口
H、HDLC(高级数据链路控制协议High-level Data Link Control)
HELLO(routing protocol)
HTTP超文本传输协议80端口
HTTPS安全超级文本传输协议
I、ICMP(互联网控制报文协议 Internet Control Message Protocol)
IDRP(InterDomain Routing Protocol)
IEEE802
IGMP(Internet Group Management Protocol)
IGP(内部网关协议Interior Gateway Protocol )
IMAP(交互式邮件存取协议Internet Mail Access Protocol)
IP(互联网协议Internet Protocol)
IPX(Internetwork Packet Exchange protocol)
IS-IS(Intermediate System to Intermediate System Protocol)
L、LCP(链路控制协议Link Control Protocol)
LLC(逻辑链路控制协议Logical Link Control)
M、MLD(多播监听发现协议 Multicast Listener Discovery)
N、NCP(网络控制协议 Network Control Protocol)
NNTP(网络新闻传输协议Network News Transfer Protocol) 119
NTP(Network Time Protocol)
P、PPP(点对点协议Point-to-Point Protocol)
POP(邮局协议Post Office Protocol) 110
R、RARP(逆向地址解析协议Reverse Address Resolution Protocol)
RIP(路由信息协议Routing Information Protocol)
S、SLIP(串行链路连接协议Serial Link Internet Protocol)
SNMP(简单网络管理协议Simple Network Management Protocol) Agent:161 Manager:162
SMTP(简单邮件传输协议Simple Mail Transport Protocol) 25
T、TCP(传输控制协议Transmission Control Protocol)
TFTP(Trivial File Transfer Protocol)
Telnet(远程终端协议 remote terminal protocol) 23
U、UDP(用户数据包协议User Datagram Protocol)。
USB通用串行总线
X、X.25
安全传输编辑
加密算法:通用的加密算法主要分为对称和非对称算法。对称算法采用相同的密钥进行加密和解密。常用的对称加密算法有AES、IDEA、RC2/RC4、DES等,其最大的困难是密钥分发问题,必须通过当面或在公共传送系统中使用安全的方法交换密钥。对称加密由于加密速度快、硬件容易实现、安全强度高,因此仍被广泛用来加密各种信息。但对称加密也存在着固有的缺点:密钥更换困难,经常使用同一密钥进行数据加密,给攻击者提供了攻击密钥的信息和时间。非对称算法,采用公钥进行加密而利用私钥进行解密。公钥是可以公开的,任何人都可以获得,数据发送人用公钥将数据加密后再传给数据接收人,接收人用自己的私钥解密。非对称加密的安全性主要依赖难解的数学问题,密钥的长度比对称加密大得多,因此加密效率较低,主要使用在身份认证、数字签名等领域。非对称加密的加密速度慢,对于大量数据的加密传输是不适合的。非对称加密算法包括RSA、DH、EC、DSS等。目前比较流行的、最有名的非对称加密算法是RSA。
RSA的安全性在于大整数因子分解的难度,其体制构造是基于数论的欧拉定理,产生公开密钥和秘密密钥的方法为:
(1)取2个互异的大素数p和q;
(2)计算n=p×q;
(3)随机选取整数e,且e与(p-1)×(q-1)互为素数;
(4)另找一个数d,使其满足(e×d)mod[(p-1)×(q-1)]=1;(n,e)即为公钥;(n,d)为私钥。对于明文M,用公钥(n,e)加密可得到密文C,C=Me mod n;对于密文C,用私钥(n,d)解密可得到明文M,M=Cd mod n。
利用当今可预测的计算能力,在十进制下,分解2个250位质数的积要用数十万年的时间,并且质数用尽或2台计算机偶然使用相同质数的概率小到可以被忽略。由此可见,企图利用公钥和密文推断出明文或者企图利用公钥推断出私钥的难度极其巨大,几乎是不可行的。因此,这种机制为信息传输提供了很高的安全保障。
由上述内容可以发现,无论是对称加密和非对称加密的过程都是完成如下的过程:
(1)产生密钥key;
(2)C=F(M,Key),即使用已经产生的密钥,通过加密算法将明文转换为密文。
(3)数据传输;
(4)M=F’(C,key),即接收方使用解密算法,将密文转换为明文。
如果需要传输的明文数据庞大,则加密和解密的算法的耗时将非常长,并且数据传输时也会占用大量的网络资源。也就是以上的(2),(3),(4)三个过程都会占用大量的时间和资源,如果能够降低这3个过程的时间,就会节省大量的资源,提高数据传输的效率。通过使用哈夫曼编码对文件进行压缩,就可以大大降低以上3个环节的处理时间,并同时在传输处理过程中减少计算机资源和网络资源的占用。
哈夫曼编码介绍
哈夫曼编码是20世纪50年代由哈夫曼教授研制开发的,它借助了数据结构当中的树型结构,在哈夫曼算法的支持下构造出一棵最优二叉树,把这类树命名为哈夫曼树。因此,准确地说,哈夫曼编码是在哈夫曼树的基础之上构造出来的一种编码形式,它的本身有着非常广泛的应用。
双绞线
双绞线分为T568-A和T568-B
T568-A:白绿绿,白橙蓝,白蓝橙,白棕棕;
T568-B:白橙橙,白绿蓝,白蓝绿,白棕棕
一般不经过服务器的,因为交换机就支持通信的多种协议
你发一个数据包,在交换机那里就给你广播出去了,经过多次数据交换,就到对方计算机里边了。
传输什么数据,或使用软件,上网站
互联网连接了世界上不同国家与地区无数不同硬件、不同操作系统与不同软件的计算机,为了保证这些计算机之间能够畅通无阻地交换信息,必须拥有统一的通信协议。
作为一个通信协议,要提供数据传输目的地址和保证数据迅速可靠传输的措施,这是因为数据在传输过程中很容易丢失或传错,所以互联网上就使用TCP/IP作为一个标准的通信协议。
TCP/IP协议所采用的通信方式是分组交换方式。就是数据在传输时分成若干段,每个数据段称为一个数据包,TCP/IP协议的基本传输单位是数据包,TCP/IP协议主要包括两个主要的协议,即TCP协议和IP协议,这两个协议可以联合使用,也可以与其他协议联合使用,它们在数据传输过程中主要完成以下功能:
首先由TCP协议把数据分成若干数据包,给每个数据包写上序号,以便接收端把数据还原成原来的格式。
IP协议给每个数据包写上发送主机和接收主机的地址,一旦写上源地址和目的地址,数据包就可以在网上传送数据了。
这些数据包可以通过不同的传输途径(路由 )进行传输,由于路径不同,加上其它的原因,可能出现顺序颠倒、数据丢失、数据失真甚至重复的现象。这些问题都由 TCP协议来处理,它具有检查和处理错误的功能,必要时还可以请求发送端重发。换句话说,IP协议负责数据的传输,而TCP协议负责数据的可靠传输。