OSI模型包含许多被分割成层的组件。
在网络数据通信的过程中,每一层完成一个特定的任务。
当传输数据的时候,每一层接收到上面层格式化后的数据,对数据进行操作,然后把它传给下面的层。
当接收数据的时候,每一层接收到下面层传过来的数据,对数据进行解包,然后把它传给上一层。
虚电路结构增强了OSI模型每一层的模块性;实现每一层的软件可以被栈的开发人员和工作站的管理人员移走、替代和更新而是影响它上面和下面的层。
这允许灵活地改变网络类型和更新层来处理错误和增加新特性。
每一层都利用其上层和下层的服务来维持它和远地主机上对应层的虚电路。
第二课 TCP/IP协议一.Internet的现状1. TCP/IP的发展过程及组织ISOC(Internet Society)应用软件 IABIETF IANA IRTF2.说明TCP/IP的重要性连接不同系统的技术开放系统,可通过Request for comments开发自己的TCP/IP解法与Internet连接:节省资金提供强有力的WAN连接:可路由,为广域网设计的二.TCP/IP协议族1.TCP/IP协议族英文全称:Transmission Control Protocol/Internet Protocol中文全称:传输控制协议/互联网协议TCP/IP实际上是一族协议,不是单一的协议,详见【附图一】◇ARP(Address Resolution Protocol):地址解析协议◇RARP(Reverse Address Resolution Protocol):逆向地址解析协议如果一台IP机器不带磁盘,启动时无法知道其IP地址。
但它知道它的MAC地址。
RARP协议是丢失灵魂者的精神病分析家。
它发出一个分组,其中包括其MAC地址,要求回答这一MAC地址的IP地址。
一个称为RARP服务器的特定机器作出响应并回答。
至此,这一身份危机就获得解决。
像一位优秀的分析家一样RARP使用已知信息,即机器的MAC地址,求得其IP地址完成机器ID的确定。
◇ICMP(Internet Control Message Protocol):Internet控制信息协议◇IGMP(Internet Group Management Protocol):Internet组管理协议◇UDP(User Datagram Protocol):用户数据报协议◇SNMP(Simple Network Management Protocol):简单网络管理协议◇SMTP(Simple Mail Transmission Protocol):简单邮件传送协议◇FTP(File Transmission Protocol):文件传输协议◇Telnet:Telnet是协议中的变色龙,它的特殊性在于终端仿真。
它允许远程客户机(称为Telnet Client)上的用户访问另外机器(称为Telnet Server)的资源。
Telnet完成这一任务的方法是下拉(pulling)一台较快的Telnet服务器,将客户机修饰成一台终端,直接附加到本地网络。
这个设计实际上是软件映像,可以与某远程主机互相交往的虚拟终端。
这些仿真的终端工作在文件方式。
可以执行显示菜单这样的步骤,这可使用户有机会选择菜单,在一个下拉的服务器上访问应用程序。
用户运行Telnet客户机软件开始Telnet会话,然后登录到Telnet服务器。
Telnet的能力限于运行应用程序或窥视一下服务器上的内容。
它仅仅是一个“观察“的协议。
它不能用于文件共享,如下载资料。
要想真正搞到资料必须运用FTP协议。
◇NDIS(Network Device Interface Specification):网络驱动接口规范◇NFS(Network File System) :网络文件系统这是一个重要的协议,以文件共享为特点。
它允许两个不同类型的文件系统互相操作。
假定NFS服务器软件正运行在NetWare服务器,并且NFS客户机软件正运行在UNIX主机上。
NFS允许NetWare服务器上的部分RAM透明地存储UNIX文件,UNIX用户可以使用这些文件。
虽然NetWare文件系统与UNIX文件系统不同(在识别大写与小写方面、文件名的长度、安全性等方面),但UNIX用户用NetWare用户都可用它们正常的文件系统和正常的方法访问同一文件。
Telnet、FTP和TFTP都有局限性。
请读者记住,作程序使用,FTP不能执行远程文件,而NFS则可以。
它可在计算机上打开图形应用程序,修改读者昨晚在同一程序上所做的修改。
NFS有输入和输出材料的能力,即远程操作应用程序。
◇BootP(Boot Program):引导程序当一台无磁盘的工作站加电后,它向网络广播一个BootP请求。
一个BootP服务器听到请求后,从客户机的BootP文件中查找其MAC地址。
如果找到相应的项目,它就作出响应,告诉该机的IP地址及其应该使用的引导文件,这通常是通过TFTP协议来完成。
没有磁盘的机器用BootP可获得:◇网络接口层:在模型的最底层是网络接口层。
本层负责将帧放入线路或从线路中取下帧。
◇ Internet层:Internet协议将数据包封装成Internet数据包并运行必要的路由算法。
◇传输层:传输协议在计算机之间提供通信会话。
数据投递要求的方法决定了传输协议。
◇应用层:在模型的顶部是应用层。
本层是应用程序进入网络的通道。
在应用层有许多TCP/IP工具和服务,如:FTP、Telnet、SNMP、DNS等等。
该层为网络应用程序提供了两个接口:Windows Sockets和NetBIOS。
3.TCP与UDP区别4.TCP的三次握手(Three-Way Handshake)在TCP协议中,建立连接要通过“三次握手”机制来完成。
这种“三次握手”机制既可以由一方TCP发起同步握手过程而另一方TCP响应该同步过程,也可以由通信双方同时发起连接的同步握手。
① TCP A向TCP B发送1个同步TCP段请求建立连接例:该TCP段简要表示成〈SEQ=100〉〈CTL=SYN〉,其中“〈〉”中的内容为TCP段中的字段② TCP B将确认TCP A的请求,并同时向TCP A发出同步请求例:该TCP段为〈SEQ=300〉〈 ACK=101〉〈CTL=SYN,ACK〉③ TCP A将确认TCP B的请求,即向TCP B发送确认TCP段例:该TCP段为〈SEQ=101〉〈 ACK=301〉〈CTL= ACK〉④ TCP A在已建立的连接上开始传输TCP数据段例:该TCP段为〈SEQ=101〉〈 ACK=301〉〈CTL= ACK〉〈DATA〉整个过程可用图表示:TCP A TCP B〈SEQ=100〉〈CTL=SYN〉一次〈SEQ=300〉〈 ACK=101〉〈CTL=SYN,ACK〉二次〈SEQ=101〉〈 ACK=301〉〈CTL= ACK〉三次〈SEQ=101〉〈 ACK=301〉〈CTL= ACK〉〈DATA〉(或三次)由于TCP连接是一个全双工的数据通道,一个连接的关闭必须由通信双方共同完成。
当通信的一方没有数据需要发送给对方时,可以使用FIN段向对方发送关闭连接请求。
这时,它虽然不再发送数据,但并不排斥在这个连接上继续接收数据。
只有当通信的对方也递交了关闭连的请求后,这个TCP连接才会完全关闭。
在关闭连接时,既可以由一方发起而另一方响应,也可以双方同时发起。
无论怎样,收到关闭连接请求的一方必须使用ACK段给予确认。
实际上,TCP连接的关闭过程也是一个三次握手的过程。
TCP A TCP B〈SEQ=100〉〈 ACK=300〉〈CTL=FIN,SYN〉〈SEQ=300〉〈 ACK=101〉〈CTL= ACK〉〈SEQ=300〉〈 ACK=101〉〈CTL= FIN,ACK〉〈SEQ=101〉〈 ACK=301〉〈CTL= ACK〉//这部分TCP关闭连接应该是四次握手,而不是三次。
TCP连接的关闭过程作者:fbysssmsn:jameslastchina@blog:/fbysss声明:本文由fbysss原创,转载请注明出处关键字:TCP协议关闭连接前言:TCP协议的连接是全双工连接,一个TCP连接存在双向的读写通道。
简单说来是“先关读,后关写”,一共需要四个阶段。
以客户机发起关闭连接为例:1.服务器读通道关闭2.客户机写通道关闭3.客户机读通道关闭4.服务器写通道关闭关闭行为是在发起方数据发送完毕之后,给对方发出一个FIN(finish)数据段。
直到接收到对方发送的FIN,且对方收到了接收确认ACK之后,双方的数据通信完全结束,过程中每次接收都需要返回确认数据段ACK。
详细过程:第一阶段客户机发送完数据之后,向服务器发送一个FIN数据段,序列号为i;1.服务器收到FIN(i)后,返回确认段ACK,序列号为i+1,关闭服务器读通道;2.客户机收到ACK(i+1)后,关闭客户机写通道;(此时,客户机仍能通过读通道读取服务器的数据,服务器仍能通过写通道写数据)第二阶段服务器发送完数据之后,向客户机发送一个FIN数据段,序列号为j;3.客户机收到FIN(j)后,返回确认段ACK,序列号为j+1,关闭客户机读通道;4.服务器收到ACK(j+1)后,关闭服务器写通道。
这是标准的TCP关闭两个阶段,服务器和客户机都可以发起关闭,完全对称。
FIN标识是通过发送最后一块数据时设置的,标准的例子中,服务器还在发送数据,所以要等到发送完的时候,设置FIN(此时可称为TCP连接处于半关闭状态,因为数据仍可从被动关闭一方向主动关闭方传送)。
如果在服务器收到FIN(i)时,已经没有数据需要发送,可以在返回ACK(i+1)的时候就设置FIN(j)标识,这样就相当于可以合并第二步和第三步。
5.滑动窗口(Sliding Windows)滑动窗口:是两台主机间传送数据时的缓冲区。
每台TCP/IP主机支持两个滑动窗口:一个用于接收数据,另一个用于发送数据。
窗口尺寸表示计算机可能缓冲的数据量大小。
滑动窗口工作原理:当TCP从应用层中接收数据时,数据们于Send窗口。
TCP将一个带序列号的报头加入数据包并将其交给IP,由IP将它发送到目标主机。
当每一个数据包传送时,源主机设置重发计时器(描述在重新发送数据包之前将等待ACK的时间)。
在Send窗口中有每一个数据包的备份,直到收到ACK。
当数据包到达服务器Receive窗口,它们按照序列号放置。
当接收到连续的段时就向源主机发送一个关于数据的认可(ACK),其中带有当前窗口尺寸。
一旦源主机接收到认可,Send窗口将由已获得认可的数据滑动到等待发送的数据。
如果有重发计时器设定的时间内,源主机没有接收到对现存数据的认可,数据将重新传送。