TCPIP节课论文文档格式.docx
《TCPIP节课论文文档格式.docx》由会员分享,可在线阅读,更多相关《TCPIP节课论文文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
The
Internetprotocolsuite
isthenetworkingmodelandasetof
communicationsprotocols
usedforthe
Internet
andsimilarnetworks.Itiscommonlyknownas
TCP/IP,becauseitsmostimportantprotocols,the
TransmissionControlProtocol
(TCP)andthe
InternetProtocol
(IP)werethefirstnetworkingprotocolsdefinedinthisstandard.Itisoccasionallyknownasthe
DoDmodel
duetothefoundationalinfluenceofthe
ARPANET
inthe1970s(operatedby
DARPA,anagencyofthe
UnitedStatesDepartmentofDefense).
TheInternetprotocolsuiteuses
encapsulation
toprovideabstractionofprotocolsandservices.Encapsulationisusuallyalignedwiththedivisionoftheprotocolsuiteintolayersofgeneralfunctionality.Ingeneral,anapplication(thehighestlevelofthemodel)usesasetofprotocolstosenditsdatadownthelayers,beingfurtherencapsulatedateachlevel.
Keywords:
Internetprotocolsuite;
networkingmodel;
TCP/IP
1绪论
1.1TCP/IP协议
TCP/IP协议叫做传输控制/网际协议,它是Internet国际互联网络的基础。
TCP/IP是网络中使用的基本的通信协议。
虽然从名字上看TCP/IP包括两个协议,传输控制协议(TCP/IP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:
远程登录,文件传输和电子邮件等,而TCP和IP协议是保证数据完整传输的两个基本的重要协议。
通常说TCP/IP是Internet协议族,而不单单是TCP和IP。
1.2TCP/IP协议工作流程
TCP/IP协议数据的传输基于TCP/IP协议的四层结构:
应用层、传输层、网络层、链路层,数据在传输时每经过一层就要在数据上加个包头,其中的数据供接收端同一层协议使用,而在接收端,每经过一层要把用过的包头去掉,这样来保证传输数据的格式完全一致。
各层协议如下图1所示.
1.2.1链路层
链路层实际上并不是因特网协议组中的一部分,但是它是数据包从一个设备的网络层传输到另外一个设备的网络层的方法。
这个过程能够在网卡的软件驱动程序中控制,也可以在韧体或者专用芯片中控制。
这将完成如添加报头准备发送、通过实体媒介实际发送这样一些数据链路功能。
另一端,链路层将完成数据帧接收、去除报头并且将接收到的包传到网络层。
1.2.2网络层
正如最初所定义的,网络层解决在一个单一网络上传输数据包的问题。
类似的协议有X.25和ARPANET的Host/IMPProtocol。
随着因特网思想的出现,在这个层上添加了附加的功能,也就是将数据从源网络传输到目的网络。
这就牵涉到在网络组成的网上选择路径将数据包传输,也就是因特网。
在因特网协议组中,IP完成数据从源发送到目的的基本任务。
IP能够承载多种不同的高层协议的数据;
这些协议使用一个唯一的IP协议号进行标识。
ICMP和IGMP分别是1和2。
一些IP承载的协议,如ICMP(用来发送关于IP发送的诊断信息)和IGMP(用来管理多播数据),它们位于IP层之上但是完成网络层的功能,这表明了因特网和OSI模型之间的不兼容性。
所有的路由协议,如BGP、
OSPF、和RIP实际上也是网络层的一部分,尽管它们似乎应该属于更高的协议栈。
1.2.3传输层
传输层主要为两台主机上的应用程序提供端到端的通信。
在TCP/IP协议组件中,有两个互不相同的传输协议:
TCP(传输控制协议)和UDP(用户数据报协议)。
TCP提供一对一的、面向连接的可靠通信服务。
TCP建立连接,对发送的数据包进行排序和确认,并恢复在传输过程中丢失的数据包。
基于TCP的协议:
Telnet;
Ftp;
Smtp
1.2.4应用层
该层包括所有和应用程序协同工作,利用基础网络交换应用程序专用的数据的协议。
应用层是大多数普通与网络相关的程序为了通过网络与其他程序通信所使用的层。
这个层的处理过程是应用特有的;
数据从网络相关的程序以这种应用内部使用的格式进行传送,然后被编码成标准协议的格式。
一旦从应用程序来的数据被编码成一个标准的应用层协议,它将被传送到IP栈的下一层。
图1各层协议
在传输层,应用程序最常用的是TCP或者UDP,并且服务器应用程序经常与一个公开的端口号相联系。
服务器应用程序的端口由互联网号码分配局(IANA)正式地分配,但是现今一些新协议的开发者经常选择它们自己的端口号。
由于在同一个系统上很少超过少数几个的服务器应用,端口冲突引起的问题很少。
应用软件通常也允许用户强制性地指定端口号作为运行参数。
每一个应用层(TCP/IP参考模型
的最高层)协议一般都会使用到两个传输层协议之一:
面向连接的TCP传输控制协议和无连接的包传输的UDP用户数据报文协议
。
2TCP/IP协议簇中的协议在实际中的应用
2.1TCP协议
与UDP不同的是,TCP提供了一种面向连接的、可靠的字节流服务。
面向连接比较好理解,就是连接双方在通信前需要预先建立一条连接,这犹如实际生活中的打电话。
助于可靠性,TCP协议中涉及了诸多规则来保障通信链路的可靠性,总结起来,主要有以下几点:
(1)应用数据分割成TCP认为最适合发送的数据块。
这部分是通过“MSS”(最大数据包长度)选项来控制的,通常这种机制也被称为一种协商机制,MSS规定了TCP传往另一端的最大数据块的长度。
值得注意的是,MSS只能出现在SYN报文段中,若一方不接收来自另一方的MSS值,则MSS就定为536字节。
一般来讲,在不出现分段的情况下,MSS值还是越大越好,这样可以提高网络的利用率。
(2)重传机制。
设置定时器,等待确认包。
(3)对首部和数据进行校验。
(4)TCP对收到的数据进行排序,然后交给应用层。
(5)TCP的接收端丢弃重复的数据。
(6)TCP还提供流量控制。
(通过每一端声明的窗口大小来提供的
2.1.1建立协议连接(三次握手)
(1)客户端发送一个带SYN标志的TCP报文到服务器。
这是三次握手过程中的报文1.
(2)服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。
因此它表示对刚才客户端SYN报文的回应;
同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。
(3)客户必须再次回应服务段一个ACK报文,这是报文段3.
2.1.1连接终止协议(四次握手)
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。
这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。
收到一个FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。
首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
(1)TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送(报文段4)。
(2)服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。
和SYN一样,一个FIN将占用一个序号。
(3)服务器关闭客户端的连接,发送一个FIN给客户端(报文段6)。
(4)客户段发回ACK报文确认,并将确认序号设置为收到序号加1(报文段7)。
2.1.3TCP报头
TCP报头总长最小为20个字节,其报头结构如下图所示。
bit0
bit15bit16
bit31
源端口(16)
目的端口(16)
序列号(32)
确认号(32)
TCP偏移量(4)
保留(6)
标志(6)
窗口(16)
校验和(16)
紧急(16)
选项(0或32)
数据(可变)
TCP报头结构
源端口:
指定了发送端的端口号。
目的端口:
指定了接收端的端口号。
序号:
指明了该段在即将传输的段序列中的位置。
确认号:
规定成功收到段的序列号,确认序号包含发送确认的一端所期望收到的下一个序号。
TCP偏移量:
指定了段头的长度。
段头的长度取决与段头选项字段中设置的选项。
保留:
指定了一个保留字段,以备将来使用。
标志:
SYN、ACK、PSH、RST、URG、FIN。
SYN:
表示同步;
ACK:
表示确认;
PSH:
表示尽快的将数据送往接收进程;
RST:
表示复位连接;
URG:
表示紧急指针;
FIN:
表示发送方完成数据发送;
窗口:
指定关于发送端能传输的下一段的大小的指令。
校验和:
校验和包含TCP段头和数据部分,用来校验段头和数据部分的可靠性。
紧急:
指明段中包含紧急信息,只有当URG标志置1时紧急指针才有效。
选项:
指定了公认的段大小,时间戳,选项字段的末端,以及指定了选项字段的边界选项。
2.1.4TCP工作原理
TCP
连接建立:
TCP的连接建立过程又称为TCP三次握手。
首先发送方主机向接收方主机发起一个建立连接的同步(SYN)请求;
接收方主机在收到这个请求后向发送方主机回复一个同步/确认(SYN/ACK)应答;
发送方主机收到此包后再向接收方主机发送一个确认(ACK),此时TCP连接成功建立。
TCP连接关闭:
发送方主机和目的主机建立TCP连接并完成数据传输后,会发送一个将结束标记置1的数据包,以关闭这个TCP连接,并同时释放该连接占用的缓冲区空间。
TCP重置:
TCP允许在传输的过程中突然中断连接,这称为TCP重置。
TCP数据排序和确认:
TCP是一种可靠传输的协议,它在传输的过程中使用序列号和确认号来跟踪数据的接收情况。
TCP重传:
在TCP的传输过程中,如果在重传超时时间内没有收到接收方主机对某数据包的确认回复,发送方主机就认为此数据包丢失,并再次发送这个数据包给接收方,这称为TCP重传。
TCP延迟确认:
TCP并不总是在接收到数据后立即对其进行确认,它允许主机在接收数据的同时发送自己的确认信息给对方。
TCP数据保护(校验和):
TCP是可靠传输的协议,它提供校验和计算来实现数据在传输过程中的完整性。
2.2IP协议
IP,全称InternetProtocol(因特网协议),它工作在OSI的网络层,它负责将数据传输到正确的目的地,同时也负责路由。
无论传输层使用何种协议,都要依赖IP来发送和接受数据。
IP提供一种无连接的传输机制,这就意味着在网络传输的每个数据报都作为独立的单元来对待。
IP并不维护服务器和客户端之间的连接细节。
IP不能保证数据传输的可靠性。
然而,这些并不意味着分组将被毫无规则的忽略,而是仅在网络出现故障时才会发生数据丢失。
2.2.1IP的报头结构
IP数据报报头结构
版本号(Version):
长度为4bit。
标识目前采用的IP协议的版本号。
一般的值为0100(IPv4),IPv6的值为0110。
IP包头长度(HeaderLength):
这个字段的作用是为了描述IP包头的长度,因为在IP包头中有变长的可选部分。
IP包头最小长度为20Byte,由于变长的可选部分最大长度可能会变成24Byte。
服务类型(TypeofService):
长度为8bit。
这个子段可以拆分成两个部分:
Precedence和TOS。
TOS目前不太使用。
而Precedence则用于QOS应用。
(TOS字段的详细描述RFC13401349)。
IP包总长(TotalLength):
长度为16bit。
IP包最大长度65535Byte。
标识符(Identifier):
长度为16bit。
该字段和Flags和FragmentOffest字段联合使用,对大的上层数据包进行分段(fragment)操作。
标记(Flags):
长度为3bit。
该字段第一位不使用。
第二位是DF位,DF位设为1时表明路由器不能对该上层数据包分段。
如果一个上层数据包无法在不分段的情况下进行转发,则路由器会丢弃该上层数据包并返回一个错误信息。
第三位是MF位,当路由器对一个上层数据包分段,则路由器会在除了最后一个分段的IP包的包头中将MF位设为1。
分段序号(FragmentOffset):
长度为13bit。
该字段对包含分段的上层数据包的IP包赋予序号。
由于IP包在网络上传送的时候不一定能按顺序到达,这个字段保证了目标路由器在接收到IP包之后能够还原分段的上层数据包。
如果某个包含分段的上层数据包的IP包在传送中丢失,则整个一系列包含分段的上层数据包的IP包都会被要求重传。
生存时间(TTL):
长度为8bit。
当IP包进行传送时,会先对该字段赋予某个特定的值。
当IP包经过每一个沿途的路由器的时候,每个沿途的路由器会将IP包的TTL值减少1。
如果TTL减少为0,则该IP包会被丢弃。
这个字段可以防止由于故障而导致IP包在网络中不停的被转发。
协议(Protocol):
标识了上层所使用的协议。
头部校验(HeaderChecksum):
长度为16bit,由于IP包头是变长的,所以提供一个头部校验来保证IP包头中信息的正确性。
源地址和目标地址(SourceandDestinationAddresses
):
这两个段都是32bit。
标识了这个IP包的源地址和目标地址。
可选项(Options):
这是一个可变长的字段。
该字段由起源设备根据需要改写。
可选项目包含以下内容:
松散源路由(Loosesourcerouting):
给出一连串路由器接口的IP地址。
IP包必须沿着这些IP地址传送,但是允许在相继的两个IP地址之间跳过多个路由器。
严格源路由(Strictsourcerouting):
IP包必须沿着这些IP地址传送,如果下一跳不在IP地址表中则表示发生错误。
路由记录(Recordroute):
当IP包离开每个路由器的时候记录路由器的出站接口的IP地址。
时间戳(Timestamps):
当IP包离开每个路由器的时候记录时间。
2.3UDP协议
对于UDP(UDP:
UserDatagramProtocol)来说,用户数据报协议(UDP)是ISO参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
UDP协议基本上是IP协议与上层协议的接口。
UDP协议适用端口分辨运行在同一台设备上的多个应用程序。
由于大多数网络应用程序都在同一台机器上运行,计算机上必须能够确保目的地机器上的软件程序能从源地址机器处获得数据包,以及源计算机能收到正确的回复。
这是通过使用UDP的“端口号”完成的。
例如,如果一个工作站希望在工作站128.1.123.1上使用域名服务系统,它就会给数据包一个目的地址128.1.123.1,并在UDP头插入目标端口号53。
源端口号标识了请求域名服务的本地机的应用程序,同时需要将所有由目的站生成的响应包都指定到源主机的这个端口上。
与TCP不同,UDP协议并不提供对IP协议的可靠机制、流控制以及错误恢复功能等。
由于UDP比较简单,UDP头包含很少的字节,比TCP负载消耗少。
UDP适用于不需要TCP可靠机制的情形,比如,当高层协议或应用程序提供错误和流控制功能的时候。
UDP协议是传输层协议,服务于很多知名应用层协议,包括网络文件系统(NFS)、简单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)。
2.3.1UDP协议结构
16
32bit
Sourceport
Destinationport
Length
Checksum
Data
SourcePort—16位。
源端口是可选字段。
当使用时,它表示发送程序的端口,同时它还被认为是没有其它信息的情况下需要被寻址的答复端口。
如果不使用,设置值为0。
DestinationPort—16位。
目标端口在特殊因特网目标地址的情况下具有意义。
Length—16位。
该用户数据报的八位长度,包括协议头和数据。
长度最小值为8。
Checksum—16位。
IP协议头、UDP协议头和数据位,最后用0填补的信息假协议头总和。
如果必要的话,可以由两个八位复合而成。
Data—包含上层数据信息。
3TCP/IP协议应用领域
TCP一般用于文件传输(FTPHTTP对数据准确性要求高,速度可以相对慢),发送或接收邮件(POPIMAPSMTP对数据准确性要求高,非紧急应用),远程登录(TELNETSSH对数据准确性有一定要求,有连接的概念)等等;
UDP一般用于即时通信(QQ聊天对数据准确性和丢包要求比较低,但速度必须快),在线视频(RTSP速度一定要快,保证视频连续,但是偶尔花了一个图像帧,人们还是能接受的),网络语音电话(VoIP语音数据包一般比较小,需要高速发送,偶尔断音或串音也没有问题)等等。
还有,TCP可以用于网络数据库,分布式高精度计算系统的数据传输;
UDP可以用于服务系统内部之间的数据传输,因为数据可能比较多,内部系统局域网内的丢包错包率又很低,即便丢包,顶多是操作无效,这种情况下,UDP经常被使用。
与大多数Internet服务一样,FTP也是一个客户机/服务器系统。
用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。
SNMP是目前最常用的环境管理协议。
用于管理方面。
学习体会
个人认为,学习TCP/IP是一个长期的过程,需要在工作和应用当中不断地总结,不断地深入,经常回过头来思考一下,会发现很多意想不到的东西。
在长期的发展过程中,IP逐渐取代其他网络。
这里是一个简单的解释。
IP传输通用数据。
数据能够用于任何目的,并且能够很轻易地取代以前由专有数据网络传输的数据。
下面是一个普通的过程:
1.一个专有的网络开发出来用于特定目的。
如果它工作很好,用户将接受它。
2.为了便利提供IP服务,经常用于访问电子邮件或者聊天,通常以某种方式通过专有网络隧道实现。
隧道方式最初可能非常没有效率,因为电子邮件和聊天只需要很低的带宽。
3.通过一点点的投资IP基础设施逐渐在专有数据网络周边出现。
4.用IP取代专有服务的需求出现,经常是一个用户要求。
5.IP替代品过程遍布整个因特网,这使IP替代品比最初的专有网络更加有价值(由于网络效应)。
6.专有网络受到压制。
许多用户开始维护使用IP替代品的复制品。
7.IP包的间接开销很小,少于1%,这样在成本上非常有竞争性。
人们开发了一种能够将IP带到专有网络上的大部分用户的不昂贵的传输媒介。
8.大多数用户为了削减开销,专有网络被取消。
如今,大多数商业操作系统包括TCP/IP栈并且缺省安装它们,对于大多数用户来说,没有必要去寻找它们的实现。
TCP/IP包含在所有的商业Unix和Linux发布包中,同样也包含在MacOSX和微软视窗和视窗服务器版本中。
参考文献
[1][美]W.RichardStevens.TCP/IP详解卷1:
协议.范建华等译.北京:
机械工业出版社,2000.
[2]杨英鹏.计算机网络原理与实践.北京:
电子工业出版社,2007.
[3]谢希仁.计算机网络(第5版).北京:
电子工业出版社,2008.
[4]龚正虎.现代TCP/IP网络原理与技术.北京:
国防工业出版社,2002.
[5]科齐勤克.TCP/IP指南(卷1)底层核心协议.北京:
人民邮电出版社,2008.
[6]小高之宏.TCP/IP数据包分析程序篇.北京:
科学出版社,2003.
[7]梁磊,王洛.TCP/IP网络技术.北京:
电子工业出版社,2004.
[8]柯婷.《硅谷》——TCP/IP协议安全性浅析.国家级期刊,2010.
[9]杨红敏.TCP/IP技术浅谈.科学之友,2011.
[10]姜锡洲.一种温热外敷药制备方案:
中国,88105607.3[P].1989-07-26.
[11]万锦坤.中国大学学报论文文摘(1983-1993).英文版[DB/CD].北京:
中国大百科全书出版社,1996.