网络知识

网络知识

一、网络初识

1.网络概念

 在计算机领域中,网络是信息传输、接收、共享的虚拟平台,通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享。

2.分类

按覆盖范围分:

局域网LAN(作用范围一般为几米到几十公里)。

城域网MAN(界于WANLAN之间)。

广域网WAN(作用范围一般为几十到几千公里)。

按拓扑结构分类:

总线型

图片1.png 

环型

图片2.png 

星型

图片3.png 

网状

图片4.png 

按信息的交换方式来分:

电路交换

报文交换

报文分组交换

二、网络模型

图片5.png 

1.物理层

为启动、维护以及关闭物理链路定义了电气规范、机械规范、过程规范和功能规范。

2.数据链路层

访问介质 定义如何格式化数据以便进行传输以及如何控制对网络的访问。

3.网络层

数据传输路由数据包、选择传递数据的最佳路径、支持逻辑寻址和路径选择

4.传输层

确保传输数据的可靠性、建立维护和终止虚拟电路、通过错误检测和恢复、信息流控制来保障可靠性

5.会话层

主机间通信建立、管理和终止在应用程序之间的会话

6.表示层

数据表示确保接收系统可以读出该数据、格式化数据、构建数据、协商用于应用层的数据传输语法、提供加密

7.应用层

网络进程访问应用层为应用程序进程(例如。电子邮件、文件传输和终端仿真)提供网络服务、提供用户身份验证

三、网络设备

1.网桥

网桥这种设备看上去有点像中继器。它具有单个的输入端口和输出端口。它与中继器的不同之处就在于它能够解析它收发的数据。网桥属于 OSI 模型的数据链路层;数据链路层能够进行流控制、纠错处理以及地址分配。网桥能够解析它所接受的帧,并能指导如何把数据传送到目的地。特别是它能够读取目标地址信息(MAC),并决定是否向网络的其他段转发(重发)数据包,而且,如果数据包的目标地址与源地址位于同一段,就可以把它过滤掉。当节点通过网桥传输数据时,网桥就会根据已知的 MAC 地址和它们在网络中的位置建立过滤数据库(也就是人们熟知的转发表)。网桥利用过滤数据库来决定是转发数据包还是把它过滤掉。

2.交换机

交换机(switch)就是一种在通信系统中完成信息交换功能的设备。是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。从广义上来看,网络交换机分为两种:广域网交换机和局域网交换机。广域网交换机主要应用于电信领域,提供通信用的基础平台。而局域网交换机则应用于局域网络,用于连接终端设备,如PC机及网络打印机等。

3.路由器

路由器是一种多端口设备,可以连接不同传输速率并运行于各种环境的局域网和广域网,也可以采用不同的协议。路由器属于OS I 模型的第三层。网络层指导从一个网段到另一个网段的数据传输,也能指导从一种网络向另一种网络的数据传输。过去,由于过多的注意第三层或更高层的数据,如协议或逻辑地址,路由器曾经比交换机和网桥的速度慢。因此,不像网桥和第二层交换机,路由器是依赖于协议的。在它们使用某种协议转发数据前,它们必须要被设计或配置成能识别该协议。

四、TCP/IP协议

图片6.png 

1.定义

Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。

2.IP

IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层—TCPUDP层;相反,IP层也把从TCPUDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是否按顺序发送的或者有没有被破坏,IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。

高层的TCPUDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCPUDP的服务来说,使用了该选项的IP包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。

3.TCP

TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。

TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。

如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。

面向连接的服务(例如TelnetFTPrloginX WindowsSMTP)需要高度的可靠性,所以它们使用了TCPDNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。

4.UDP

UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。

UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。

UDPTCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询应答的服务,例如NFS。相对于FTPTelnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNSDNS也使用TCP)。欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。

5.常用TCP/UDP端口号大全

端口号可以分为三个范围:“已知端口”、“注册端口”以及“动态和或专用端口”。

“已知端口”是从 0 1023 的端口。

“注册端口”是从 1024 49151 的端口。

“动态和/或专用端口”是从 49152 65535 的端口。理论上,不应为服务分配这些端口。

21—– tcp FTP文件传输协议

22——tcpSSH安全登录、网络间传送(SCP)和端口重定向

25—— SMTP

69——– TFTP

80——– HTTP 超文本传输协议

23——– Telnet 不安全的文本传送

79——— Finger

110——– POP3

113——— ident old identification server system

119——– NNTP used for usenet newsgroups

220/tcp IMAP3

443/tcp HTTPS used for securely transferring web pages

 

 

端口:0

服务:Reserved

说明:通常用于分析操作系统。这一方法能够工作是因为在一些系统中0”是无效端口,当你试图使用通常的闭合端口连接它时将产生不同的结果。一种典型的扫描,使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。

 

端口:1

服务:tcpmux

说明:这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者,默认情况下tcpmux在这种系统中被打开。Irix机器在发布是含有几个默认的无密码的帐户,如:IPGUEST UUCPNUUCPDEMOS TUTORDIAGOUTOFBOX等。许多管理员在安装后忘记删除这些帐户。因此HACKERINTERNET上搜索tcpmux并利用这些帐户。

 

端口:7

服务:Echo

说明:能看到许多人搜索Fraggle放大器时,发送到X.X.X.0X.X.X.255的信息。

 

端口:19

服务:Character Generator

说明:这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时会发送含有垃圾字符的数据流直到连接关闭。HACKER利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。同样Fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包,受害者为了回应这些数据而过载。

 

端口:21

服务:FTP

说明:FTP服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymousFTP服务器的方法。这些服务器带有可读写的目录。木马Doly TrojanForeInvisible FTPWebExWinCrashBlade Runner所开放的端口。

 

端口:22

服务:Ssh

说明:PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点,如果配置成特定的模式,许多使用RSAREF库的版本就会有不少的漏洞存在。

 

端口:23

服务:Telnet

说明:远程登录,入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。木马Tiny Telnet Server就开放这个端口。

 

端口:25

服务:SMTP

说明:SMTP服务器所开放的端口,用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭,他们需要连接到高带宽的E-MAIL服务器上,将简单的信息传递到不同的地址。木马AntigenEmail Password SenderHaebu CocedaShtrilitz StealthWinPCWinSpy都开放这个端口。

 

端口:31

服务:MSG Authentication

说明:木马Master ParadiseHackers Paradise开放此端口。

 

端口:42

服务:WINS Replication

说明:WINS复制

 

端口:53

服务:Domain Name ServerDNS

说明:DNS服务器所开放的端口,入侵者可能是试图进行区域传递(TCP),欺骗DNSUDP)或隐藏其他的通信。因此防火墙常常过滤或记录此端口。

 

端口:67

服务:Bootstrap Protocol Server

说明:通过DSLCable modem的防火墙常会看见大量发送到广播地址255.255.255.255的数据。这些机器在向DHCP服务器请求一个地址。HACKER常进入它们,分配一个地址把自己作为局部路由器而发起大量中间人(man-in-middle)攻击。客户端向68端口广播请求配置,服务器向67端口广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的IP地址。

 

端口:69

服务:Trival File Transfer

说明:许多服务器与bootp一起提供这项服务,便于从系统下载启动代码。但是它们常常由于错误配置而使入侵者能从系统中窃取任何 文件。它们也可用于系统写入文件。

 

端口:79

服务:Finger Server

说明:入侵者用于获得用户信息,查询操作系统,探测已知的缓冲区溢出错误,回应从自己机器到其他机器Finger扫描。

 

端口:80

服务:HTTP

说明:用于网页浏览。木马Executor开放此端口。

 

端口:99

服务:gram Relay

说明:后门程序ncx99开放此端口。

 

端口:102

服务:Message transfer agent(MTA)-X.400 over TCP/IP

说明:消息传输代理。

 

端口:109

服务:Post Office Protocol -Version3

说明:POP3服务器开放此端口,用于接收邮件,客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交 换缓冲区溢出的弱点至少有20个,这意味着入侵者可以在真正登陆前进入系统。成功登陆后还有其他缓冲区溢出错误。

 

端口:110

服务:SUN公司的RPC服务所有端口

说明:常见RPC服务有rpc.mountdNFSrpc.statdrpc.csmdrpc.ttybdamd

 

端口:113

服务:Authentication Service

说明:这是一个许多计算机上运行的协议,用于鉴别TCP连接的用户。使用标准的这种服务可以获得许多计算机的信息。但是它可作为许多服务的记录器,尤其是FTPPOPIMAPSMTPIRC等服务。通常如果有许多客户通过防火墙访问这些服务,将会看到许多这个端口的连接请求。记住,如果阻断这个端口客户端会感觉到在防火墙另一边与E-MAIL服务器的缓慢连接。许多防火墙支持TCP连接的阻断过程中发回RST。这将会停止缓慢的连接。

 

端口:119

服务:Network News Transfer Protocol

说明:NEWS新闻组传输协议,承载USENET通信。这个端口的连接通常是人们在寻找USENET服务器。多数ISP限制,只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送SPAM

 

端口:135

服务:Location Service

说明:Microsoft在这个端口运行DCE RPC end-point mapper为它的DCOM服务。这与UNIX 111端口的功能很相似。使用DCOMRPC的服务利用计算机上的end-point mapper注册它们的位置。远端客户连接到计算机时,它们查找end-point mapper找到服务的位置。HACKER扫描计算机的这个端口是为了找到这个计算机上运行Exchange Server吗?什么版本?还有些DOS攻击直接针对这个端口。

 

端口:137138139

服务:NETBIOS Name Service

说明:其中137138UDP端口,当通过网上邻居传输文件时用这个端口。而139端口:通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于windows文件和打印机共享和SAMBA。还有WINS Regisrtation也用它。

 

端口:143

服务:Interim Mail Access Protocol v2

说明:和POP3的安全问题一样,许多IMAP服务器存在有缓冲区溢出漏洞。记住:一种LINUX蠕虫(admv0rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已经被感染的用户。当REDHAT在他们的LINUX发布版本中默认允许IMAP后,这些漏洞变的很流行。这一端口还被用于IMAP2,但并不流行。

 

端口:161

服务:SNMP

说明:SNMP允许远程管理设备。所有配置和运行信息的储存在数据库中,通过SNMP可获得这些信息。许多管理员的错误配置将被暴露在InternetCackers将试图使用默认的密码publicprivate访问系统。他们可能会试验所有可能的组合。SNMP包可能会被错误的指向用户的网络。

 

端口:177

服务:X Display Manager Control Protocol

说明:许多入侵者通过它访问X-windows操作台,它同时需要打开6000端口。

 

端口:389

服务:LDAPILS

说明:轻型目录访问协议和NetMeeting Internet Locator Server共用这一端口。

 

端口:443

服务:Https

说明:网页浏览端口,能提供加密和通过安全端口传输的另一种HTTP

 

端口:456

服务:[NULL]

说明:木马HACKERS PARADISE开放此端口。

 

端口:513

服务:Login,remote login

说明:是从使用cable modemDSL登陆到子网中的UNIX计算机发出的广播。这些人为入侵者进入他们的系统提供了信息。

 

端口:544

服务:[NULL]

说明:kerberos kshell

 

端口:548

服务:Macintosh,File Services(AFP/IP)

说明:Macintosh,文件服务。

端口:553

服务:CORBA IIOP UDP

说明:使用cable modemDSLVLAN将会看到这个端口的广播。CORBA是一种面向对象的RPC系统。入侵者可以利用这些信息进入系统。

 

端口:555

服务:DSF

说明:木马PhAse1.0Stealth SpyIniKiller开放此端口。

 

端口:568

服务:Membership DPA

说明:成员资格 DPA

 

端口:569

服务:Membership MSN

说明:成员资格 MSN

 

端口:635

服务:mountd

说明:Linuxmountd Bug。这是扫描的一个流行BUG。大多数对这个端口的扫描是基于UDP的,但是基于TCPmountd有所增加(mountd同时运行于两个端口)。记住mountd可运行于任何端口(到底是哪个端口,需要在端口111portmap查询),只是Linux默认端口是635,就像NFS通常运行于2049端口。

 

端口:636

服务:LDAP

说明:SSLSecure Sockets layer

 

端口:666

服务:Doom Id Software

说明:木马Attack FTPSatanz Backdoor开放此端口

 

端口:993

服务:IMAP

说明:SSLSecure

附:三次握手和四次挥手详解

三次握手
  所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发,整个流程如下图所示:
图片7.png
2 TCP三次握手
  (1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
  (2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
  (3)第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。
 
  SYN攻击:
  在三次握手过程中,Server发送SYN-ACK之后,收到Client的ACK之前的TCP连接称为半连接(half-open connect),此时Server处于SYN_RCVD状态,当收到ACK后,Server转入ESTABLISHED状态。SYN攻击就是Client在短时间内伪造大量不存在的IP地址,并向Server不断地发送SYN包,Server回复确认包,并等待Client的确认,由于源地址是不存在的,因此,Server需要不断重发直至超时,这些伪造的SYN包将产时间占用未连接队列,导致正常的SYN请求因为队列满而被丢弃,从而引起网络堵塞甚至系统瘫痪。SYN攻击时一种典型的DDOS攻击,检测SYN攻击的方式非常简单,即当Server上有大量半连接状态且源IP地址是随机的,则可以断定遭到SYN攻击了,使用如下命令可以让之现行:
  #netstat -nap | grep SYN_RECV

三、四次挥手
 三次握手耳熟能详,四次挥手估计就网络知识,所谓四次挥手(Four-Way Wavehand)即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发,整个流程如下图所示:
图片8.png
3 TCP四次挥手
  由于TCP连接时全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭,上图描述的即是如此。
 (1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
  (2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
 (3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
  (4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。
  上面是一方主动关闭,另一方被动关闭的情况,实际中还会出现同时发起主动关闭的情况,具体流程如下图:

图片9.png
4 同时挥手
  流程和状态在上图中已经很明了了,在此不再赘述,可以参考前面的四次挥手解析步骤。

 

 

 

 

原创文章,作者:178babyhanggege,如若转载,请注明出处:http://www.178linux.com/42481

(0)
上一篇 2016-09-01 08:49
下一篇 2016-09-01 08:49

相关推荐

  • 用keepalived高可用nginx

    单主模型 环境四个虚拟机 upstream server:node1:172.16.100.6         CeotOS 6 upstream server:node3:172.16.100.69         CeotOS 7 节点1:172.16.100.67                        CeotOS 7 节点2:node2:17…

    2017-10-15
  • N25第四周总结

    linux bassic Week 4 Blogging 1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 ~]# cp -r /etc/skel/   /home/tuser1/ ~]# chmod&n…

    Linux干货 2016-12-26
  • N25期–第十三周作业

    1、 建立samba共享,共享目录为/data,要求:(描述完整的过程)  1)共享名为shared,工作组为magedu;  2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;  3)添加sam…

    Linux干货 2017-04-05
  • shell脚本基础练习2

    1.编写一个脚本/root/bin/createuser.sh,脚本的执行语法必须是:createuser.sh -username -m password,选项与参数间可支持多空格,但不能顺序颠倒。当未指定正确的选项或参数时,以错误输出方式提示“createuser.sh -u username -m password ”后退出脚本。用…

    2017-08-12
  • 设计模式 ( 十二 ) 职责链模式(Chain of Responsibility)(对象行为

    1.概述        你去政府部门求人办事过吗?有时候你会遇到过官员踢球推责,你的问题在我这里能解决就解决,不能解决就推卸给另外个一个部门(对象)。至于到底谁来解决这个问题呢?政府部门就是为了可以避免屁民的请求与官员之间耦合在一起,让多个(部门)对象都有可能接收请求,将这些(部门)对象连接成一条链,并且沿着这条链传递…

    Linux干货 2015-07-15
  • 【超全整理】《Linux云计算从入门到精通》系列实战笔记全放送

          为了方便Linux云计算爱好者的学习查看,马哥Linx云计算团队特别整理了《Linux云计算从入门到精通》年度重磅大放送,囊括了整个学习过程的学习精华,内容全部由马哥Linux云计算学员撰写,欢迎大家支持!!!       详情请看:  一、Linux运维基础实战入门 从Linux0基础入门开始,全面讲解作为新手如何学习Linux,以及学习方法和…

    2017-09-14