1.26k likes | 1.48k Views
第 2 章 TCP/IP 协议基础. 第2章 TCP/IP协议基础. 项目一 TCP/IP基础. 项目二 扫描工具的使用. 一、 TCP/IP 协议的历史 二、 TCP/IP 协议基本概念 三、域名系统 四、端口 五、基于 TCP/IP 协议的程序. 六 、 SuperScan应用 七、 X-Scan 应用 八、流光扫描器的应用. 一、 TCP/IP 协议的历史.
E N D
第2章 TCP/IP协议基础 项目一 TCP/IP基础 项目二 扫描工具的使用 一、TCP/IP协议的历史 二、TCP/IP协议基本概念 三、域名系统 四、端口 五、基于TCP/IP协议的程序 六、 SuperScan应用 七、X-Scan应用 八、流光扫描器的应用
一、TCP/IP协议的历史 TCP/IP协议初步架构的出现源于1964年,美国冷战时期。在这个时候为了战争需求,必须有个强大而又牢固的网络系统来做整个国防部的联系。这时美国一家资信公司(RAND公司)为了满足国防部的要求而提出了一个解决方案。 1 高级研究计划局(ARPA)终于在1971年研究出了NCP协议(Network Control Protocol),并且真正架构出23个据点的网络系统,而这个网络系统便称为ARPANET。 2
一、TCP/IP协议的历史 随着信息技术的进步,网络的传输设备也不断地更新,从网络线一直发展到卫星传送系统。NCP协议已无法满足人们的要求了,因为不同的网络系统仍然无法很顺利地传送资料。此时则由美国斯坦福大学、BNN公司与英国伦敦大学共同发展出TCP(Transmission Control Protocol) 3 4 于1982年时,美国正式使用TCP/IP协议,并将此协议作为整个国防部网络的标准协议。
一、TCP/IP协议的历史 在1982年所有ARPANET的网络系统也正式启用TCP/IP协议。至此,正式奠定了TCP/IP协议的地位。 5 于1983年时,美国正式使用TCP/IP协议,并将此协议作为整个国防部网络的标准协议。 6 后来由于Internet的风潮,也正式启用TCP/IP协议为标准通信协议。这样的结果,使得TCP/IP协议更确定其霸主地位。 7
二、TCP/IP协议基本概念 ㈠OSI层次模型和TCP/IP协议层次模型 ⑴OSI组织定义的七层网络协定 Application Lager(应用层) Presentation Lager(表现层) Session Lager(会谈层) Transport Lager(传送层) DataLink Lager(资料连结层) Network Lager(网络层) Physical Lager(实体层)
TCP/IP 层次模型 A B D C 二、TCP/IP协议基本概念 ㈠OSI层次模型和TCP/IP协议层次模型 ⑵TCP/IP层次模型 Application Lager (应用层) Transport Lager (主机传输层) Internet Lager (网际层) Network Access Lager (网络存取层)
TCP/IP是其中的两个协议,支配因特网上所有联网计算机之间的通信TCP/IP是其中的两个协议,支配因特网上所有联网计算机之间的通信 IP确定信息包到达目的地的路径 TCP确保信息包正确到达目的地 TCP/IP协议
TCP/IP协议套件实际上是一个协议族,包括TCP协议、IP协议以及其它一些协议。每种协议采用不同的格式和方式传送数据,它们都是Internet的基础,一个协议套件是相互补充、相互配合的多个协议的集合。其中TCP 协议用于在程序间传送数据,IP 协议则用于在主机之间传送数据。如下列出了TCP/IP协议套件中的成员。 应用层 SMTP、DNS 、FTP、 TELNET 、HTTP 传输层 TCP、UDP 互联层 IP、ICMP(控制消息协议 )、 IGMP(组管理协议 ) 网络接口层 ARP (地址解析协议)、 RARP(反向地址转换协议 ) TCP/IP协议套件
IP 协议详细规定了计算机在通信时应遵循的规则,它是最基本的软件,每台准备通信的计算机者必须有IP 软件驻留在其内存中。 IP的三个重要作用: (1)IP定义了在TCP/IP互联网上数据传送的基本单元,规定了互联网上传送的数据格式。这种统一的IP报文是实现异构网互联最关键的一步。 (2)IP软件完成路由选择功能,选择数据传送的路径。 (3)IP包含了一组不可靠分组传送的规则,指明了分组处理、差错信息发生以及分组丢弃等的规则。但由于是无连接的点到点传输机制,IP协议不能保证报文传递的可靠性。 IP工作原理
IP协议只管将数据包尽力传送到目的主机,无论传输正确与否,不做验证,不发确认,也不保证数据包的顺序,而这一问题就由传输层TCP协议来解决。TCP 协议为Internet 提供了可靠的无差错的通信服务。 当数据包到达目的地后,计算机首先去掉地址标志,利用TCP的装箱单检查数据在传输中是否有损失,如果接收方发现有损坏的数据包,就要求发送端重新发送被损坏的数据包,确认无误后再将各个数据包重新组合成原文件。 TCP工作原理
TCP 提供计算机程序间的连接,是一种端到端的服务 TCP解决了分组交换系统中的三个问题 首先,TCP解决了如何处理数据报丢失的问题,实现了自动重传以恢复丢失的分组; 其次,TCP自动检测分组到来的顺序,并调整重排为原来的顺序; 再次,TCP自动检测是否有重复的分组,并进行相应处理。 TCP时钟具有自动调整机制 TCP可以自动根据目标计算机离源计算机的远近、网络传输的繁忙情况来自动调整时钟和确认机制中的重传超时值。 TCP的三个重要作用
(1)IP地址的消耗,引起地址空间的不足。Internet网面临的最主要问题是IP地址的消耗,即没有足够的地址来满足全球用户的需求。原因是IP地址只有32位,可用的地址有限,最多接入的主机数不超过232个, 大约43亿台计算机。 (2)IPv4缺乏安全性。IPv4源于早期的互联网,对安全性考虑并不多,在参考模型的低层没有考虑安全性,因此协议安全性选项不多,当今多媒体和视频的应用、便携式计算机和卫星技术的出现等都使设备的任意连接出现问题,IPv4不能满足当今网络发展的安全性要求。 (3)IPv4协议配置复杂。早期的配置基本上是静态的,需要用户对计算机网络协议进行频繁的配置,而对于一般用户,迫切需要增强即插即用的自动配置功能。 IPv4的不足
(1)扩大了地址空间。IP地址的长度由32位扩充为128位。理论上能标识2128(大约3.403 × 1038) 台计算机。其表示方法采用十六进制数加“:”,“:”是网络号和主机号等的分隔符。IPv6支持单地址、多地址和广播地址。 (2)增加了安全认证机制。为了防止机密被窃,系统不能向未被批准的用户显示任何数据;为了使数据不被破坏,系统不允许未经批准而随意更改数据;为了确保服务质量,系统不允许任意改变用户的级别。 (3)提高了路由器的转发效率。IPv6规定,仅由源端系统进行数据的分段,途经的所有路由器不必再对数据进行分段,提高了路由器的工作效率。 (4)增强了协议的可扩充性。 IPv6的特点
在计算机网络通信中,地址是给网络上的特定计算机或站点指定的唯一代码、名称或标记。因特网地址(Internet address)类似于信函上的地址,告诉传送系统把消息递送到何处 在因特网上常见的地址有四种类型 电子邮件地址(e-mail address) 网际协议地址(IP address) 媒体接入控制地址(MAC address) 统一资源定位地址(URL) 因特网上的地址
标识用户的字符串,使邮件服务器能够识别用户标识用户的字符串,使邮件服务器能够识别用户 电子邮件地址的格式为:(账户名)@(域名地址)例如,在邮件地址linfz@mail.tsinghua.edu.cn中 linfz是账户名 mail.tsinghua.edu.cn是域名地址,表示“中国.教育部门.清华大学.邮件服务机” @是账户名和域名地址之间的分隔符,读作at 与电子邮件有关的术语包括 账户(account):出于认证、管理和安全的考虑,由局域网和多用户操作系统为每个授权用户保存的记录,包括用户身份、访问权限以及使用情况等 账户名(account name):由若干字符组成的标识用户的名称 账号(account number):用来鉴别账户的数字,其长度不等,有的系统要求使用6位,有的邮件系统要求使用10位 电子邮件地址
每台连网设备必须要有唯一地址才能在网上通信每台连网设备必须要有唯一地址才能在网上通信 IP地址就是执行IP协议并参与网络通信的设备地址 两种形式的地址 网际协议地址/IP地址(Internet Protocol address / IP address):机器可识别的用数字表示的地址,如166.111.4.100 域名地址(domain name address):人比较容易看懂的用字母表示的地址,如www.tsinghua.edu.cn 静态IP地址和动态IP地址 静态IP地址(static IP):客户机可以向ISP申请永久性的地址 动态IP地址(dynamic IP) :在上网时由执行动态主机配置协议(DCHP)的服务器临时给你的计算机分配的一个地址 网际协议(IPv4)地址
IP地址由“网络号”+“主机号”组成 一个人的身份证号码: 4301 104196607084031 IPv4地址 地区代码 个人标识代码 一个主机的IP地址:192.168.0. 10 主机号 网络号 网络号:用于表示该机所在的网络标识 主机号:用于表示该机在该网络中区别其他主机的标识 应用原则:网络号相同的主机,处于同一网段中;同一网段中,不允许有主机号相同的主机
A类地址 • A类IP地址的网络号长度为7位,主机号长度为24位; • A类地址是从:1.0.0.0~126.255.255.255(第一字节的数字范围:0…….127 七位二进制的最大数字为127,既:1111111=127) 网络号长度为7位,从理论上可以有27=128个网络,但网络号为全0和全1 (用十进制表示为0与127)的两个地址保留用于特殊目的,实际允许有 126 个不同的A类网络; • 由于主机号长度为24位,因此每个A类网络的主机IP数理论上为224= 16 777 216,但主机IP为全0和全1的两个地址保留用于特殊目的,实际允 许连接16 777 214个主机; • A类IP地址结构适用于有大量主机的大型网络。
B类地址 • B类IP地址的网络IP长度为14位,主机IP长度为16位; • B类IP地址是从:128.0.0.0~191.255.255.255(第一个字节的数字范围: 128---128+63=128---191,六位二进制的最大数字为63;既:111111=63 ); • 由于网络IP长度为14位,因此允许有214=16384个不同的B类网络 • 由于主机IP长度为16位,因此每个B类网络可以有216=65536个主机或路由 器,实际一个B类IP地址允许连接65534个主机或路由器; • B类IP地址适用于一些国际性大公司与政府机构等中等大小的组织使用。
C类地址 • C类IP地址的网络号长度为21位,主机号长度为8位; • C类IP地址是从:192.0.0.0~223.255.255.255(第一个字节的数字范围: • 128+64---192+31=192---223 五位二进制的最大数字为31;既11111=31) • 网络号长度为21位,因此允许有221=2097152个不同的C类网络; • 主机号长度为8位,每个C类网络的主机地址数最多为28=256个,实际允许连 • 接254个主机或路由器; • C类IP地址适用于一些小公司与普通的研究机构。
一些特殊的地址:全0表示本网络或者本主机,而全1则一些特殊的地址:全0表示本网络或者本主机,而全1则 表示广播地址 本地广播地址:255.255.255.255 (只用于目的地址,只在本网络上进行广播,各路由器均不转发) 直接广播地址:主机部分全1,140.179.255.255(只用于目的地址,对net-id上的所有主机进行广播) 本网中的主机:0.0.200.200(分组被限制在本网络内部,由特定的主机号对应的主机接收该分组) 127.x.x.x:回送地址(用于网络软件测试和本地进程间通信)TCP/IP协议规定:含网络号为127的分组不能出现在任何网络上,主机和路由器不能为该地址广播任何寻址信息。 本网络本主机地址:全0, 0.0.0.0(只用于源地址) 0.0.0.0常用于代表缺省网络,在路由器表中用于构造缺省路径。
私有地址(private address,) :这些地址永远不出现在Internet中 A类:10.0.0.0-10.255.255.255 16个B类地址:172.16.0.0-172.31.255.255 256个C类地址:192.168.0.0-192.168.255.255 虚拟专用网VPN(Virtual Private Network) 网络地址转换NAT(Network Address Translation)
MAC地址(Media Access Control address)是在网络适配器(网卡)或其他连网设备上设置的字符串,用于标识安装有这种适配器的计算机或其他设备的硬件地址,称为“媒体接入控制地址” 每个网络适配器都有一个代码作为它的地址,用于与网上其他设备进行通信。例如, 用ipconfig/all命令就可看到你的计算机的硬件地址,也称物理地址,其格式如下, physical address XX-XX-XX-XX-XX-XX MAC地址
统一资源地址(Uniform Resource Locator,URL):信息资源在因特网上的地址 统一资源标识符(Uniform Resource Identifier,URI):标识因特网上信息资源的名称和地址的字符串 URL指明了访问资源时所用的协议、资源所在地的服务机名称、资源路径和资源名称。例如, http://www.lib.tsinghua.edu.cn/database/iel.htm http表示服务器(软件)使用的传输协议 www.lib.tsinghua.edu.cn表示服务机的名称 database表示资源所在的路径 iel.htm表示文件的名称(iel为IEEE/IET Electronic Library的简写) 统一资源地址(URL)
二、TCP/IP协议基本概念 ㈢传输控制协议(TCP) ⑴TCP协议概述 TCP协议是可靠的、基本的传输协议,它用于提供可靠的、全双工的虚拟线路连接。连接是在发送和连接的节点端口号之间实施的。TCP协议的数据流是8位数一组的,TCP协议可在TCP协议主机之间提供多个虚拟线路的连接。
二、TCP/IP协议基本概念 ㈢传输控制协议(TCP) ⑵TCP报文 图2-4 TCP协议资料头格式
TCP源端口(Source Port):16位的源端口其中包含初始化通信的端口。源端口和源IP地址的作用是表示报文的返回地址。TCP源端口(Source Port):16位的源端口其中包含初始化通信的端口。源端口和源IP地址的作用是表示报文的返回地址。 TCP目的端口(Destination port):16位的目的端口域定义传输的目的。这个端口指明报文接收计算机上的应用程序地址接口。
序号用来标识从T C P发端向T C P收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节。序号是32 bit的无符号数,序号到达232-1后又从0开始。 序列码实际上是初始序列码(ISN),而第一个数据字节是ISN+1。这个序列号(序列码)是可以补偿传输中的不一致。 T C P为应用层提供全双工服务。这意味数据能在两个方向上独立地进行传输。连接的每一端必须保持每个方向上的传输数据序号. 序列号
TCP确认号(Acknowledgment Number):32位的序列号由接收端计算机使用,重组分段的报文成最初形式。,如果设置了ACK控制位,这个值表示一个准备接收的包的序列码。TCP确认号(Acknowledgment Number):32位的序列号由接收端计算机使用,重组分段的报文成最初形式。,如果设置了ACK控制位,这个值表示一个准备接收的包的序列码。 既然每个传输的字节都被计数,确认序号包含发送确认的一端所期望收到的下一个序号。因此,确认序号应当是上次已成功收到数据字节序号加1。只有A C K标志为1时确认序号字段才有效 因此,一旦一个连接建立起来,这个字段总是被设置, A C K标志也总是被设置为1
数据偏移量(HLEN):4位包括TCP头大小,指示何处数据开始。数据偏移量(HLEN):4位包括TCP头大小,指示何处数据开始。 保留(Reserved):6位值域,这些位必须是0。为了将来定义新的用途所保留。 标志(Code Bits):6位标志域。表示为:紧急标志、有意义的应答标志、推、重置连接标志、同步序列号标志、完成发送数据标志。按照顺序排列是:URG、ACK、PSH、RST、SYN、FIN。 窗口(Window):16位,用来表示想收到的每个TCP数据段的大小。接收方通过设置该值大小可调节发送端发送数据的速度,实现流量控制。
校验位(Checksum):16位TCP头。源机器基于数据内容计算一个数值,收信息机要与源机器数值 结果完全一样,从而证明数据的有效性。校验位(Checksum):16位TCP头。源机器基于数据内容计算一个数值,收信息机要与源机器数值 结果完全一样,从而证明数据的有效性。 优先指针(紧急,Urgent Pointer):16位,指向后面是优先数据的字节,在URG标志设置了时才有效。如果URG标志没有被设置,紧急域作为填充。加快处理标示为紧急的数据段。 选项(Option):长度不定,但长度必须以字节为单位。如果 没有 选项就表示这个字节的域等于0。 填充:不定长,填充的内容必须为0,它是为了数学目的而存在。目的是确保空间的可预测性。保证包头的结合和数据的开始处偏移量能够被32整除,一般额外的零以保证TCP头是32位的整数倍
三次握手 (three-way handshake) 主机A (主动)SYN同步序列号标志 主机B (被动) SYN(SEQ=x) SYN(SEQ=y, ACK=x+1) SYN(SEQ=x+1, ACK=y+1) TCP的连接
源端口 1028 宿端口 21 序列号 SEQ 确认号 ACK ... 窗口 WIN ... 头部 发送方 接收方 缓冲区 应用层2k write 2k SEQ=0 2k WIN=2048 应用层3k write ACK=2048 2k SEQ=2048 4k 发送受阻 WIN=0 应用层Read 2k ACK=4096 WIN=2048 ACK=4096 2k 1k SEQ=4096 1k 2k TCP传输控制的实现
TCP连接的释放(四次握手) 主机A 主机B FIN(SEQ=x) A->B单向连接释放,但A仍能接收B的数据(FIN完成发送数据标志) ACK(SEQ=y, ACK=x+1) FIN(SEQ=x’) B->A单向连接释放 ACK(SEQ=y’,ACK=x’+1)
一个 TCP 连接在完成上述的三次握手之后便建立完毕;此后,连接的两端即可进行信息的相互传递。因此,TCP 连接可以认为是以两端 IP 地址和端口进行标识的一个通信信道,而 TCP 连接的建立就是向通信双方进行上述通信信道注册的过程。TCP 连接一旦建立,只要通信双方之间的中间结点(包括网关和交换机、路由器等网络设备)工作正常,那么在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。
二、TCP/IP协议基本概念 ㈢传输控制协议(TCP) ⑶传输层安全 安全套接层(SSL)及其传输层安全(TLS)是在互联网上提供保密安全信道的加密协议,为诸如网站、电子邮件、网上传真等等数据传输进行保密。1、握手协议。这个协议负责协商被用于客户机和服务器之间会话的加密参数。2、记录协议。这个协议用于交换应用层数据。3、警告协议。这个协议用于指示在什么时候发生了错误或两个主机之间的会话在什么时候终止。
在源主机上,应用层将一串应用数据流传送给传输层。在源主机上,应用层将一串应用数据流传送给传输层。 ●传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。 ●在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。 ●链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。 TCP/IP 的工作原理
在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。 ●网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果一致,则去掉IP报头,将TCP段送交传输层。 ●传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据。若正确,则向源主机发确认信息;若不正确或丢包,则向源主机要求重发信息。 ●在目的主机,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。
三、域 名 系 统 ㈠域名和子域 使用somebody@bupt.edu.cn作为Internet地址的一个范例。在该例子中,somebody为用户名,而bupt.edu.cn为域。域的每一个部分又被称作子域。可以看见子域是用点分开的,共有3个子域,即bupt、edu和cn。
三、域 名 系 统 ㈡域名的格式 Internet用户的地址格式由用户名和域名两部分组成,中间以@分隔 <用户名>@<域名> @符号之前的部分称为用户名或用户标志(ID),它标识了一个网络系统内的某个用户。 @符号之后的部分为域(Domain)名,它标识了该用户所属的机构、所使用的主机(Host)或节点机。
三、域 名 系 统 ㈡域名的格式 域名的命名方式称为域名系统(Domain Naming System,DNS),域名必须按ISO有关标准进行。域名由几级组成,各级之间由圆点“.”隔开,格式为 n级域名.×××.二级域名.一级域名 其中2<n≤5.
三、域 名 系 统 ㈢顶级域名 顶级域名表示的是机构类型的范畴和属性。 • 机构域 地区域
三、域 名 系 统 ㈢顶级域名 表2-3 顶级域名机构域名属性对照表
三、域 名 系 统 ㈢顶级域名 表2-4 顶级域名地区域名范例对照表
四、端 口 端口是一个16 bit的地址,用端口号进行标识不同作用的端口,常见ICP、UCP公认端口号见表2-5和表2-6。端口一般分为两类。 熟知端口号 (公认端口号) 一般端口号 端 口
四、端 口 表2-5 常见TCP公认端口号
四、端 口 表2-6 常见UCP公认端口号