目录
一、简介
二、相关概念
三、名词解释
3.1、IP
3.2、TCP
3.3、UDP
3.4、ICMP
3.5、通讯端口
3.6、数据格式
3.7、IPV4与IPV6
四、网络参考模型
4.1、OSI参考模型
4.2、TCP/IP模型
4.3、OSI与TCP/IP模型比较
【扩展资料】
一、简介
互联网协议(Internet Protocol Suite)是一个网络通信模型,以及一整个网络传输协议家族,为互联网通信基础架构。常称为TCP/IP协议族(TCP/IP Protocol Suite),简称TCP/IP。因为该协议家族中两个核心协议:TCP(传输控制协议)和IP(网际协议),为该家族最早通过的标准。由于在网络通信协议普遍采用分层结构,当多个层次的协议共同工作时,类似与堆栈,因此又被称为TCP/IP协议栈(TCP/IP Protocol Stack)。这些协议最早发源于美国国防部的ARPA项目,也因此被称为DoD模型。
TCP/IP提供点对点的链接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都加以标准化。将软件通信过程抽象为四个抽象层,采取协议堆栈方式,分别实现出不同通信协议。协议族下的各种协议,根据其功能不同,被分别归属到这四个层次,常视为简化的七层OSI模型。
二、相关概念
在相同的网络中,一台机器上的第N层与另一台机器上的第N层可以利用第N层协议进行通信,协议基本上是双方关于如何进行通信所达成的一致。
不同机器中包含的对应层的实体叫做对等进程。在对等进程利用协议进行通信时,实际上并不是直接将数据从一台机器的第N层传送到另一台机器的第N层,而是每一层都把数据连同该层的控制信息打包给它的下一层,它的下一层把这些内容看作数据,再加上该层控制信息继续交给更下一层。以此类推直至最下层。最下层是物理介质,能进行实际的通信。相邻层之间有接口,接口定义下层向上层提供的原语操作和服务。相邻层之间交换信息,对等接口必须要有一致同意的规则。层和协议的集合被称为网络体系结构。
每一层中的活动元素通常称为实体,实体既可以是软件实体也可以是硬件实体。第N层实现的服务被N+1层所使用。这种情况下,第N层称为服务提供者,第N+1层称为服务用户。服务是在服务接入点提供给上层使用的。服务可以分为面向连接的和面向无连接的服务。
三、名词解释
3.1、IP
IP层接收由更底层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层——TCP或UDP层。相反,IP层也把从TCP或UDP层接收来的数据包传送到更底层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是否按顺序发送的或者有没有被破坏,IP数据包中含有源地址和目的地址信息。
高层的TCP和UDP服务在接收数据包时,通常假设包中源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫做IP Source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好像是从路径上的最后一个系统传递过来的,而不是来自于其真实地点。这个选项是为了测试而存在,说明了它可以被用来欺骗系统进行平常被禁止的连接。这样许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。
3.2、TCP
TCP是面向连接的通信协议。通过三次握手建立连接,通讯完成时拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。
TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”机制实现传输可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制。所谓窗口表示接收能力,来限制发送方的发送速度。
如果IP数据包中有已经封装好的TCP数据包,那么IP将把他们向“上”传送到TCP层。TCP将包进行排序并进行错误检查,同时实现虚电路之间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以重传。
TCP将它的信息传送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。
面向连接的服务(如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。
3.3、UDP
UDP是面向无连接的通信协议。UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。UDP没有使用虚电路连接。
UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象。
UDP与TCP位于同一层,但它不管数据包的顺序,错误或重发。因此,UDP不被用于那些使用虚电路的面向连接的服,UDP主要面向那些面向查询-应答的服务,如NFS。相对于FT和Telnet,这些服务需要交换的信息量较少。使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。
欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(握手),也就是说,UDP相关服务面临更大危险。
3.4、ICMP
ICMP和IP位于同一层,被用来传送IP的控制信息。主要是用来提供有关通向目的地址的路径信息。ICMP的Redirect信息通知主机通向其它系统的更准确路径,而Unreachable信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接“体面地”终止。PING是最常用的基于ICMP的服务。
3.5、通讯端口
TCP和UDP服务通常有一个客户/服务器的关系。如一个Telnet服务进程开始在系统处于空闲状态,等待连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因为这个连接是双工的(可以发送也可以接收),可以用来进行读写。
两个系统间的多重Telnet连接是如何相互确认并协调一致的呢?TCP/UDP连接唯一的使用每个信息中的如下四项进行确认:
1、源IP地址
2、目的IP地址
3、源端口
4、目的端口
端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特数。服务进程通常使用一个固定的端口。
常用服务及端口号:
服务 | 端口号 | 解释 | 协议 |
DHCP | 服务器端:67 客户机端:68 | 动态主机设置协议(Dynamic Host Configuration Protocol) 1、用于内部网或网络服务供应商自动分配IP地址; 2、用于内部网管理员作为对所有计算机作中央管理的手段。 | UDP |
POP3 | 110 | 邮件接收协议 | TCP |
SMTP | 25 | 邮件发送协议,关心的是邮件能否顺利到达目的地,而不是如何被传送 | TCP |
Telnet | 23 | 远程登录 | TCP |
FTP | 20和21 | 文件传输协议。20端口用于数据传输,21端口用于控制信令的传输,控制信息和数据能同时传输,这是其特殊之处。 | TCP |
TFTP | 69 | 简单文件传输协议(Trivial File Transfer Protocol) | UDP |
HTTP | 80 | 超文本传输服务 | TCP |
DNS | 53 | DNS域名解析服务 | UDP |
HTTPS | 443 | 加密的超文本传输服务 | TCP |
Oracle数据库服务 | 1521 | Oracle数据库服务 | TCP |
3.6、数据格式
数据帧 | 帧头 + IP数据包 + 帧尾 | 帧头包括源和目标主机MAC初步地址及类型,帧尾是校验字 |
IP数据包 | IP头部 + TCP数据信息 | IP头部包括源和目标IP地址、类型、生存期等 |
TCP数据信息 | TCP头部 + 实际数据 | TCP头包括源和目的主机端口号、顺序号、确认号、校验字等 |
3.7、IPV4与IPV6
IP地址是一个32位的二进制地址,分为四组,每组8位,由小数点分开,用四个字节表示,每个字节数值范围时0~255。如212.158.2.10,这种方式叫点数表示法(计算机网络中称点分十进制)。
(正则表达式匹配IP地址:(([0-9]\.)|([1-9][0-9]\.)|(1[0-9][0-9]\.)|(2[0-4][0-9]\.)|(25[0-5]\.)){3} )
IPV4
目前用的IPV4是互联网协议(IP)的第四版,传统的TCP/IP协议基于IPV4属于第二代互联网,最大问题是网络地址资源有限,理论上可编址1600万个网络、40亿台主机。但采用A/B/C三类编址方式后,可用数目大打折扣。用动态IP及NAT地址转换技术可实现一定缓冲。
IPV6
下一代IP协议,与IPV4比有如下优势:
1、IP地址长度128位,有更大地址空间。
2、使用更小路由表。IPV6地址分配从一开始就遵循聚类原则,使得路由器能在路由表中用一条记录表示一片子网。大大减小路由器中路由表长度,提高路由器转发数据包速度。
3、增加了增强的组播(Multicast)支持以及对流的控制。这使得网络上多媒体应用有了长足发展机会,为服务质量控制提供了更好网络平台。
4、加入了对自动配置的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
5、具有更高安全性,使用IPV6网络的用户可以对网络层数据进行加密并对IP报文进行校验,极大的增强了网络的安全性。
四、网络参考模型
4.1、OSI参考模型
划分原则:
1、网络中各节点有相同的层次。
2、不同节点的同等层具有相同功能。
3、同一节点内相邻层之间通过接口通信。
4、每一层使用下一层提供的服务,并向其上层提供服务。
5、不同节点同等层按照协议实现对等层之间通信。
6、根据功能需要进行分层,每层应当实现定义明确的功能。
7、向应用程序提供服务。
分层好处:利用层次结构把开放系统的信息交换问题分解到一系列容易控制的软硬件模块,而各层可以根据需要独立进行修改或扩充功能,同时有利于不同制造厂家的设备互联,也有利于大家学习、理解数据通讯网络。
各层功能:
1、物理层(Physical Layer):
利用传输介质为数据链路层提供物理连接。关心的是通过物理链路从一个节点向另一个节点传送比特流,物理链路的传输介质可以是铜线、微博、卫星等。还关心的问题有:多少伏电压表示0/1?时钟速率是多少?采用全双工还是半双工传输?总的来说物理层关心的是链路的机械、电气、功能和规程特性。
2、数据链路层(Data Link Layer):
数据链路层为网络层服务,解决相邻两个节点之间通信问题,传送的协议数据单元称为数据帧。
数据帧中包含物理地址(MAC)、控制码、数据及校验码等信息。该层主要作用是通过校验、确认和反馈重发等手段,将不可靠的物理链路转换成对网络层来说无差错的数据链路。
此外,数据链路层还要协调收发双方的数据传输速率,即进行流量控制,以防止接收方因来不及处理发送方来的高速数据而导致缓冲器溢出及线路阻塞。
3、网络层(Network Layer):
网络层是为传输层提供服务的,传送的协议数据单元称为数据包或分组。该层的主要作用是解决如何使数据包通过各节点传送的问题,即通过路径选择算法(路由)将数据包传送到目的地。另外,为避免通信子网中出现过多的数据包而造成网络阻塞,需要对流入的数据包数量进行控制(拥塞控制)。当数据包要跨越多个通信子网才能到达目的地时,还要解决网际互连问题。
4、传输层(Transport Layer):
传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。
传输层传送的协议数据单元是数据段或报文。
其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送,即耳熟能详的“三次握手”过程,从而提供可靠的数据传输。
传输层协议主要是:传输控制协议TCP(Transmission Control Protocol)和用户数据报协议UDP(User Datagram protocol)。
5、会话层(Session Layer):
会话层主要功能是管理和协调不同主机上各种进程之间的通信,即负责建立、管理和终止应用程序之间的会话。
6、表示层(Presentation Layer):
表示层处理流经节点的数据编码表示方式问题。以保证一个系统应用层发出的信息可以被另一个系统的应用层读出。如果必要,该层可提供一种标准表示形式,用于将计算机内部多种数据表示格式转换成网络通信中采用的形式。数据压缩和加密也是该层提供的转换功能之一。
7、应用层(Application Layer):
应用层是用户与网络的接口。该层通过应用程序来完成网络用户的应用需求。如文件传输、收发电子邮件。
数据封装过程:
应用层、会话层、表示层协议数据单元统称为数据data。
传输层协议数据单元为数据段segment。
网络层称为数据包packet。
数据链路层称为数据帧frame。
物理层称为比特流bits。
以用户浏览网站为例说明数据的封装、解封装过程:
当用户输入要浏览的网站信息后就由应用层产生相关的数据,通过表示层转换成为计算机可识别的ASCII码,再由会话层产生相应的主机进程传给传输层。传输层将以上信息作为数据并加上相应的端口号信息以便目的主机辨别此报文,得知具体应由本机的哪个任务来处理;在网络层加上IP地址使报文能确认应到达具体某个主机,再在数据链路层加上MAC地址,转成bit流信息,从而在网络上传输。报文在网络上被各主机接收,通过检查报文的目的MAC地址判断是否是自己需要处理的报文,如果发现MAC地址与自己不一致,则丢弃该报文,一致就去掉MAC信息送给网络层判断其IP地址;然后根据报文的目的端口号确定是由本机的哪个进程来处理,这就是报文的解封装过程。
有时候将上三层称为高层,面向信息处理。下四层为低层,是面向通信的。
OSI影响:
OSI是一个定义良好的协议规范集,并有许多可选部分完成类似任务。
它定义了开放系统的层次结构、层次之间的相互关系以及各层所包含的可能任务。是作为一个框架来协调和组织各层所提供的服务。
OSI参考模型并没有提供一个可以实现的方法,而是描述了一些概念,用来协调进程间通信标准的指定。即OSI参考模型并不是一个标准,而是一个在制定标准时所使用的概念性框架。
4.2、TCP/IP模型
ARP是正向地址解析协议,通过已知的IP,寻找对应主机的MAC地址。
RARP是反向地址解析协议,通过MAC地址确定IP地址。比如无盘工作站还有DHCP服务。
ICMP是网络层的补充,可以回送报文。用来检测网络是否通畅。Ping命令就是发送ICMP的echo包,通过回送的echo relay进行网络测试。
FTP(File Transfer Protocol)是文件传输协议,一般上传下载用FTP服务,数据端口是20H,控制端口是21H。
Telnet服务是用户远程登录服务,使用23H端口,使用明码传送,保密性差、简单方便。
DNS(Domain Name Service)是域名解析服务,提供域名到IP地址之间的转换,使用端口53。
SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,用来控制信件的发送、中转,使用端口25。
NFS(Network File System)是网络文件系统,用于网络中不同主机间的文件共享。
HTTP(Hypertext Transfer Protocol)是超文本传输协议,用于实现互联网中的WWW服务,使用端口80。
4.3、OSI与TCP/IP模型比较
共同点:
1、OSI参考模型和TCP/IP参考模型都采用了层次结构概念。
2、都能提供面向连接和无连接两种通信服务机制。
不同点:
1、OSI采用七层,TCP/IP采用四层结构。
2、TCP/IP参考模型的网络接口层实际上并没有真正定义,只是一些概念性描述。而OSI参考模型不仅分了两层,而且每层功能都很详尽。甚至在数据链路层分出一个介质访问子层,专门解决局域网共享介质问题。
3、OSI模型是在协议开发前设计的,具有通用性。TCP/IP是先有协议集然后建立模型,不适用于非TCP/IP网络。
4、OSI参考模型的抽象能力高,适合描述各种网络。而TCP/IP先是有了协议,才制定TCP/IP模型。
5、OSI参考模型概念划分清晰,但过于复杂。而TCP/IP参考模型在服务、接口和协议的区别上不清楚,功能描述和实现细节混在一起。
6、OSI参考模型虽然被看好,由于没把握好时机,技术不成熟,实现困难。相反TCP/IP参考模型虽然有许多不尽人意地方,但比较成功。
【扩展资料】
1、TCP协议
2、IP协议