分类: 网络文档

  • HCNA-7.ARP

    HCNA-7.ARP

    ARP:Address Resolution Protocol,地址解析协议

    在二层通信中必须要有目标MAC,但是这个MAC一般是未知的,已知的一般只有三层协议中的目标IP地址(域名是通过解析获取的IP),这个时候就需要ARP广播进行询问、寻找该目标MAC地址。

    负责解析IP地址对应的MAC地址

  • HCNA-5.端口号、传输层协议TCP与UDP

    HCNA-5.端口号、传输层协议TCP与UDP

    传输层

    传输层概述:

    • 传输层提供端到端的连接
    • 网络层提供点到点的连接

    在网络中,网络层会提供一个IP给设备,可以称为节点、node,在数据包中,根据IP找到了这个设备。在网络层解封装后,只有该设备的地址,在该设备上运行着许多应用程序,这时候就需要传输层的解封装后的端口号,用端口号确定该数据包传达到哪个应用。

    翻译:我收到了来自同一来源mac和ip的三个数据包。我的哪一个应用程序获取每个应用程序中的数据

    翻译:我会查看UDP或TCP目标端口来识别应用程序!


    传输层端口:Port,用来区分不同的网络服务

    在传输中,两个设备互发数据时,源IP、目标IP会固定,然后根据应用使用的协议,在传输层决定使用TCP或UDP,接收方的端口号一般是不会相同的。

    例如在http服务端中,80为服务端口,设备需要访问时会发送一个请求包,该请求包在传输层数据中会有目标IP(服务端IP),目标端口(服务端口),源IP(本设备的IP),源端口(源端口为随机)。在发送请求时会开通一个临时端口,该端口随机变化(系统自动获取一个未被占用的端口),用于发送接收数据包,当应用关闭时(网络会话关闭时),才会释放端口。

    在华为设备中,可以使用tcp status命令查看当前设备与其他设备建立的连接。 Windows系统中,可以使用性能监视器查看。

    常见的协议端口:

    FTP:21(控制端口)、20(收端,根据FTP协议、模式使用)

    HTTP:80 HTTPS:443

    Telnet:23 SSH:22

    SMTP:25 POP3:110 IMAP:143

    DHCP:67服务端,68客户端。

    在一个端口被占用后,如果还有程序需要占用该端口则需要关闭之前建立的连接,否则后面的程序将无法占用该端口。

    案例:在一台服务器上搭建多个Web站点,解决方法有3个

    1.端口号不同:修改服务占用的端口,开启两个服务,分别设置服务使用的端口号为80、8080,只要端口不一样(冲突)即可。

    2.不同的IP:配置多IP即可,两个服务端口号同样使用80端口。非常不推荐,特别是从硬件来讲,灵活性、可用性极低。

    3.不同的主机名(域名):将IP替换成域名,利用Web服务的虚拟主机配置,将不同域名映射到不同的站点目录。


    传输层协议:

    协议 备注
    TCP Transmission Control Protocol,传输控制协议
    可靠的、面向连接的协议
    传输效率低,类似打电话
    UDP User Datagram Protocol,用户数据报协议
    不可靠的、无连接的服务
    传输效率高,类似群聊

    TCP:

    UDP:

    TCP与UDP数据包结构对比

    TCP比UDP多了序列号、确认序号、报头长度、保留位、标记位(URG、ACK等)、窗口、校验和、晋级为、可选项。

    TCP的数据包:

    UDP的数据包:

    TCP:

    所有基于TCP协议的应用,都会建立一个TCP连接。

    TCP会话的建立-三次握手:

    在应用建立连接时,会先发送SYN,(第一次握手)全称 Synchronize Sequence ,标记里的同步位,意思是请求同步。该数据包会有一个序列号,seq(Sequence Number)。 在服务收到后,会把标记位的ACK(Acknowleclgment number)进行标记,用作确认,该包也会包含序列号。 在收到服务器回复后,应用会对服务发过来的包进行确认,该包的序列号会是在上次发包数据中的下个序列号的数据,并且在ACK中会对收到的包中的序列号进行确认,至此三次握手完成。

    三次握手的标记位分别是:SYN ,SYN、ACK,ACK

    在三次握手只有第一个包是没有确认位(ACK)的,也只有第一个包是有同步位(SYN)的。

    TCP会话的确认和重传

    在真实抓包中,ACK的数值取决于要回复的数据包的序列号数值,再加上回包的字节长度,最后就会得出一个确认号。如下图所示, 在TCP会话建立完成后,不是每个数据包都会有回复。

    如果总共发了3个包,每个数据包的字节长度都是1000的情况下,那么收包方回复的确认位为4000就代表了前面3个包都收到了

    如果出现丢包的情况下,如上图所示,丢失了一个ack为2000的包,那么服务器会发送一个ack为2000的数据包到客户端,客户端收到后,会重发ack为2000的包,在服务器收到后,将会发回正确的ack4000.如果在重发过程中,响应时间过久会导致服务超时,断开TCP会话。

    TCP会话的拥塞和流量控制

    在每次发包中,会有一个窗口大小,相当于缓冲区,,其作用就是告诉对方,我下次可以接受的数据包只能有这么大。

    TCP会话的终止-四次挥手:

    主要使用标记位中的终止位(FIN)。

    UDP

    UDP不提供重传机制,占用资源小,处理效率高 。

    一些时延敏感的流量,如语音、视频等,通常使用UDP作为传输层协议。


    TCP和UDP的对比

    特性 传输控制协议(TCP) 用户数据报协议(UDP)
    连接类型 面向连接 无连接
    传输可靠性 可靠传输(确认机制、重传) 尽力而为的传输(无确认机制)
    流量控制 支持滑动窗口机制 无流量控制及窗口机制
    典型应用 HTTP、FTP、SMTP、SSH等 TFTP、DNS、DHCP、流媒体、游戏等
  • HCNA-4.常见协议

    HCNA-4.常见协议

    常见协议:

    应用层

    应用层概述:直接为应用程序提供服务

    DNS: Domain Name System,域名解析系统

    • 建立IP地址与域名之间的映射关系
    • 可以将域名解析为IP地址
    • 可以将IP地址解析为域名
    • 负责DNS的就是DNS服务器

    域名是分层的,根域是.(小数点),我们注册(购买)的都是顶级域名。

    顶级域名常见的有国家的,cn(中国)、kor(韩国)、ru(俄罗斯)。类型的有com(公司)、org,mil(军事)、gov(政府机关)、edu(教育)。

    注册购买顶级域名后,该顶级域名下的所有分级域名下都可以使用。每一个小数点相对应每一级域名,baidu.com的baidu就是二级域名。

    主机A需要访问到主机B时,如果是用IP访问,则不需要经过DNS服务器。如果使用域名访问,则必须要询问DNS服务器该域名指向的主机B地址在哪里,才能找到路由访问主机B。

    主机A发送DNS请求给DNS服务器,收到DNS服务器的回答后,则知道主机B的地点在哪里,然后直接通过IP地址给主机B发送请求。

    在抓包数据中,DNS请求包数据中的queries字段中会包含请求解析的域名,DNS回复包数据中,正常会包含有queries字段的数据,以及Answers字段数据。如果有其他域名别名的情况下,也会解析出域名。 type字段为域名解析的类型,图上所示的是A类型,还有CHAME(别名)类型,体现为该域名是谁的别名。

    DNS缓存调试工具:nslookup


    HTTP与HTTPS服务:Hypertext Transfer Protocol,超文本传输协议

    • 帮助客户端访问万维网(World Wide Web)
    • 网页浏览器通过翻译HTML文件来表现文本、图像、音乐、动画及视频等对象
    • HTTP没有加密验证机制,明文传输,安全性不足;
    • HTTPS使用SSL、CA证书等技术进行安全防护,越来越多的Web网站强制使用。

    现大部分网站都已经强制使用https,主要因为http没有加密。用http协议下,数据不加密,可以通过转ascii编码转为url编码,再通过解码获取到信息。

    在浏览网页时,会先发送一个请求(Get)给服务器,服务器就会回复数据包(一般不止一个)

    post的包为搜索请求包。


    SMTP与POP3:邮件服务

    在发送邮件时,会通过SMTP协议发送到SMTP服务器,SMTP服务器会将邮件发送到SMTP服务器,当用户登录邮箱时,会从使用pop3协议或imtp协议从SMTP服务器获取自己的邮件。

    smtp、pop、imtp协议都是不加密的,可以通过抓包获取到账号密码、邮件内容,所以现在大部分服务器都必须用ssl加密端口连接。大部分邮件软件也会对邮件数据包进行加密(等级不高)。


    Telnet: Terminal Network,终端网络

    • 一种远程管理协议,可以用来远程管理:网络设备、服务器、数据库等
    • 借助终端工具管理会话,常用的终端工具有: SecureCRT、Putty、Xshell
    • 明文数据传输,不安全(建议使用SSH)

    地址可达,服务开启即可使用该协议进行远程管理。

    串口号:与PC相连的端口号。


    FTP与TFTP: 主要用来传输文件的协议

    协议 备注
    FTP File Transfer Protocol,文件传输协议
    提供可靠的文件传输服务
    具有认证、权限等功能
    基于TCP协议
    TFTP Trivial File Transfer Protocol,简单文件传输协议
    提供不可靠的文件传输服务
    常用于网络设备的配置文件和系统文件传输
    基于UDP协议

    阶段总结

    现阶段访问大部分服务都是使用域名的方式访问,都需要经过DNS服务器对域名解析过后,解析到地址后,地址可达,对应服务已开启的情况下即可访问。

  • HCNA-3.网络模型

    HCNA-3.网络模型

    网络模型

    分层思想:将复杂的流程分解为几个功能相对单一的子过程

    • 流程更加清晰,复杂问题简单化
    • 更容易发现问题并针对性的解决问题

    后期排错时,可以根据层次排错。

    图解: 普通用户只关心最终结果。 而网络工程师需要了解从生产到用户手上的整条链路, 当出现问题时,就可以根据分层来寻找出错的位置。


    网络标准化:规范不同的互联标准,兼容

    如果每个人的语言不一样,那么将无法进行交流,同理计算机也一样,所以这个时候就需要统一语言,从而进行交流。 现计算机都统一为TCP/IP协议。

    此图为协议发展史

    我们现在的网络是Internet,该前身是ARPANET,ARPANET是美国当时以军事目的创造。

    协议簇:Peotocol Suit(重点)

    抓包只能抓到前4层(应用层,传输层,网络层,数据链路层)的数据包。

    英文名称:

    TCP/IP开发先于OSI,最终在市场上获得认可,目前所有厂商支持并使用。


    封装和解封: encapsulation & de-encapsulation

    数据发送,需要逐层向下传递数据,并添加相关头部或尾部的过程称为封装(打包)数据包封装不一定会从最高层(应用层)开始封装。IP封装在第三层,网络层,

    数据接收,需要逐层向上传递数据,成为解封(拆包)

    当路由器(或其他三层设备)收到一个IP数据包时,会查看数据包的IP头部中的目的IP地址,并在路由表中进行查找,在匹配到最优的路由后,将数据包扔给该路由所指的出接口或下一跳。

    OSI把每一层数据称为PDU (Protocol Data Unit,协议数据单元)

    TCP/IP根据不同层分别使用了段(Segment)、包(Packet)、帧(Frame)、比特(Bit)

    从上往下封装过程

    从下往上解封装过程

    如果是交换机、路由器之类的设备收到后,会解封装到数据链路层或网络层,寻找到对应的目标后会重新封装并进行转发。

  • HCNA-2.企业网络架构基础

    HCNA-2.企业网络架构基础

    公网IP:

    一个企业搭建的服务入过需要对外开放,必须要有一个公网IP(可以理解为在网络上的身份证,在公共网络的情况下,该身份证唯一),用户可以通过该IP地址找到你。


    端口:

    用户通过IP地址找到了你,但是你不知道该用户是需要什么,这时候端口就会起作用,比如把web服务提供给用户,在设置端口为80的情况下,用户只需要访问你的80端口就可以使用你所搭建的web服务。


    端口转发:

    一个IP对应的是一个设备,在个人或企业中,所拥有的的设备绝对不止一台,在搭建服务时,甚至会出现每一台单独主机提供不同的服务,这时候就需要用到端口转发。 比如主机A的80端口提供web服务,主机B的21端口提供FTP服务,这时候我们需要在公网IP的设备上添加端口转发,使得访问公网IP的不同端口时,指向不同主机的服务,该设置不要求端口一致,比如设置公网IP的81端口指向A主机的80端口,那么用户访问81端口就可以访问到A主机的81端口


    域名:

    域名作用在于简化IP地址,IP地址不方便记忆,这个时候就可以使用域名,通过域名解析(DNS)就可以访问到该IP地址. 比如我租用的IP为1.1.1.1,域名为test.com,这时候在域名服务商处添加域名解析,然后访问test.com时,实际访问的就是1.1.1.1。


    接入层:

    负责设备的接入,比如PC、电话、打印机等 汇聚层:汇聚一个区域所接入设备 核心层:负责所有区域、设备的出口

  • HCNA-1.网络基础

    HCNA-1.网络基础

    因特网(Interner 全世界的整个网络)

    因特网由ISP(Internet Service Providers)网络组成 ISP俗称运营商 提供互联网接入业务,信息业务和增值业务,例如电信、移动、联通,除此之外还有互联网公司,比如世纪互联公司、北京蓝汛通讯.国外的运营商有美国的AT&T、日本的软银集团。 除了运营商,互联网公司,还有科技网、教育网(edu)组成因特网 中国互联网络信息中心,每一段时间发布一些互联网的报告,网址cnnic.net.cn


    网络类型:根据覆盖范围不同,组网技术也不同(二层)

    可以拥有局域网,比如搭建一个企业网络。 但只能租用广域网,比如每年向运营商交钱。 中国法律规定只能运营商提供互联网服务。

    个人见解:

    个域网:临时性网络 局域网:单栋楼的整个网络 园区网:几栋,几十栋的区域的整个网络 城域网:覆盖整个城市的网络 因特网:覆盖整个世界的网络 无线局域网:覆盖信号范围内的网络 无线广域网:覆盖信号范围内的网络

    该网络分类为网络覆盖范围大小来分类


    协议:Protocol

    • 决定数据的格式和传输的一组规则
    • 网络通信中的“语言”:
      • 汉语和英语当作“协议”
      • 聊天当作“通信”
      • 说话的内容当作“数据”
    • What? How? When?
    • 协议一致,通信自如。

    网络的性能指标

    • 带宽(bandwidth) :
      • 描述在单位内时间内传输的数据量
      • 以bps(bit per second,比特每秒)为单位
      • 注意大小写,传输单位中用的b为小写,储存单位用的B为大写
      • b=bit=比特=二进制=计算机中最小的单位
      • B=Byte=字节=计算机中最常用的单位(文件大小)
      • 1B=8b
      • 100MBPS=12.5MBps

    目前大部分都是光纤+网线传输,一般情况下速度是一样的。 可以把带宽理解为水管,带宽就代表着该水管有多大,所对应的每秒可以流多少水。 或理解为车道数量,有多宽的车道,每秒就可以通过多少台车

    • 延迟(delay)
      • 描述数据传输所经历的时间(从一台电脑发送数据到另一台电脑接收并返回数据到达自身的所需时间)
      • 以MS(毫秒)为单位

    带宽会影响延迟,在带宽被占用过多后会出现网络拥堵现象,可以理解为水管被堵了,或者车道被堵了,通过速度慢,需要等待 带宽越大,延迟越小 带宽越小,延迟越大 最终带宽=整条路上所有带宽最小的