TCPUDP协议

     TCP/IP协议族的传输有两个重要的协议:TCPTransmission Control Protocol传输控制协议)和UDPUser Datagram Protocol用户数据报协议)。

 

访问控制列表(—)_通信

 

  TCP协议

v   TCP是面向连接的、可靠的进程到进程通信的协议

v   TCP提供全双工服务,即数据可在同一时间双向传输

  1TCP报文段

    • TCP将若干个字节构成一个分组,叫报文段(Segment

    • TCP报文段封装在IP数据报中           

                                                  

访问控制列表(—)_应用程序_02

 

 

         TCP报文段的首部格式:

  访问控制列表(—)_IP协议_03

 

   首部长度为20—60字节,以下是个字段的含义:

  • 源端口号:它是16为字段,为发送方进程对应的端口号。

  • 目标端口号:它是16位字段,对应的是接收端的进程,接收端收到数据段后根据这个端口号来确定把数据送给哪个应用程序的进程。

  • 序号:当TCP从进程接收数据字节时,就把它们存储在发送缓存中,并对每一个字节进行编号。编号特点如下:

1:编号不一定从0开始,一般会产生一个随机数作为第一个字节的编号,称为初始序号(ISN),范围是0—2的32次方减1.

2:TCP每一个方向的编号是互相独立的。

当数据到达目的地后,接收端会按照这个序号把数据重新排列,保证数据段的正确性。

  • 确认号:确认号是对发送端的确认信息,用它来告诉发送端这个序号之前的数据段都已经收到,比如确认号是X,就是表示前X-1个数据段都已经收到。

  • 首部长度:用它可以确定首部数据结构的字节长度。一般情况下TCP首部是20字节,但首部长度最大可以扩展为60字节。

  • 保留:这部分保留位作为今后发展功能用,现在还没有使用到。

控制位:这六位有很重要的作用,TCP的连接,传输和断开都是受这六个控制位的指挥。各位含义如下:

URG:紧急指针有效位。

ACK:只有当ACK=1时,确认序列号字段才有效。当ACK=0时,确认序列号字段无效。

PSH:标志位为1时要求接收方尽快将数据段送达应用层。

RST:当RST值位1时通知重新建立连接。

SYN:同步序列号。TCP需要建立连接时将这个值设为1.

FIN:发送端完成任务位,当TCP完成数据传输需要断开连接时,提出断开连接的一方将这个值设为1.

  • 窗口值:它说明本地可接收数据段的数目,这个值得大小时可变的。

  • 校验和:它是用来做差错控制的,与IP的校验和不同,TCP校验和的计算包括TCP首部,数据和其他填充字节。在发送TCP数据段时,由发送端计算校验和,当到达目的地时又进行一次校验和计算。若这两次的校验和一致,则说明数据基本是正确的。否则将认为该数据已被破坏,接收端将丢弃该数据。

  • 紧急指针:和URG配合使用,当URG=1时有效。

  • 选项:在TCP首部可以有多达40字节的可选信息。

  2TCP连接

TCP是面向连接的协议,它在源点和终点之间建立一条虚连接。

在通信之前,发送端与接收端要先建立连接。等数据发送结束后,双方再断开连接。TCP连接的每一方都是由一个IP地址和一个端口号组成的。

v  TCP建立连接的过程称为三次握手

访问控制列表(—)_全双工_04

v  通过Sniffer抓包来分析三次握手的过程

    •    第一次握手

        访问控制列表(—)_用户_05

    •       第二次握手

访问控制列表(—)_通信_06

    •     第三次握手

访问控制列表(—)_IP协议_07

v  TCP断开连接的四次握手

         访问控制列表(—)_访问控制列表_08

 

TCP断开连接过程中,有一个半关闭的概念。TCP一方(通常是客户端)可以终止发送数据,但仍然可以接收数据,这被称做半关闭。具体描述如下:

  客户端发送FIN报文段,半关闭了这个连接,服务器发送ACK报文段接受半关闭。

  服务器继续发送数据,而客户端只发送ACK确认,不再发送任何数据。

  当服务器已经把所有数据发送完毕时,就发送FIN报文段,客户端发送ACK报文段,这样就关闭了TCP连接。

 TCP在网络中的应用范围很广,主要用在对于数据传输可靠性要求高的环境

                 TCP端口及应用

FTP 21  端口  FTP服务器所开发的控制端口

TELNET  23端口   远程登录

SMTP  25端口  发送邮件

HTTP  80端口   超文本传输协议

  UDP 协议

UDP 是一个无连接,不保证可靠性的传输层协议。

UDP 的首部结构简单,话费的开销小。

v     UDP报文的首部格式

   访问控制列表(—)_通信_09

  源端口号:用来标识数据发送端的进程,和TCP协议的端口号类似。

  目的端口号:用来标识数据接收端的进程,和TCP协议的端口号类似。

  UDP长度:用来指出UDP的总长度,位首部加上数据。

  校验和:用来完成对UDP数据差错检验,它的计算与TCP的校验和类似。这是UDP协议提供的唯一的可靠机制。

           UDP 使用的常见端口

   TFTP  69  端口   简单文件传输协议

   RPC   111 端口   远程过程调用

   NTP  123  端口  网络时间协议

 

访问控制列表的概述

   访问控制列表(ACL是应用在路由器指令列表(即规则)。这写指令列表用来告诉路由器,哪些数据报可以接收,哪些数据包需要拒绝。

  ACL通过在路由器接口处控制数据包是转发还是丢弃来过滤通信流量。路由器根据ACL中指定的条件开检测通过路由器的数据包,从而决定是转发还是丢弃改数据包。

可以通过在路由器或多层交换机上配置ACL来控制对特定网络资源的访问。

访问控制列表的类型

1:标准访问控制列表

基于源IP地址过滤数据包

标准访问控制列表的访问控制列表号是199

     2:扩展访问控制列表

基于源IP地址、目的IP地址、指定协议、端口和标志来过滤数据包

扩展访问控制列表的访问控制列表号是100199

    3命名访问控制列表

命名访问控制列表允许在标准和扩展访问控制列表中使用名称代替表号

访问控制列表的工作原理

  访问控制列表在接口应用的方向

    •   出:已经过路由器的处理,正离开路由器接口的数据包

    • 入:已到达路由器接口的数据包,将被路由器处理

         访问控制列表(—)_应用程序_10

    •  列表应用到接口的方向与数据方向有关

 

访问控制列表的处理过程

   访问控制列表(—)_用户_11

 

标准访问控制列表的配置

     访问控制列表(—)_IP协议_12

 访问控制列表(—)_用户_13

  访问控制列表(—)_IP协议_14

标准ACL的配置实例
    访问控制列表(—)_应用程序_15

  查看并验证配置:

   

访问控制列表(—)_访问控制列表_16

 

  验证配置:

    PC2不能ping主机PC1,但PC3可以ping同主机PC1