tcpip基础知识.docx

上传人:b****8 文档编号:27699898 上传时间:2023-07-04 格式:DOCX 页数:51 大小:41.19KB
下载 相关 举报
tcpip基础知识.docx_第1页
第1页 / 共51页
tcpip基础知识.docx_第2页
第2页 / 共51页
tcpip基础知识.docx_第3页
第3页 / 共51页
tcpip基础知识.docx_第4页
第4页 / 共51页
tcpip基础知识.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

tcpip基础知识.docx

《tcpip基础知识.docx》由会员分享,可在线阅读,更多相关《tcpip基础知识.docx(51页珍藏版)》请在冰豆网上搜索。

tcpip基础知识.docx

tcpip基础知识

第一部分 TCP/IP基础知识

TCP/IP分层及各层主要协议

数据链路层:

SLIP、PPP

网络层:

IP、ARP、RARP、ICMP

传输层:

TCP、UDP

应用层:

FTP、TELNET、SMTP、HTTP、TFTP

=====================

这部分与宇航出版社的《MicrosoftWindowsNT4.0 环境下的TCP/IP网络互联》中的第一、二章(除ARP外)对应

首先我们这门课是TCP/IP在WindowsNT中的应用,并不完全讲TCP/IP协议,所以有一些TCP/IP理论方面的知识并没有涉及到。

在讲TCP/IP在WindowsNT中的应用时,我们先回顾一下,在网络基础中讲到的网络的OSI模型,假如有同学从TCP/IP学起,此处作一个铺垫。

 

第一课 OSI模型(opensysteminterface)

OSI模型最初是用来作为开发网络通信协议族的一个工业参考标准。

通过严格遵守OSI模型,不同的网络技术之间可以轻易地实现互操作。

应用层 ApplicationLayer

表示层 PresentLayer

会话层 SemissionLayer

传输层 TransportLayer

网络层 InternetLayer

数据链路层 DataLinkLayer

物理层 PhysicalLayer

OSI模型包含许多被分割成层的组件。

在网络数据通信的过程中,每一层完成一个特定的任务。

当传输数据的时候,每一层接收到上面层格式化后的数据,对数据进行操作,然后把它传给下面的层。

当接收数据的时候,每一层接收到下面层传过来的数据,对数据进行解包,然后把它传给上一层。

应用层

 

 

 

 

 

 

 

应用层

表示层

表示层

会话层

会话层

传输层

传输层

网络层

网络层

数据链路层

数据链路层

物理层

物理层

OSI模型的一个关键概念是虚电路。

兼容OSI模型的网络栈的每一部分都不知道其上面层和下面层的行为和细节;它只是向上和向下传输数据。

就模型的层次而言,每一层都有一虚电路直接连接目的主机上的对应层。

就每一层而言,它的数据在目的层被解包的方式和被打包的方式是完全一样的。

层不知道传输数据的实际细节;它们只知道数据是从周围层中传过来的。

如同打电话一样,你感觉对方就在你耳边,但实际上你对电话机在说话,电话机把你的话转成了电信号,通过电话线传给电信局,电信局又通过各种传输线路,传给对方的电信局,对方的电信局再通过电话线把信号传给电话机,电话机再把电信号转换成,你的情话。

 

 

 

 

 

 

 

电话机

电话机

电话线

电话线

电信局

电信局

电信总局

电信总局

虚电路结构增强了OSI模型每一层的模块性;实现每一层的软件可以被栈的开发人员和工作站的管理人员移走、替代和更新而是影响它上面和下面的层。

这允许灵活地改变网络类型和更新层来处理错误和增加新特性。

每一层都利用其上层和下层的服务来维持它和远地主机上对应层的虚电路。

 

第二           课 TCP/IP协议

一.Internet的现状

1.  TCP/IP的发展过程及组织

                            ISOC(InternetSociety)

 

                  应用软件               IAB

 

 

                              IETF      IANA      IRTF

2.说明TCP/IP的重要性

连接不同系统的技术

开放系统,可通过Requestforcomments开发自己的TCP/IP解法

与Internet连接:

节省资金

提供强有力的WAN连接:

可路由,为广域网设计的

二.TCP/IP协议族

1.TCP/IP协议族

英文全称:

TransmissionControlProtocol/InternetProtocol

中文全称:

传输控制协议/互联网协议

TCP/IP实际上是一族协议,不是单一的协议,详见【附图一】

◇ARP(AddressResolutionProtocol):

地址解析协议

◇RARP(ReverseAddressResolutionProtocol):

逆向地址解析协议

如果一台IP机器不带磁盘,启动时无法知道其IP地址。

但它知道它的MAC地址。

RARP协议是丢失灵魂者的精神病分析家。

它发出一个分组,其中包括其MAC地址,要求回答这一MAC地址的IP地址。

一个称为RARP服务器的特定机器作出响应并回答。

至此,这一身份危机就获得解决。

像一位优秀的分析家一样RARP使用已知信息,即机器的MAC地址,求得其IP地址完成机器ID的确定。

◇ICMP(InternetControlMessageProtocol):

Internet控制信息协议

◇IGMP(InternetGroupManagementProtocol):

Internet组管理协议

◇UDP(UserDatagramProtocol):

用户数据报协议

◇SNMP(SimpleNetworkManagementProtocol):

简单网络管理协议

◇SMTP(SimpleMailTransmissionProtocol):

简单邮件传送协议

◇FTP(FileTransmissionProtocol):

文件传输协议

◇Telnet:

Telnet是协议中的变色龙,它的特殊性在于终端仿真。

它允许远程客户机(称为TelnetClient)上的用户访问另外机器(称为TelnetServer)的资源。

Telnet完成这一任务的方法是下拉(pulling)一台较快的Telnet服务器,将客户机修饰成一台终端,直接附加到本地网络。

这个设计实际上是软件映像,可以与某远程主机互相交往的虚拟终端。

这些仿真的终端工作在文件方式。

可以执行显示菜单这样的步骤,这可使用户有机会选择菜单,在一个下拉的服务器上访问应用程序。

用户运行Telnet客户机软件开始Telnet会话,然后登录到Telnet服务器。

Telnet的能力限于运行应用程序或窥视一下服务器上的内容。

它仅仅是一个“观察“的协议。

它不能用于文件共享,如下载资料。

要想真正搞到资料必须运用FTP协议。

◇NDIS(NetworkDeviceInterfaceSpecification):

网络驱动接口规范

◇NFS(NetworkFileSystem) :

网络文件系统

这是一个重要的协议,以文件共享为特点。

它允许两个不同类型的文件系统互相操作。

假定NFS服务器软件正运行在NetWare服务器,并且NFS客户机软件正运行在UNIX主机上。

NFS允许NetWare服务器上的部分RAM透明地存储UNIX文件,UNIX用户可以使用这些文件。

虽然NetWare文件系统与UNIX文件系统不同(在识别大写与小写方面、文件名的长度、安全性等方面),但UNIX用户用NetWare用户都可用它们正常的文件系统和正常的方法访问同一文件。

Telnet、FTP和TFTP都有局限性。

请读者记住,作程序使用,FTP不能执行远程文件,而NFS则可以。

它可在计算机上打开图形应用程序,修改读者昨晚在同一程序上所做的修改。

NFS有输入和输出材料的能力,即远程操作应用程序。

◇BootP(BootProgram):

引导程序

当一台无磁盘的工作站加电后,它向网络广播一个BootP请求。

一个BootP服务器听到请求后,从客户机的BootP文件中查找其MAC地址。

如果找到相应的项目,它就作出响应,告诉该机的IP地址及其应该使用的引导文件,这通常是通过TFTP协议来完成。

没有磁盘的机器用BootP可获得:

◇自己的IP地址

◇服务器的IP地址

◇需加载到内存的文件名,以便用这一文件执行引导

MCSE提示:

有一些简单的考题会问:

某个协议位于TCP/IP协议栈的哪一层上?

2.TCP/IP协议栈

OSI模型是一种通用的、标准的、理论模型,今天市场上没有一个流行的网络协议完全遵守OSI模型,TCP/IP也不例外,TCP/IP协议族有自己的模型,被称为TCP/IP协议栈,又称DOD模型(Departmentofdefense)

应用层 ApplicationLayer

 

应用层 ApplicationLayer

表示层 PresentLayer

会话层 SemissionLayer

传输层 TransportLayer

传输层 TransportLayer

网络层 InternetLayer

网络层 InternetLayer

数据链路层 DataLinkLayer

网络访问层 NetworkAccessLayer

物理层 PhysicalLayer

◇       网络接口层:

在模型的最底层是网络接口层。

本层负责将帧放入线路或从线路中取下帧。

◇       Internet层:

Internet协议将数据包封装成Internet数据包并运行必要的路由算法。

◇       传输层:

传输协议在计算机之间提供通信会话。

数据投递要求的方法决定了传输协议。

◇       应用层:

在模型的顶部是应用层。

本层是应用程序进入网络的通道。

在应用层有许多TCP/IP工具和服务,如:

FTP、Telnet、SNMP、DNS等等。

该层为网络应用程序提供了两个接口:

WindowsSockets和NetBIOS。

3.TCP与UDP区别

TCP(TransmissionControlProtocol):

为典型的传输大量数据或需要接收数据许可的应用程序提供连接定向和可靠的通信。

UDP(UserDatagramProtocol):

提供无连接的通信,并不保证数据包被发送到。

典型的即时传输少量数据的应用程序使用UDP。

应该说可靠的发送是应用程序的责任。

TCP

UDP

面向连接

无连接

传输大量数据

即时传输少量数据

可靠的

不可靠的

由于传输方法不同,TCP数据包与UDP数据包是不一样的。

但两者都用端口与插槽进行通信。

TCP/IP的报头格式如下:

(对应于教材P37)

报头字段名

位数

说    明

源端口号

目的端口号

序号(SEQ)

 

确认号(ACK)

数据偏移

控制字段(CTL)

◇ URG

◇ ACK

◇ PSH

◇ RST

◇ SYN

◇ FIN

窗口

校验和

紧急指针

选项

填充

16

16

32

 

32

4

 

1

1

1

1

1

1

16

16

16

可变

可变

本地通信端口,支持TCP的多路复用机制

远地通信端口,支持TCP的多路复用机制

数据段第一个数据字节的序号(除含有SYN的段外);

SYN段的SYN序号(建立本次连接的初始序号)

表示本地希望接收的下一个数据字节的序号

指出该段中数据的超始位置(以32位为单位)

 

紧急指针字段有效标志,即该段中携带紧急数据

确认号字段有效标志

PUSH操作的标志

要求异常终止通信连接的标志

建立同步连接的标志

本地数据发送已结束,终止连接的标志

本地接收窗口尺寸,即本地接收缓冲区大小

包括TCP报头和数据在内的校验和

从段序号开始的正向位移,指向紧急数据的最后一个字节

提供任选的服务

保证TCP报头以32位为边界对齐

UDP的报头格式如下:

报头字段名

位数

说    明

源端口号

目的端口号

消息长度

校验和

16

16

16

16

发送主机的UDP端口

目标主机的UDP端口

UDP消息的长度

验证报头是否损坏

4.TCP的三次握手(Three-WayHandshake)

在TCP协议中,建立连接要通过“三次握手”机制来完成。

这种“三次握手”机制既可以由一方TCP发起同步握手过程而另一方TCP响应该同步过程,也可以由通信双方同时发起连接的同步握手。

① TCPA向TCPB发送1个同步TCP段请求建立连接

例:

该TCP段简要表示成〈SEQ=100〉〈CTL=SYN〉,其中“〈〉”中的内容为TCP段中的字段

② TCPB将确认TCPA的请求,并同时向TCPA发出同步请求

例:

该TCP段为〈SEQ=300〉〈 ACK=101〉〈CTL=SYN,ACK〉

③ TCPA将确认TCPB的请求,即向TCPB发送确认TCP段

例:

该TCP段为〈SEQ=101〉〈 ACK=301〉〈CTL=ACK〉

④ TCPA在已建立的连接上开始传输TCP数据段

例:

该TCP段为〈SEQ=101〉〈 ACK=301〉〈CTL=ACK〉〈DATA〉

整个过程可用图表示:

      TCPA                                                TCPB

                    〈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连接的关闭过程也是一个三次握手的过程。

      TCPA                                                 TCPB

            〈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连接的关闭过程

作者:

fbysss

msn:

jameslastchina@  

blog:

声明:

本文由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.滑动窗口(SlidingWindows)

滑动窗口:

是两台主机间传送数据时的缓冲区。

每台TCP/IP主机支持两个滑动窗口:

一个用于接收数据,另一个用于发送数据。

窗口尺寸表示计算机可能缓冲的数据量大小。

滑动窗口工作原理:

当TCP从应用层中接收数据时,数据们于Send窗口。

TCP将一个带序列号的报头加入数据包并将其交给IP,由IP将它发送到目标主机。

当每一个数据包传送时,源主机设置重发计时器(描述在重新发送数据包之前将等待ACK的时间)。

在Send窗口中有每一个数据包的备份,直到收到ACK。

当数据包到达服务器Receive窗口,它们按照序列号放置。

当接收到连续的段时就向源主机发送一个关于数据的认可(ACK),其中带有当前窗口尺寸。

一旦源主机接收到认可,Send窗口将由已获得认可的数据滑动到等待发送的数据。

如果有重发计时器设定的时间内,源主机没有接收到对现存数据的认可,数据将重新传送。

重发数据包将加重网络和源主机的负担。

如果Receive窗口接收数据包的顺序错乱,那么将强制启动,延迟发送认可。

 

TCP协议采用滑动窗口的方式控制数据流的传输,用三次握手了解对方情况。

在传输层中,数据按照一定的格式打成大小相同的包。

每一个滑动窗口中包含一定数目的数据包,滑动窗口的大小可以人为调整。

每台网络上的主机维护一个送窗口和一个接收窗口。

发送方一次发送相当于滑动窗口大小的数据包数目,并在每个数据包前添加包头信息,然后等待接收方返回确认信息。

由于TCP是面向连接的协议,可以保证数据传输的完整性和准确性,当传输过程中发生丢包时,接收方会要求发送方从断点处重传数据。

滑动窗口的大小对网络性能有很大的影响。

如果滑动窗口过小,则需要在网络上频繁的传输确认信息,占用了大量的网络带宽;如果滑动窗口过大,对于利用率较高,容易产生丢包现象的网络,则需要多次发送重复的数据,也同样耗费了网络带宽。

决定滑动窗口大小的因素,包括网络的带宽、可靠性以及需要传输的数据量。

WindowsNT使用TCP滑动窗口,其默认窗口大小为8760,每接收两段信息就发回一个确认。

TcpWindowSize 规定滑动窗口的大小参数

位于HKEY_LOCAL_MACHINE/CurrentControlSet/Services/TCPIP/Parameters下,缺省大小为8760

ForwardBufferMemory

位于HKEY_LOCAL_MACHINE/CurrentControlSet/Services/TCPIP/Parameters下,缺省大小为74240=50*1480

DefaultTTL

位于HKEY_LOCAL_MACHINE/CurrentControlSet/Services/TCPIP/Parameters下,缺省大小为32 秒

重发计时器(retransmittimer):

定义:

在重新发送数据包之前将等待ACK的时间

可在注册表中修改重发次数,缺省为5次。

缺省起始时间为1秒。

重试时间分别为1秒;第一次失败后的2秒;第二次失败后的4秒;第三次失败后的8秒;第四次失败后的16秒。

延迟ACK计时器(delayed-ACKtimer):

定义:

在重新发送数据包之前将等待ACK的时间

ACK定时器的延迟为硬编码200ms,为第一次重发计时器的1/5。

详见【附图二】

 

第二部分  IP地址

这部分与宇航出版社的《MicrosoftWindowsNT4.0 环境下的TCP/IP网络互联》中的第三、四章对应

 

象我们在不同环境中有不同的名字一样,如:

在学校里有学号,在宿舍里有绰号,在家里还有小名,亲近的朋友之间还有溺称。

TCP/IP不同的层也使用不同的名字:

应用层 ApplicationLayer

主机名或NetBIOS名、IP地址

端口

IP地址

MAC地址

传输层 TransportLayer

网络层 InternetLayer

网络接口层 NetworkInterfaceLayer

这些名称中除了MAC地址是硬地址不可变之外(特殊的极意外的情况下也会有MAC地址重复的时候),其它名称都是逻辑标识、是可变的。

在这里我们先讨论一下IP地址,其它的内容在以后的课程中将再讨论。

一.     IP地址格式

简单概念的介绍:

bit/byte/k/M/G

1.    格式:

在Ipv4中,IP地址由四个八位域(叫作octets)组成。

Octets被点号分开代表在0到达55范围内的十进制数字。

用二进制格式时共有32位组成,为了方便记忆,用点号每八位一分割,称为点分十进制。

如:

dotteddecimalnotation:

131.107.1.1   193.1.1.200

    二进制格式:

11001100.10000001.00001000.11101100

从理论上计算全部32位都用上可以允许有232超过四十亿的地址!

这几乎可以为地球三分之二的人提供一个地址。

但事实上,随着Internet的发展,可用的IP地址已经快要用完了。

在将来的Ipv6中,IP地址由十六个八位域组成,共128位二进制形式的IP地址组成,还是用点号每八位一分割,在现在看来是足够了,但不知道还会有什么意想不到的事情令IP地址又不够用了。

2.    二进制转换为十进制

27

26

25

24

23

22

21

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1