计算机网络协议
一些可以帮助学习各种协议的工具推荐:
Cisco Packet Tracer中文版 是一款功能齐全的思科交换机模拟器,简称PT。为学习CCNA课程的网络初学者提供了网络模拟环境。Cisco Packet Tracer中文版是思科最新7.0模拟器,以前的5.5和5.3的版本只能做NA的实验,现在这个可以做NP的实验,里边的IOS也升级了,思科在save里面保存有很多学习用的拓扑,值得研究。
常见抓包工具:
fiddler(fiddler中文版)是一个http协议Web调试代理工具。fiddler能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点查看所有的“进出”Fiddler的数据(指html,cookie,css,js等文件,这些都可以让你胡乱修改的意思)。Fiddler(fiddler中文版)要比其他的网络调试器要更加简单,因为它不仅仅可以帮助用户提供暴露http通讯,还提供了一个友好的用户格式。Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展,适用于:开发环境的host配置;前后端接口调试;线上bugfix;性能分析和优化等等。本站提供fiddler下载。
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包, 并尽可能显示出最为详细的网络封包资料。网络封包分析软件的功能可想像成 “电工技师使用电表来量测电流、电压、电阻” 的工作 - 只是将场景移植到网络上,并将电线替换成网络线。
在过去,网络封包分析软件是非常昂贵,或是专门属于营利用的软件。Ethereal的出现改变了这一切。在GNU GPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其程式码,并拥有针对其原始码修改及客制化的权利。Ethereal是目前全世界最广泛的网络封包分析软件之一
五层网络协议、功能
OSI七层模型
OSI七层协议模型主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。
三种模型结构:
各层对应的协议:
OSI七层网络模型 | TCP/IP四层概念模型 | 对应网络协议 |
应用层(Application) | HTTP、TFTP、FTP、NFS、WAIS、SMTP | |
表示层(Presentation) | 应用层 | Telnet、Rlogin、SNMP、Gopher |
会话层(Session) | SMTP、DNS | |
运输层(Transport) | 传输层 | TCP、UDP |
网络层(Network) | 网络层 | IP、ICMP、ARP、RAPP、AKP、UUCP |
数据链路层(Data Link) | 数据链路层 | FDDI、Ethernet、Arpanet、PDN、SLIP、PPP |
物理层(Physical) | IEEE 802.1A、IEEE802.2到IEEE 802.11 |
第五层——应用层(application layer)
- 应用层是体系结构中的最高层。直接为用户的应用进程(例如电子邮件、文档传输和终端仿真)提供服务。
- 在因特网中的应用层协议很多,如支持万维网应用的HTTP协议,支持电子邮件的SMPT协议、支持文件传送的FTP协议、DNS协议、POP3、SNMP、TeInet等等。
第四层——运输层(transport layer)
- 运输层负责向两个主机中进程之间的通信提供服务。由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能
- 复用,就是多个应用进程可同时使用下面运输层的服务
- 分用,就是把收到的信息分别交付给上面应用层中相应的进程。
- 运输层主要使用以下两种协议:
- 传输控制协议TCP(Tranmisson Contronl Protocol):面向连接的,数据传输的单位是报文段,能够提供可靠的交付。
- 用户数据包协议UDP(User Datagram Protocol):无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”。
第三层——网络层(networl layer)
网络层主要包含以下两个任务:
- 负责为分组交换网上的不同主机提供通信服务。在发送数据是,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫作IP数据报,或简称为数据报。
- 选中合适的路由,使源主机运输层所传下来的分组,能够通过网络中的路由器找到目的主机。
- 协议:IP、ICMP、IGMP、ARP、RAPP
第二层——数据链路层(Data link layer)
在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧,在两个相邻结点之间的链路上“透明”的传送帧中的数据。
每一帧包含数据和必要的控制信息(如同步地址、地址信息、差错控制等)。典型的帧长是几百字节到一千多字节。
- 注:”透明”是一个很重要的术语。它表示,某一个实际存在的事物看起来却好像不存在一样。”在数据链路层透明传送数据”表示无力什么样的比特组合的数据都能够通过这个数据链路层。因此,对所传送的数据来说,这些数据就“看不见”数据链路层。或者说,数据链路层对这些数据来说是透明的。 (1)在接收数据时,控制信息使接收端能知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。 (2)控制信息还使接收端能检测到所收到的帧中有无差错。如发现有差错,数据链路层就简单地丢弃这个出了差错的帧,以免继续传送下去白白浪费网络资源。如需改正错误,就由运输层的TCP协议来完成。
第一层——物理层(physical layer)
在物理层上所传数据的单位是比特。物理层的任务就是透明的传送比特流。
数据在各层之间的传递过程
常见端口及对应服务
端口 | 服务 |
---|---|
21 | 主要用于FTP(File Transfer Protocol,文件传输协议)服务 |
22 | ssh传统的网络服务程序,如ftp、pop和teInet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据 |
23 | Telnet服务 |
25 | SMTP服务 |
80 | HTTP服务器 |
110 | POP3 |
1158 | Oracle EmCTL |
1521 | Oracle数据库 |
3036 | MySQL |
3389 | WIN2003远程登录 |
8080 | JBOSS |
8080 | TOMCAT |
9080 | Webshpere应用程序 |
9090 | webshpere |
1、按端口号分布划分
(1)知名端口(Well-Known Ports)
知名端口即众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务。比如21端口分配给FTP服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务等等。
(2)动态端口(Dynamic Ports)
动态端口的范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。比如1024端口就是分配给第一个向系统发出申请的程序。在关闭程序进程后,就会释放所占用的端口号。
不过,动态端口也常常被病毒木马程序所利用,如冰河默认连接端口是7626、WAY 2.4是8011、Netspy 3.0是7306、YAI病毒是1024等等。
2、按协议类型划分
按协议类型划分,可以分为TCP、UDP、IP和ICMP(Internet控制消息协议)等端口。下面主要介绍TCP和UDP端口:
(1)TCP端口
TCP端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP服务的21端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口等等。
(2)UDP端口
UDP端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。常见的有DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和4000端口等等。