ARP协议:地址解析协议 ICMP协议:互联网控制消息协议 TCP协议:传输控制协议 UDP协议:用户数据报协议 DNS协议:域名系统 HTTP协议:超文本传输安全协议 FTP协议:文件传输协议 在进入协议之前:我们先科普一下,我们是怎么进行网络传输的。 有个OSI模型不知道大家听说没有: 开放式系统互联模型(英语:OpenSystemInterconnectionModel,缩写:OSI;简称为OSI模型)是一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。定义于ISOIEC74981。 该模型将通信系统中的数据流划分为七个层,从分布式应用程序数据的最高层表示到跨通信介质传输数据的物理实现。每个中间层为其上一层提供功能,其自身功能则由其下一层提供。功能的类别通过标准的通信协议在软件中实现。 开放式系统互联模型的开发始于上世纪70年代后期,用以支持各种计算机联网方法的出现。在上世纪80年代,该模型成为国际标准化组织(ISO)开放系统互连小组的工作产品。历史 在制定计算机网络标准方面,起着重大作用的两大国际组织是:国际电信联盟电信标准化部门,与国际标准组织(ISO),虽然它们工作领域不同,但随着科学技术的发展,通信与信息处理之间的界限开始变得比较模糊,这也成了国际电信联盟电信标准化部门和ISO共同关心的领域。1984年,ISO发布了著名的ISOIEC7498标准,它定义了网络互联的7层框架,也就是开放式系统互联参考模型 层次划分 OSI将计算机网络体系结构划分为以下七层,标有1~7,第1层在底部。 现OSIRM是英文OpenSystemsInterconnectionReferenceModel的缩写。第7层应用层 应用层(ApplicationLayer)提供为应用软件而设计的接口,以设置与另一应用软件之间的通信。例如:HTTP、HTTPS、FTP、Telnet、SSH、SMTP、POP3等。第6层表示层 表示层(PresentationLayer)把数据转换为能与接收者的系统格式兼容并适合传输的格式。第5层会话层 会话层(SessionLayer)负责在数据传输中设置和维护计算机网络中两台计算机之间的通信连接。第4层传输层 传输层(TransportLayer)把传输表头(TH)加至资料以形成分组。传输表头包含了所使用的协议等发送信息。例如:传输控制协议(TCP)等。第3层网络层 网络层(NetworkLayer)决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成分组。网络表头包含了网络资料。例如:互联网协议(IP)等。第2层数据链路层 数据链路层(DataLinkLayer)负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形成信息框(InfoBox)。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链表尾(DLT)是一串指示数据包末端的字符串。例如以太网、无线局域网(WiFi)和通用分组无线服务(GPRS)等。 分为两个子层:逻辑链路控制(logicallinkcontrol,LLC)子层和介质访问控制(Mediaaccesscontrol,MAC)子层。第1层物理层 物理层(PhysicalLayer)在局域网上发送数据帧(DataFrame),它负责管理电脑通信设备和网络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机接口卡等。 由于前三层的共性,人们喜欢把前三层规划为一个层级。所以在wireshark里面我们会看到分为4个层级的具体内容展现给我们 wireshark中间模块为,包的4个层级 协议详解;ARP协议:地址解析协议(发生在第二层:网络链路层) 地址解析协议(英语:AddressResolutionProtocol,缩写:ARP)是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,它在IPv4中极其重要。 ARP是通过网络地址来定位MAC地址。ICMP协议:互联网控制消息协议(发生在第三层:网络层) 互联网控制消息协议(英语:InternetControlMessageProtocol,缩写:ICMP)是互联网协议族的核心协议之一。它用于网际协议(IP)中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些信息,使管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。 ICMP依靠IP来完成它的任务,它是IP的主要部分。它与传输协议(如TCP和UDP)显著不同:它一般不用于在两点间传输数据。它通常不由网络程序直接使用,除了ping和traceroute这两个特别的例子。IPv4中的ICMP被称作ICMPv4,IPv6中的ICMP则被称作ICMPv6 ICMP,我们常说的4次握手,黑客一般三次就断开了 工作过程: 本机发送一个ICMPEchoRequest的包 接受方返回一个ICMPEchoReply,包含了接受到数据拷贝和一些其他指令 192。168。1。53广播:谁有192。168。1。1的MAC地址? 192。168。1。1应答:192。168。1。1的MAC地址是xxxXXXXXXXX 我们分析一下过程,我们在终端输入EXIT实际上是在我们Kali上执行的命令,表示我们SSHD的Server端向客户端发起关闭链接请求。 第一次挥手:服务端发送一个〔FINACK〕,表示自己没有数据要发送了,想断开连接,并进入FINWAIT1状态e 第二次挥手:客户端收到FIN后,知道不会再有数据从服务端传来,发送ACK进行确认,确认序号为收到序号1(与SYN相同,一个FIN占用一个序号),客户端进入CLOSEWAIT状态。e 第三次挥手:客户端发送〔FINACK〕给对方,表示自己没有数据要发送了,客户端进入LASTACK状态,然后直接断开TCP会话的连接,释放相应的资源。 第四次挥手:服务户端收到了客户端的FIN信令后,进入TIMEDWAIT状态,并发送ACK确认消息。服务端在TIMEDWAIT状态下,等待一段时间,没有数据到来,就认为对面已经收到了自己发送的ACK并正确关闭了进入CLOSE状态,自己也断开了TCP连接,释放所有资源。当客户端收到服务端的ACK回应后,会进入CLOSE状态并关闭本端的会话接口,释放相应资源。eTCP协议:传输控制协议(正向解析) 传输控制协议(英语:TransmissionControlProtocol,缩写:TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。用户数据报协议(UDP)是同一层内另一个重要的传输协议。UDP协议:用户数据报协议(反向解析) 用户资料包协议(英语:UserDatagramProtocol,缩写:UDP;又称用户资料包协议)是一个简单的面向资料包的通信协议,位于OSI模型的传输层。该协议由DavidP。Reed在1980年设计且在RFC768中被规范。典型网络上的众多使用UDP协议的关键应用在一定程度上是相似的。 在TCPIP模型中,UDP为网络层以上和应用层以下提供了一个简单的接口。UDP只提供资料的不可靠传递,它一旦把应用程序发给网络层的资料发送出去,就不保留资料备份(所以UDP有时候也被认为是不可靠的资料包协议)。UDP在IP资料包的头部仅仅加入了复用和资料校验字段。 UDP适用于不需要或在程序中执行错误检查和纠正的应用,它避免了协议栈中此类处理的开销。对时间有较高要求的应用程序通常使用UDP,因为丢弃资料包比等待或重传导致延迟更可取。DNS协议:域名系统【比如:www。baidu。com】(应用层) 域名系统(英语:DomainNameSystem,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53〔1〕。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。 开始时,域名的字符仅限于ASCII字符的一个子集。2008年,ICANN通过一项决议,允许使用其它语言作为互联网顶级域名的字符。使用基于Punycode码的IDNA系统,可以将Unicode字符串映射为有效的DNS字符集。因此,诸如XXX。中国、XXX。台湾的域名可以在地址栏直接输入并访问,而不需要安装插件。但是,由于英语的广泛使用,使用其他语言字符作为域名会产生多种问题,例如难以输入、难以在国际推广等。记录类型 主条目:域名服务器记录类型列表 DNS系统中,常见的资源记录类型有:主机记录(A记录):RFC1035定义,A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上。别名记录(CNAME记录):RFC1035定义,CNAME记录用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录。IPv6主机记录(AAAA记录):RFC3596定义,与A记录对应,用于将特定的主机名映射到一个主机的IPv6地址。服务位置记录(SRV记录):RFC2782定义,用于定义提供特定服务的服务器的位置,如主机(hostname),端口(portnumber)等。域名服务器记录(NS记录):用来指定该域名由哪个DNS服务器来进行解析。您注册域名时,总有默认的DNS服务器,每个注册的域名都是由一个DNS域名服务器来进行解析的,DNS服务器NS记录地址一般以以下的形式出现:ns1。domain。com、ns2。domain。com等。简单的说,NS记录是指定由哪个DNS服务器解析你的域名。NAPTR记录:RFC3403定义,它提供了正则表达式方式去映射一个域名。NAPTR记录非常著名的一个应用是用于ENUM查询。HTTP协议:超文本传输安全协议 超文本传输协议(英语:HyperTextTransferProtocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 HTTP是一个客户端(用户)和服务端(网站)之间请求和应答的标准,通常使用TCP协议。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(useragent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(originserver)。在用户代理和源服务器中间可能存在多个中间层,比如代理服务器、网关或者隧道(tunnel)。FTP协议:文件传输协议 文件传输协议(英语:FileTransferProtocol,缩写:FTP)是一个用于在计算机网络上在客户端和服务器之间进行文件传输的应用层协议。文件传送(filetransfer)和文件访问(fileaccess)之间的区别在于:前者由FTP提供,后者由如NFS等应用系统提供。RFC959定义了此规范。 FTP是一个8位的客户端服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间,会非常长;并且不时的必须执行一些冗长的登录进程。FTP实现的目标促进文件的共享(计算机程序或数据)鼓励间接或者隐式的使用远程计算机向用户屏蔽不同主机中各种文件存储系统(Filesystem)的细节可靠和高效的传输数据