TCP/IP协议基础知识

  • 内容
  • 相关

TCP/IP协议定义

Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。(百度百科)

 

IP

IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是否按顺序发送的或者有没有被破坏,IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。

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传送有关单个主机的信息。

UDP

UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。
UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。
欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。

ICMP

ICMP与IP位于同一层,它被用来传送IP的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的‘Redirect’信息通知主机通向其他系统的更准确的路径,而‘Unreachable’信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接‘体面地’终止。PING是最常用的基于ICMP的服务。

通讯端口

TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。
两个系统间的多重Telnet连接是如何相互确认并协调一致呢?TCP或UDP连接唯一地使用每个信息中的如下四项进行确认:
源IP地址 发送包的IP地址。
目的IP地址 接收包的IP地址。
源端口 源系统上的连接的端口。
目的端口 目的系统上的连接的端口。
端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口,例如,SMTP使用25、Xwindows使用6000。这些端口号是‘广为人知’的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。

数据格式

数据帧:帧头+IP数据包+帧尾 (帧头包括源和目标主机MAC初步地址及类型,帧尾是校验字)
IP数据包:IP头部+TCP数据信息(IP头包括源和目标主机IP地址、类型、生存期等)
TCP数据信息:TCP头部+实际数据 (TCP头包括源和目标主机端口号、顺序号、确认号、校验字等)

IP地址

在Internet上连接的所有计算机,从大型机到微型计算机都是以独立的身份出现,我们称它为主机。为了实现各主机间的通信,每台主机都必须有一个唯一的网络地址。就好像每一个住宅都有唯一的门牌一样,才不至于在传输资料时出现混乱。
Internet的网络地址是指连入Internet网络的计算机的地址编号。所以,在Internet网络中,网络地址唯一地标识一台计算机。
我们都已经知道,Internet是由几千万台计算机互相连接而成的。而我们要确认网络上的每一台计算机,靠的就是能唯一标识该计算机的网络地址,这个地址就叫做IP(Internet Protocol的简写)地址,即用Internet协议语言表示的地址。
在Internet里,IP地址是一个32位的二进制地址,为了便于记忆,将它们分为4组,每组8位,由小数点分开,用四个字节来表示,而且,用点分开的每个字节的数值范围是0~255,如202.116.0.1,这种书写方法叫做点数表示法。

PV4

IPv4,是互联网协议(Internet Protocol,IP)的第四版,也是第一个被广泛使用,构成现今互联网技术的基石的协议。1981年Jon Postel 在RFC791中定义了IP,Ipv4可以运行在各种各样的底层网络上,比如端对端的串行数据链路(PPP协议和SLIP协议) ,卫星链路等等。局域网中最常用的是以太网。
传统的TCP/IP协议基于IPV4属于第二代互联网技术,核心技术属于美国。它的最大问题是网络地址资源有限,从理论上讲,编址1600万个网络、40亿台主机。但采用A、B、C三类编址方式后,可用的网络地址和主机地址的数目大打折扣,以至IP地址已经枯竭。其中北美占有3/4,约30亿个,而人口最多的亚洲只有不到4亿个,中国截止2010年6月IPv4地址数量达到2.5亿,落后于4.2亿网民的需求。虽然用动态IP及Nat地址转换等技术实现了一些缓冲,但IPV4地址枯竭已经成为不争的事实。在此,专家提出IPV6的互联网技术,也正在推行,但IPV4的使用过过渡到IPV6需要很长的一段过渡期。中国主要用的就是ip4,在win7中已经有了ipv6的协议不过对于中国的用户们来说可能很久以后才会用到吧。
传统的TCP/IP协议基于电话宽带以及以太网的电器特性而制定的,其分包原则与检验占用了数据包很大的一部分比例造成了传输效率低,网络正向着全光纤网络高速以太网方向发展,TCP/IP协议不能满足其发展需要。
1983年TCP/IP协议被ARPAnet采用,直至发展到后来的互联网。那时只有几百台计算机互相联网。到1989年联网计算机数量突破10万台,并且同年出现了1.5Mbit/s的骨干网。因为IANA把大片的地址空间分配给了一些公司和研究机构,90年代初就有人担心10年内IP地址空间就会不够用,并由此导致了IPv6 的开发。

Pv6

IPv6是Internet Protocol Version 6的缩写,其中Internet Protocol译为“互联网协议”。IPv6是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代现行版本IP协议(IPv4)的下一代IP协议。
与IPV4相比,IPV6具有以下几个优势:
一、IPv6具有更大的地址空间。IPv4中规定IP地址长度为32,即有2^32-1(符号^表示升幂,下同)个地址;而IPv6中IP地址的长度为128,即有2^128-1个地址。
二、IPv6使用更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
三、IPv6增加了增强的组播(Multicast)支持以及对流的控制(Flow Control),这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。
四、IPv6加入了对自动配置(Auto Configuration)的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
五、IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,极大的增强了网络的安全性。

OSI参考模型

OSI参考模型是ISO的建议,它是为了使各层上的协议国际标准化而发展起来的。OSI参考模型全称是开放系统互连参考模型(Open System Interconnection Reference Model)。这一参考模型共分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,如图1所示。

网络接口层

物理层是定义物理介质的各种特性:

1、机械特性

2、电子特性;

3、功能特性

4、规程特性。

数据链路层是负责接收IP数据包并通过网络发送,或者从网络上接收物理,抽出IP数据包,交给IP层。

ARP是正向地址解析协议,通过已知的IP,寻找对应主机的MAC地址

RARP是反向地址解析协议,通过MAC地址确定IP地址。比如无盘工作站还有DHCP服务。

常见的接口层协议有:

Ethernet 802.3、Token Ring 802.5、X.25Frame relayHDLC、PPP ATM等。

网络层

负责相邻计算机之间的通信。其功能包括三方面。

  1. 处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。

  2. 处理输入数据报:首先检查其合法性,然后进行寻径--假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。

  3. 处理路径、流控、拥塞等问题。

网络层包括:IP(Internet Protocol)协议、ICMP(Internet Control Message Protocol)

控制报文协议、ARP(Address Resolution Protocol)地址转换协议、RARP(Reverse ARP)反向地址转换协议。

IP是网络层的核心,通过路由选择将下一条IP封装后交给接口层。IP数据报是无连接服务。

ICMP是网络层的补充,可以回送报文。用来检测网络是否通畅。

Ping命令就是发送ICMP的echo包,通过回送的echo relay进行网络测试。

传输层

提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送,即耳熟能详的“三次握手”过程,从而提供可靠的数据传输。

传输层协议主要是:传输控制协议TCP(Transmission Control Protocol)和用户数据报协议UDP(User Datagram protocol)。

x应用层

向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。

应用层协议主要包括如下几个:FTP、TELNET、DNS、SMTP、NFS、HTTP。

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。

特点

主要特点

(1)TCP/IP协议不依赖于任何特定的计算机硬件或操作系统,提供开放的协议标准,即使不考虑Internet,TCP/IP协议也获得了广泛的支持。所以TCP/IP协议成为一种联合各种硬件和软件的实用系统。

(2)TCP/IP协议并不依赖于特定的网络传输硬件,所以TCP/IP协议能够集成各种各样的网络。用户能够使用以太网(Ethernet)、令牌环网(Token Ring Network)、拨号线路(Dial-up line)、X.25网以及所有的网络传输硬件。

(3)统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有惟一的地址

(4)标准化的高层协议,可以提供多种可靠的用户服务。

协议优势

在长期的发展过程中,IP逐渐取代其他网络。这里是一个简单的解释。IP传输通用数据。数据能够用于任何目的,并且能够很轻易地取代以前由专有数据网络传输的数据。下面是一个普通的过程:

一个专有的网络开发出来用于特定目的。如果它工作很好,用户将接受它。

为了便利提供IP服务,经常用于访问电子邮件或者聊天,通常以某种方式通过专有网络隧道实现。隧道方式最初可能非常没有效率,因为电子邮件和聊天只需要很低的带宽。

通过一点点的投资IP 基础设施逐渐在专有数据网络周边出现。

用IP取代专有服务的需求出现,经常是一个用户要求。

IP替代品过程遍布整个因特网,这使IP替代品比最初的专有网络更加有价值(由于网络效应)。

专有网络受到压制。许多用户开始维护使用IP替代品的复制品。

IP包的间接开销很小,少于1%,这样在成本上非常有竞争性。人们开发了一种能够将IP带到专有网络上的大部分用户的不昂贵的传输媒介。

大多数用户为了削减开销,专有网络被取消。

主要缺点

第一,它在服务、接口与协议的区别上就不是很清楚。一个好的软件工程应该将功能与实现方法区分开来,TCP/IP恰恰没有很好地做到这点,就使得TCP/IP参考模型对于使用新的技术的指导意义是不够的。TCP/IP参考模型不适合于其他非TCP/IP协议簇。

第二,主机-网络层本身并不是实际的一层,它定义了网络层与数据链路层的接口。物理层与数据链路层的划分是必要和合理的,一个好的参考模型应该将它们区分开,而TCP/IP参考模型却没有做到这点。


本文标签:这篇文章木有标签

版权声明:若无特殊注明,本文皆为《晶天》原创,转载请保留文章出处。

本文链接:TCP/IP协议基础知识 - https://www.jqlab.cn/post-670.html