常见的网络协议
摘要:网络协议是操纵计算机在网络介质上进行信息交换的规则和约定。网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它规定了通信时信息必须采纳的格式和这些格式的意义。大多数网络都采纳分层的体系结构,每一层都建立在它的下层之上,向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽。在网络的各层中存在着许多协议,接收方和发送方同层的协议必须一致,否则一方将无法识不另一方发出的信息。网络协议使网络上各种设备能够相互交换信息。常见的协议有:TCP/IP协议、IPX/SPX协议、NetBEUI协议等。
1 IP协议
1.1 IP协议简介
IP是英文Internet Protocol(网络之间互连的协议)的缩写,中文简称为“网协”,也确实是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守 IP协议就能够与因特网互连互通。正是因为有了IP协议,因特网才得以迅速进展成为世界上最大的、开放的计算机通信网络。因此,IP协议也能够叫做“因特网协议”。通俗的讲:IP地址也能够称为互联网地址或Internet地址。是用来唯一标识互联网上计算机的逻辑地址。每台连网计算机都依靠IP地址来标识自己。就专门类似于我们的电话号码样的。通过电话号码来找到相应的使用电话的客户的实际地址。全世界的电话号码差不多上唯一的。
IP地址也是一样。
1.2 IP地址(IP v4)
所谓IP地址确实是给每个连接在Internet 上的主机分配的一个32bit地址。
按照TCP/IP(Transport Control Protocol/Internet Protocol,传输操纵协议/Internet协议)协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,确实是4个字节。例如一个采纳二进制形式的IP 地址是“00001010000000000000000000000001”,这么长的地址,人们处理起来也太费劲了。为了方便人们的使用,IP地址经常被写成十进制的形式,中间使用符号“.”分开不同的字节。因此,上面的IP地址能够表示为“10.0.0.1”。IP地址的这种表示法叫做“点分十进制表示法”,这显然比1
和0容易经历得多。
有人会以为,一台计算机只能有一个IP地址,这种观点是错误的。我们能够指定一台计算机具有多个IP地址,因此在访问互联网时,不要以为一个IP地址确实是一台计算机;另外,通过特定的技术,也能够使多台服务器共用一个IP地址,这些服务器在用户看起来就像一台主机似的。
将IP地址分成了网络号和主机号两部分,设计者就必须决定每部分包含多少位。网络号的位数直接决定了能够分配的网络数(计算方法2^网络号位数);主机号的位数则决定了网络中最大的主机数(计算方法2^主机号位数-2)。然而,由于整个互联网所包含的网络规模可能比较大,也可能比较小,设计者最后聪慧的选择了一种灵活的方案:将IP地址空间划分成不同的类不,每一类具有不同的网络号位数和主机号位数。
IP地址是IP网络中数据传输的依据,它标识了IP网络中的一个连接,一台主机能够有多个IP 地址。IP分组中的IP地址在网络传输中是保持不变的。
1.3 IPV6进展及其特点
IPv6是"Internet Protocol Version 6"的缩写,也被称作下一代互联网协议,它是由IETF小组(Internet工程任务组Internet Engineering Task Force)设计的用来替代现行的IPv4(现行的IP)协议的一种新的IP协议。
我们明白,Internet的主机都有一个唯一的IP地址,IP地址用一个32位二进制的数表示一个主机号码,但32位地址资源有限,差不多不能满足用户的需求了,因此Internet研究组织公布新的主机标识方法,即IPv6。在RFC1884中(RFC 是Request for Comments Document的缩写。RFC
实际上确实是Internet有关服务的一些标准),规定的标准语法建议把IPv6地址的128位(16个字节)写成8个16位的无符号整数,每个整数用四个十六进制位表示,这些数之间用冒号(:)分开,例如:3ffe:3201:1401:1280:c8ff:fe4d:db39
2 TCP协议
2.1 TCP简介
TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793讲明(specified)。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,UDP是同一层内另一个重要的传输协议。
在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间
层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,然而IP层不提供如此的流机制,而是提供不可靠的包交换。
应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);假如发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。