协议详解1——概要
1.1 分层
链路层(数据链路层/ 网络接口层):包括操作系统中的设备驱动程序和计算机中对于网络接口卡; 一起处理与电缆(或其他传输媒介)的物理接口信息
网络层(互联网层):处理分组活动; 包括IP协议,ICMP协议,IGMP协议
运输层:为主机上的应用程序提供端到端通信;包括TCP和UDP协议;
TCP提供可靠性的数据通信,即把应用层数据分成小块交给下面的网络层,确认接受到的分组,设置发送最后确认分组的超时钟等;
UDP提供简单的服务,只是把数据报分组发送到主机,不保证可靠性
应用层:处理特定的应用程序细节;例如 Telent(远程登录),FTP(文件传输协议),SMTP(简单邮件传送协议),SNMP(简单网络管理协议)
1.2 TCP/IP的分层协议
1.3 互联网地址
1.4 封装
1.5 分用
1.6 客户--服务器模型
重复型服务器:
I1. 等待一个客户请求的到来。
I2. 处理客户请求。
I3. 发送响应给发送请求的客户。
I4. 返回I 1步。
并发型服务器:
C1. 等待一个客户请求的到来。
C2. 启动一个新的服务器来处理这个客户的请求。在这期间可能生成一个新的进程、任务或线程,并依赖底层操作系统的支持。这个步骤如何进行取决于操作系统。生成的新服 务器对客户的全部请求进行处理。处理结束后,终止这个新服务器。
C3. 返回C 1步。
重复型服务器主要的问题发生在I 2状态。在这个时候,它不能为其他客户机提供服务。并发服务器的优点在于它是利用生成其他服务器的方法来处理客户的请求。也就是说,每个客户都有它自己对应的服务器。如果操作系统允许多任务,那么就可以同时为多个客户服务。
1.7 端口号
(1)公认端口(Well Known Ports):这类端口也常称之为"常用端口"。这类端口的端口号从0到1024,它们紧密绑定于一些特定的服务。通常这些端口的通信明确表明了某种服务的协议,这种端口是不可再重新定义它的作用对象。例如:80端口实际上总是HTTP通信所使用的,而23号端口则是Telnet服务专用的。
(2) 注册端口(Registered Ports):端口号从1025到49151。它们松散地绑定于一些服务。也是说有许多服务绑定于这些端口,这些端口同样用于许多其他目的。这些端口多数没有明确的定义服务对象,不同程序可根据实际需要自己定义。
(3) 动态和/或私有端口(Dynamic and/or Private Ports):端口号从49152到65535。理论上,不应把常用服务分配在这些端口上。实际上,有些较为特殊的程序,特别是一些木马程序就非常喜欢用这些端口,因为这些端口常常不被引起注意,容易隐蔽。
如果根据所提供的服务方式的不同,端口又可分为"TCP协议端口"和"UDP协议端口"两种。
注意,这个号码是用在TCP,UDP上的一个逻辑号码,并不是一个硬件端口,我们平时说把某某端口封掉了,也只是在IP层次把带有这个号码的IP包给过滤掉了而已。
1.8 应用编程接口
使用TCP/IP协议的应用程序采用两种编程接口(API): socket 和 TLI(运输层接口)