计算机网络通信协议

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算机网络通信协议教师:谢先忠计算机网络通信协议•关于通信协议通信协议就是通信标准,它能实现不同结构的设备之间的通信。有了通信协议,就可以在同一网络中使用各种硬件和不同的应用程序,也可以在运行不同操作系统的计算机之间进行通信。TCP/IP是发展至今最成功的通信协议。刚开始时TCP/IP是美国国防部高等研究计划局开发研究计划的一部分,其原始目的是为DARPA提供通信,现在它已被广泛应用于全球最大的开放式网络系统internet之上,使全球计算机得以互通联系。TCP/IP的应用层协议介绍TCP/IP应用层对应了OSI参考模型的上三层,它包括了一些服务。这些服务是与终端用户相关的认证、数据处理及压缩,应用层还要告诉传输层哪个数据流是由哪个应用程序发出的。应用层主要包括以下协议:•文件传输类:HTTP(超文本传输协议)、FTP(文件传输协议)、TFTP(简单文件传输协议)•远程登录类:Telnet•电子邮件类:SMTP•域名解析类:DNS•下面将对以上协议进行详细介绍。HTTP•HTTP是一个应用层的、面向对象的协议,它适用于分布式超媒体信息系统。•FTP是一个用于简化IP网络上系统之间文件传送的协议。采用FTP协议,用户可以高效地从Internet上的FTP服务器下载大量的数据文件,以达到资源共享和传递信息的目的。•一个FTP站点可以是公用的、私有的、或者两者兼有之,用户可以为FTP账号定义权限,让它们可以访问整个FTP服务的目录结构,或者只是特定的区域。FTP服务的主动模式和被动模式•FTP包含两种连接模式:控制连接和数据连接•控制连接用于传递客户端的命令和服务器端对命令的响应,它使用服务器的21端口•数据连接数据连接用于传输文件和其他数据,如目录列表等。这种连接在需要数据传输时建立,而一旦数据传输完毕就关闭,每次使用的端口也不一定相同。而且,数据连接既可能是客户端发起的,也可以是服务器端发起的。FTP数据连接主动模式和被动模式•主动模式是从服务器端向客户端发起连接客户端FTP服务器请求建立控制连接Port:21接受请求我打开了9999端口,你来连接我好的,建立连接Port:20控制连接数据连接FTP的主动模式FTP数据连接主动模式和被动模式•被动模式是客户端向服务器发起连接客户端FTP服务器请求建立控制连接Port:21接受请求我打开了9999端口,你来连接我好的,建立连接Port:9999控制连接数据连接FTP的被动模式FTP数据连接主动模式和被动模式•当进行FTP连接时,IE通常被设置为被动模式,而FTP客户端软件(如:FlashFXP、cutFTP等)一般为主动模式。如果服务器和客户端之间存在防火墙,主动模式经常会引起一些麻烦。如:客户端位于防火墙之后,通常防火墙允许所有内部向外部连接通过,但是对于外部访问内部发起的连接却有很多限制。在这种情况下,客户端可以正常地和服务器建立控制连接,而如果使用主动模式的数据连接,一些数据传输命令就很难成功运行,因为防火墙会阻塞从服务器向客户发起的数据传输连接。因此在使用主动模式的FTP数据连接时,防火墙上的配置会比较麻烦。TFTP•TFTP是基于UDP的应用•特点:用于小文件传输对内存和处理器要求很低,速度快不具备FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,也不能进行认证。•应用实例:使用TFTP服务器来备份或恢复Cisco路由器、Catalyst交换机的IOS镜像和配置文件DNS•域名管理系统DNS是一台域名解析服务器•在互联网中通常用域名来代替难记的IP地址以定位计算机和服务。•DNS服务器中包含了域名和相应的IP地址映射。•DNS作用是把域名转换成网络可以识别的IP地址。•在windows中可以使用nslookup命令查询对应某个域名的IP地址。TCP/IP的传输层协议•问题:•当在windowsxp中同时运行多个网络应用程序时,每个程序都会产生自己的数据流,传输层用什么方法区分不同应用程序的数据流呢?•在数据流被分段以后,传输层依靠什么来重新组装这些数据段呢?•如果某个数据段在传输过程中丢失了或重复了,可靠的传输协议依据什么去要求重传这些数据或丢弃多余的数据呢?TCP/IP的传输层协议•传输层的主要功能:–分割并重新组装上层提供的数据流–为数据流提供端到端的传输服务•在TCP/IP协议中,有两个传输层协议:–传输控制协议TCP•TCP是一个可靠的面向连接的协议(如:打电话的双方在正式通话之前都会说“喂”,确定对方在线以后才开始通话。会话结束时都要说“再见”,然后才挂电话。)–用户数据报协议UDP•UDP是不可靠的或非连接的协议(如:寄明信片,寄出去了,但不管对方是否收到。)TCP/IP的传输层协议•端口号:–每个应用程序都会产生自己的数据流,这些数据流可以把目标主机上相应的服务程序看作自己的目的地。对于传输层来说,它只需要知道目标主要上的哪个服务程序来响应这个应用程序,而不需要知道这个服务程序具体是干什么的。因此,传输层使用一个抽象的端口标识这些应用程序和服务程序。TCP/IP的传输层协议•端口号的功能及应用特点:–端口号用来跟踪网络间同时发生的不同会话。TCP和UDP可以同时接收多个应用程序送来的数据流,用端口号来标识它们,然后把它们送给网际层处理:同时TCP和UDP接受来自网际层送来的数据包,用端口号来区分它们,然后送给适当的应用程序处理。这是多路分解技术的体现,它可以确保正确的用户程序收到正确的数据。因此,每个应用程序在发送数据前都会与操作系统进行协商,获得相应的源端口号和目标端口号。多路分解多路分解进程1进程2进程3基于端口分解IP数据报应用层传输层网际层TCP/IP的传输层协议•在主机发送应用程序的数据之前,都必须确认端口号,如何分配这些端口号呢?–使用中央管理机构统一分配的端口号•应用程序开发者都默认在RFC1700中定义的特殊端口号,在进行软件设计时,都要遵从RFC1700中定义的规则,不能随便使用已定义的端口号。如:任何telnet应用中的会话都要用标准端口号23。–使用动态绑定•如果一个应用程序的会话没有涉及到特殊端口号,那么系统将在一个特定的取值范围内随机为应用程序分配一个端口号。在应用程序进行通信之前,如果不知道对方的端口号,就必须发送请求以获得对方的端口号。TCP/IP的传输层协议•常有端口号介绍:–小于255的端口号用于公共应用–255~1023是特定供应商应用程序的注册端口号–高于1023的端口号未作规定常用端口号常用端口号的使用情况常用的应用程序协议或应用程序端口号UDPTCPFTP-21Telnet-23SMTP-25DNS53-TFTP69-SNMP161-HTTP-80DHCP-67RPC(远程过程调用)-135端口号的使用过程•主机A要Telnet到主要B。主机A首先向TCP请求一个可用端口,TCP分配一个为1088的端口号给它,主机A将目标端口号置为23。A和B通信后,B看到A过来的端口号为23,就知道这是一个Telnet应用,它会为它创建一个Telnet会话。108823…….AB我要TelnetB,请给我一个源端口号目标端口为23,它发给我的是Telnet应用①②TCP给你1088端口③④⑤创建telnet会话本地端口:23远程端口:1088SportDport端口号的使用过程•假如同一系统中有多个Telnet用户,会发生什么情况呢?当主机A上第二个用户要Telnet到主机B时(其实是在主机A与主机B之间建立第二个Telnet进程),主机A的第二个用户向TCP发出请求时,TCP会选出另一个可使用的端口号,如1099给第二个Telnet用户。主机B上便会创建第二个Telnet会话BTCP用户1的会话:本地端口:23远程端口:1088用户1的会话:本地端口:23远程端口:1099创建新的Telnet会话所以在同一IP地址上具有不同端口号的两个连接是不同的。IP地址和端口号被用来惟一地确定数据连接的途径。UDP•UDP提供主机之间的不可靠数据传输,它的特点如下:–无连接–不可靠–传输报文,即用户数据报–不为报文发送提供软件级的检查,即不可靠–对接收到的报文不进行重组–不使用确认技术–不提供流量控制技术•使用UDP的协议有:–TFTP(简洁文件传输协议)–SNMP(简单网络管理协议)–DHCP(动态主机控制协议)–DNS(域名系统)–BOOTPUDP头格式•UDP数据域的头格式源端口目标端口报文长度校验和数据•UDP数据域的头格式描述名称描述源端口(SourcePort)调用的端口号目的端口(DesinationPort)被调用的端口号报文长度(HLEN)记录UDP数据包中的八位组数目,它包括UDP头及UDP数据的长度。最小值为8(UDP数据部分长度为0时)校验和(Checksum)头标和数据域计算的校验和,这一项是可选的,为的是在高可靠性的网络上尽量减少开销数据(Data)上层协议的数据TCP•传输控制协议在终端用户的应用程序之间提供一个虚电路,它有如下特点:–面向连接的–是可靠的–可将发出的报文分成段–在目的节点把进入的段重组为报文–对任何没有收到的信息进行重传TCP头格式源端口(16)目标端口(16)序号(32)应答号(32)头长度(4)保留(6)编码位(6)窗口(16)校验和(16)紧急(16)可选项(如果有,0或32)数据(可变)名称描述源端口调用的端口号目的端口被调用的端口号序号确保数据到达序列正确的编号应答号期望的下一个TCP数据段头长度以32位字为单位的报头长度保留置为0编码位开始、终止会话之类的控制功能窗口用来控制流量校验和头标和数据域计算的校验和紧急指示紧急据的末端可选项当前定义项:TCP段的最大值数据上层协议的数据•TCP数据域的头格式描述建立TCP连接:三次握手AB发送SYN(seq=X)•主机A发送SYN给主机B:我的序号seq是X•主机B发送SYN、ACK给主机A:我的序列号seq是Y,应答号ack是X+1•主机A发送SYN、ACK给主机B:我的序列号seq是X+1,应答号ack是Y+1接收SYN(seq=X)发送SYN(seq=YACK=x+1)N(seq=YACK=x+1)发送确认(ack=x+1)接收确认(ACK=x+1)关闭TCP连接:改进的三次握手•对于一个已经建立的连接,TCP使用改进的三次握手来结束通话(使用一个带有FIN(finish)附加标记的报文段。)•当主机A的应用程序通知TCP数据已经发送完毕时,TCP向主机B发送一个带有FIN附加标记的报文段•主机B收到这个FIN报文段之后,并不立即用FIN报文段回复主机A,而是先向主机A发送一个确认ACK,同时通知自己相应的应用程序:对方要求关闭连接(先发送ACK为了防止在这段时间内,对方重传FIN报文段)•主机B的应用程序告诉TCP:我要彻底的关闭连接,TCP向主机A发送第二个FIN报文段•主机A收到第二个FIN报文段后,向主机B发送一个ACK表示连接彻底关闭AB发送FIN(seq=X)发送ACK(ACK=x+1)发送确认(ack=x+1)接收确认(ACK=x+1)发送FIN(seq=Y),ACK(ACK=x+1)应用程序关闭连接通知自己的应用程序:对方要求关闭连接应用程序关闭连接TCP的可靠性发送方等待每个数据段的确认信息ABSeq=10ack=1Seq=1ack=11Seq=11ack=2Seq=2ack=12我发送了10#数据段期望收到你的1#我收到了10#数据段期望收到你的11#超时与重传AB发送seq=X,ack=Y数据段丢失数据段没有到达ACK不会被发送正常情况下ACK应该到达发送seq=X,ack=Y定时器超时重发接收到数据段发送ACK发送seq=Y,ack=X+1接受到ACK继续发送下一段Seq序列号的作用•重组数据段–在一个高速链路和低速链路并

1 / 54
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功