由于IP地址只对应到因特网中的某台主机,而TCP端口号可对应到主机上的某个应用进程,因此,TCP模块采用IP地址和端口号的对偶来标识TCP连接的端点。一条TCP连接实质上对应了一对TCP端点。 TCP/UDP应用程序端口号分配
端口号实质上也是操作系统标识应用程序的一种方法,其取值可由用户定义或者系统分配。TCP端口号采用了动态和静态相结合的分配方法,对于一些常用的应用服务(尤其是TCP/IP协议集提供的应用服务),使用固定的端口号;例如:电子邮件(SMTP)的端口号为25,文件传输(FTP)的端口号为21等。
对于其它的应用服务,尤其是用户自行开发的应用服务,端口号采用动态分配方法,由用户指定操作系统分配。
TCP/IP约定:0—1023为保留端口号,标准应用服务使用;1024以上是自由端口号,用户应用服务使用。
Unix系统中的/etc/services 文件,Windows 98系统中/windows/setvices文件:列出了系统提供的服务以及各服务的端口号等信息。 TCP窗口机制
TCP的特点之一是提供体积可变的滑动窗口机制,支持端到端的流量控制。TCP的窗口以字节为单位进行调整,以适应接收方的处理能力。处理过程如下: (1)TCP连接阶段,双方协商窗口尺寸,同时接收方预留数据缓存区;
(2)发送方根据协商的结果,发送符合窗口尺寸的数据字节流,并等待对方的确认; (3)发送方根据确认信息,改变窗口的尺寸,增加或者减少发送未得到确认的字节流中的字节数。调整过程包括:如果出现发送拥塞,发送窗口缩小为原来的一半,同时将超时重传的时间间隔扩大一倍。
TCP的窗口机制和确认保证了数据传输的可靠性和流量控制。
5.UDP协议
UDP(用户数据报协议--User Datagram Protocol)是TCP/IP协议集中等同于TCP的通信协议。
(1)UDP与TCP的差异:UDP直接利用IP协议进行UDP数据报的传输,因此UDP提供的是无连接、不可靠的数据报投递服务。
(2)UDP的使用场合:UDP常用于数据量较少的数据传输,例如:域名系统中域名地址/IP地址的映射请求和应答(Named),Ping 、BOOTP、TFTP等应用。
(3)使用UDP协议的好处:在少量数据的传输时,使用UDP协议传输信息流,可以减少TCP连接的过程,提高工作效率。
(4)UDP协议的不足:当使用UDP协议传输信息流时,用户应用程序必须负责解决数据报排序,差错确认等问题。
在多媒体应用中,常用TCP支持数据传输,UDP支持音频/视频传输。
6.因特网报文控制协议
a、因特网报文控制协议(ICMP--Internet Control Protocol)产生的原因:
IP协议尽力传递并不表示数据报一定能够投递到目的地,IP协议本身没有内在的机制获取差错信息并进行相应的控制,而基于网络的差错可能性很多,如:通信线路出错、网关
或主机出错、信宿主机不可到达、数据报生存期(TTL时间)到、系统拥塞等等。为了能够反映数据报的投递,因特网中增加了ICMP协议。 b、ICMP协议的作用:
主要用于网络设备和结点之间的控制和差错报告报文的传输。
从因特网的角度看,因特网是由收发数据报的主机和中转数据报的路由器组成。鉴于IP网络本身的不可靠性,ICMP的目的仅仅是向源发主机告知网络环境中出现的问题。ICMP主要支持路由器将数据报传输的结果信息反馈回源发主机。 c.ICMP 报文的传输
当路由器发现某份IP数据报因为某种原因无法继续转发和投递时,则形成ICMP报文,并从该IP数据报中截取源发主机的IP地址,形成新的IP数据报,转发给源发主机,以报告差错的发生及其原因。
携带ICMP报文的IP数据报在反馈传输过程中不具有任何优先级,与正常的IP数据报一样进行转发。如果携带ICMP报文的IP数据报在传输过程中出现故障,转发该IP数据报的路由器将不再产生任何新的差错报文。下图示意了ICMP报文的形成和还回。 d.ICMP报文的类型
ICMP协议主要支持IP数据报的传输差错结果,ICMP仍然利用IP协议传递ICMP报文。产生ICMP报文的路由器负责将其封装到新的IP数据报中,并提交因特网返回至原IP数据报的源发主机。ICMP报文分为ICMP报文头部和ICMP报文体部两个部分。 类型字段:表示差错的类型; 代码字段:表示差错的原因;
校验和:表示整个ICMP报文的校验结果。 ICMP数据:差错原因及说明。 ICMP报文类型主要有:
(1)目的地不可达报文 (2)源抑制(用于拥塞控制) (3)重定向 (4)超时(TTL)报告 (5)参数错 (6)回应请求 (7)回应应答 (8)时戳请求 (9)时戳应答 ICMP应用
目前,已经利用ICMP报文开发了许多网络诊断工具软件。 (1)Ping软件:
借助于ICMP回应请求/应答报文测试宿主机的可达性。
(2)跟踪IP数据报发送的路由: 利用路由器对IP数据报中的生存期值作减1处理,一旦生存期值为0 就丢弃该IP数据报,并返回主机不可达的ICMP报文的特点。源发端针对指定的宿结点,形成一系列收方结点无法处理的IP数据报。这些数据报除生存期值递增外,其它内容完全一样。这些数据报根据生存期的取值逐个发往网络,第一个数据报的生存期为1;路由器对生存期值减一后,丢弃该IP数据报,并返回主机不可达ICMP报文;源发端继续发送生存期为2,3,4,?的数据报,由于主机和路由器中对路由信息的缓存能力,IP数据报将沿着原路径向宿结点前进。如果整个路径中包括了N个路由器,则通过返回N个主机不可达报文和一个端口不可达报文的信息,了解IP数据报的整个路由。 (3)测试整个路径的最大MTU:
利用因数据报不允许分段,而转发网络的MTU(最大传输单元)较小时会产生主机不可达报文的特点。这种测试对于源宿端具有频繁的大量数据传输时,具有较高的实用价值。因为数据报长度越小,数据报传输的有效率越低;而传输较大的数据报时,路由器势必进行分
段,既损耗了路由器的资源,更可能造成因某个数据分段丢失,而导致宿主机在组装分段数据报时超时,丢弃整个数据报,造成带宽的浪费。测试路径MTU的方法类似路由跟踪。源发端发送一定长度、且不允许分段的IP数据报,并根据路由器返回的主机不可达ICMP报文,逐步缩短测试IP数据报的长度。
三.Internet应用
1.FTP--文件传输协议(File Transfer Protocol)
FTP实现计算机之间的文件传输。使用FTP时,用户无需关心对应计算机的位置,以及使用的文件系统。FTP使用TCP连接和TCP端口;在进行通信时,FTP需要建立两个TCP连接,一个用于控制信息(如命令和响应,TCP端口号缺省值为21),另一个是数据信息(端口号缺省值为20)的传输。
使用FTP命令时,要求用户在两台计算机上都具有自己的(或者可用的)帐号。 1)命令格式: ftp [ -dgintv][host] [-dgintv]:FTP命令选项
[host]:主机名或者主机对应的IP地址 例:ftp 202.119.2.197 2)FTP工作原理
(1)FTP服务器运行FTPd守护进程,等待用户的FTP请求。 (2)用户运行FTP命令,请求FTP服务器为其服务。 例:FTP 202.119.2.197
(3)FTPd守护进程收到用户的FTP请求后,派生出子进程FTP与用户进程FTP交互,建立文件传输控制连接,使用TCP端口21。
(4)用户输入FTP子命令,服务器接收子命令,如果命令正确,双方各派生一个数据传输进程FTP-DATA,建立数据连接,使用TCP端口20,进行数据传输。
(5)本次子命令的数据传输完,拆除数据连接,结束FTP-DATA进程。
(6)用户继续输入FTP子命令,重复(4)、(5)的过程,直至用户输入quit命令,双方拆除控制连接,结束文件传输,结束FTP进程
2.WWW服务
浏览器与WEB服务器工作过程举例 用户通过“浏览器”访问因特网上的WEB服务器,浏览器和服务器之间的信息交换使用超文本传输协议(HTTP--HyperText Transfer Protocol)。 例:用户访问主页Http://www.sina.com/welcome.htm ,浏览器与服务器的信息交互过程如下:
(1) 浏览器向DNS获取web服务器www.sina.com的IP地址:x.x.x.x (2) 浏览器与IP地址为x.x.x.x 的服务器进行TCP连接,端口为80;
(3) 浏览器执行HTTP协议,发送GET /welcome.htm 命令,请求读取该文件; (4) www.sina.com服务器返回/welcome.htm 文件到客户端; (5) 释放TCP连接;
(6) 浏览器解释/welcome.htm 文件内容,并显示该文件表示的页面。
附:
一.TCP/IP服务
1、TCP/IP应用服务原理
TCP/IP应用服务采用客户机/服务器工作模式,服务器端启动守护进程,等待客户端的请求;服务器对应客户端的请求,派生子进程与客户进程进行数据通信,提供服务。
(1)服务器(HostA)首先要启动应用程序服务进程(守护进程Server),等待客户端的请求。 (2)当服务进程Server接收到客户端HostB的请求时,派生一个子进程(Child1)与HostB进行交互,实现数据通信,同时守护进程Server继续等待客户端的请求。
(3)当服务进程Server接收到客户端HostC的请求时,派生一个子进程(Child2)与HostC进行交互,实现数据通信,同时守护进程Server继续等待客户端的请求。 二 .TCP/IP应用编程接口(API)
为了支持用户开发面向应用的通信程序,大部分系统都提供了一组基于TCP或者UDP的应用程序编程接口(API),该接口通常以一组函数的形式出现,称为套接字(Socket)。TCP/IP应用程序之间的通信通过Socket进行。服务器拥有全局公认的Socket,任何客户端都可以向它发出连接请求和信息请求。客户端向操作系统随机申请一个Socket,系统为之分配一个Socket号。
四.网络安全
随着人类社会生活对Internet需求的日益增长,网络安全逐渐成为Internet及各项网络服务和应用进一步发展的关键问题,特别是1993年以后Internet开始商用化,通过Internet进行的各种电子商务业务日益增多,加之Internet/Intranet技术日趋成熟,很多组织和企业都建立了自己的内部网络并将之与Internet联通。上述上电子商务应用和企业网络中的商业秘密均成为攻击者的目标。据统计,目前网络攻击手段有数千种之多,使网络安全问题变得极其严峻,据美国商业杂志《信息周刊》公布的一项调查报告称,黑客攻击和病毒等安全问题在2000年造成了上万亿美元的经济损失,在全球范围内每数秒钟就发生一起网络攻击事件。
一. 网络常见的攻击类型
1. 后门攻击
BO、SATANZ、Portal of DOOM、Silencer、NetBus、Netspy、GirlFriend、冰河等。 2. 拒绝服务攻击 SYN Flood、UDP Flood、winnuke、Kiss of Death、Wingate DoS、Land、concon、ARP Spool等。
3. 分布式拒绝服务攻击
Tfn2k、trinoo、stachel、mstream等。 4. 扫描攻击
ISS扫描、Nessus扫描、nmap扫描、Superscan扫描、whisker扫描、Webtrends扫描、L3retriever扫描、ipe-syn-scan扫描等。 5. Web-cgi攻击
Test-cgi、handler、count.cgi、phf、PHP、Webgais、Websendmail、Webdist等。 6. Web-IIS攻击:NewDSN等。
7. Web-FrontPage攻击:Fpcount等。

