网络基本概念和TCP、UDP协议

------------------------------------------------------------------------------------------------------------------------------------------

冲突域:如果几台设备同时向一台设备发送数据产生冲突,则这几台设备处于一个冲突域中,反之不在一个冲突域

总线拓扑:总线不能断

网络基本概念和TCP、UDP协议_TCP协议

星型拓扑:中间交换机不可以故障

网络基本概念和TCP、UDP协议_网络基础_02

扩展星型拓扑

网络基本概念和TCP、UDP协议_TCP协议_03

环形拓扑

网络基本概念和TCP、UDP协议_网络基础_04

双环拓扑

网络基本概念和TCP、UDP协议_TCP协议_05

全网状拓扑

网络基本概念和TCP、UDP协议_TCP协议_06

部分网状拓扑

网络基本概念和TCP、UDP协议_网络基础_07

了解主机到主机通信

    旧模型

    专有产品


由一个厂商控制应用程序和嵌入的软件

    基于标准的模型

    多厂商软件

    分层方法


网络模型

OSI:开放系统互联

ISO:国际标准化组织

逻辑寻址:人为指定ip地址以便于管理

网络基本概念和TCP、UDP协议_网络基础_08

下层只为相邻的上层提供服务

  

物理层:二进制传输

        为启动、维护以及关闭物理链路定义了电器规范、机械规范、过程规范和功能规范,数据格式为0101……

数据链路层:访问介质

        定义如何格式化数据以便进行传输以及如何控制对网络的访问,数据格式为帧;

        支持错误检测;

        MAC地址在数据链路层定义

网络层:数据传输

        路由数据包;

        选择传递数据的最佳路径;

        支持逻辑寻址和路径选择

传输层:传输问题

        确保数据传输的可靠性;建立、维护和终止虚拟电路;通过错误检测和恢复;

        信息流控制来保障可靠性

会话层:主机间通信

        建立、管理和终止应用之间的会话

表示层:数据表示

        确保接受系统可以读出该数据;

        格式化数据;

        构建数据;

        协商用于应用层的数据传输语法;

        提供加密

应用层:网络进程访问应用层

        为应用程序进程(例如电子邮件、文件传输和终端仿真)提供网络服务;

        提供用户身份验证


    数据封装:按照七层模型从上到下的顺序对数据进行处理,在自己的设备上完成数据封装

网络基本概念和TCP、UDP协议_网络基础_09 

数据解封

网络基本概念和TCP、UDP协议_TCP协议_10

FCS:校验位


对等通信

网络基本概念和TCP、UDP协议_TCP协议_11


PDU

  PDU: Protocol Data Unit,协议数据单元是指对等层次之间传递的数据单位

  物理层的PDU是数据位bit

  数据链路层的PDU是数据帧frame

  网络层的PDU是数据包packet

  传输层的PDU是数据段segment

  其他更高层次的PDU是消息message


三种通讯模式

单播:数据报文地址内的发送目标为1台设备

广播:数据发送目标为一定范围内所有设备,广播越多,对网络干扰越大

组播(多播):数据发送目标为多组设备


单工:目标主机和本主机之间通讯为单向,有去无回,比如电视

半双工:目标主机和本主机之间通讯为双向的,数据传输为轮流传输,比如对讲机

全双工:目标主机和本主机之间通讯为双向的,数据传输为同时传输,比如视频聊天


局域网:Local Area Network

基于广播机制通讯


广域网

基于点对点机制通讯

网线:UTP非屏蔽式双绞线

          STP屏蔽式双绞线,加一层金属保护,增强抗干扰


T568A线序:绿白、绿、橙白、蓝、蓝白、橙、棕白、棕

T568B线序:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕


百兆以内用到4根线:1、2、3、6,12发,36接

千兆以内用到全部线

两边线序一样称作UTP直通线

T568A和T568B互为UTP交叉线


因为现在硬件设备可以自动识别T568A和T568B,因此普遍使用T568B线

双绞线传输最远距离为100米


GBIC:千兆电信号转换为光信号的接口器件


以太网:是数据链路层的协议之一(协议里有PPPOE、以太网、高级链路控制协议、帧中继、异步传输模式),属于局域网协议,它既定义了双绞线的标准,又定义了数据帧的格式

帧:frame

帧的结构 : 前导信息 目标地址 源地址    类型    数据     校验位

位           :      8             6          6           2    46-1500     4

类型是上层类型编号,用来让计算机识别位于哪一层

数据包括从网络层、传输层、会话层、表现层、app、data的数据

冲突检测的载波侦听多路访问CSMA/CD

早期以太网协议中设备低于1024台,否则冲突过多


Hub:多端口中继器,工作在物理层

Hub并不记忆该信息包是由哪个MAC地址发出,哪个MAC地址在Hub的哪个端口

Hub的特点:共享带宽、半双工

Hub性能差、不安全


ISO七层网络模型,但实际工作中没有应用到这么多,目前使用的是TCP/IP协议

以太网桥:计算机通过Hub连接到以太网桥,可以记录计算机在哪个域,从而在以后的使用中将数据不走其它线路而直接送达目标计算机

交换机:直接连接计算机,每个接口都是一个独立的冲突域,全双工机制,大大提升了速率,可以隔断冲突域,但不能隔断广播域

交换机工作在数据链路层

以太网桥:计算机通过Hub连接到以太网桥,可以记录计算机在哪个域,从而在以后的使用中将数据不走其它线路而直接送达目标计算机

交换机:直接连接计算机,每个接口都是一个独立的冲突域,全双工机制,大大提升了速率,可以隔断冲突域,但不能隔断广播域

交换机工作在数据链路层


减少冲突域内或者广播域内计算机可以提升网络性能

交换机可以隔断冲突域

路由器可以隔断广播域

路由表不是路由器专有的,PC也有,设备依靠路由表寻找数据的转发路径


路由器:分隔广播域

             选择路由表中到达目标最好的路径

             维护和检查路由信息

             连接广域网


网卡工作在数据链路层

ACL:访问控制列表


路由器:路由器工作在网络层


路由表:route table,路由表组成

网络地址:分析目标地址

接口:数据有可能从路由器的哪个出口出来,哪个就是接口

网关:目标网络与发数据的设备不在一个网段内,下一个路由器邻近主配置路由器的接口ip就是网关,线路和路由器连接的口网关不用配置

metric:可以理解为跃点数,该值越小,路由选择此路径优先级越高



VLAN:虚拟局域网,可以看作是广播域,是一种逻辑网络

特点:分隔广播域、安全、灵活管理

trunk:公共干道接口,不属于某个单独的vlan,多个vlan数据都会使用该接口

802.1Q:trunk上加vlan标签的协议,使得数据可以跨vlan传输


分层的网络架构

核心层:Core Layer,快速转发数据

分布层:Distribution Layer,用路由器隔开,设置访问权限

访问层:AccessLayer,先将设备连入网络,汇入分布层


STP:生成树协议,解决交换机回环问题,是一种动态算法


TCP/IP协议

Transmission Control Protocol / Internet Protocol

传输控制协议 / 因特网互联网协议

1983年取代了旧的网络控制协议NCP

定义了四层

 网络基本概念和TCP、UDP协议_TCP协议_12

四层模型和OSI七层模型对应关系

网络基本概念和TCP、UDP协议_网络基础_13

应用层协议

File transfer

     –FTP

     –TFTP

     –Network File System

E-mail

     –Simple Mail Transfer Protocol

Remote login

     –Telnet

     –rlogin

Network management

     –Simple Network Management Protocol

Name management

     –Domain Name System


传输层两大协议:UDP和TCP


 可靠性
传输效率
      连接类型
面向连接
非面向连接
          协议TCPUDP
按序号先后接收数据YesNo

        

          用途

邮件

文件共享

下载

音频

视频

          

TCP特性

  工作在传输层

  面向连接协议:确认对方与自己有稳定的网络状态

  全双工协议:可以同时传输数据

  半关闭:单方面关闭数据连接

  错误检查

  将数据打包成段,排序

  确认机制

  数据恢复,重传

  流量控制,滑动窗口

  拥塞控制,慢启动和拥塞避免算法


传输层报文头部结构

TCP包头

网络基本概念和TCP、UDP协议_TCP协议_14

源端口号从0-65535,即216个端口号

序号:靠序号实现数据包可靠传输

确认号:期望对方下次发送数据包的编号,用小写ack表示

序号和确认号结合起来可以实现数据的安全通信

数据偏移:说明报文有多长

标记位:占6位,其中含义有

URG:表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer)只有当URG=1时才有效

ACK:确认位,表示是否前面确认号字段是否有效。只有当ACK=1时,前面的确认号字段才有效。TCP规定,连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段,例如ACK12表示本设备希望对方下次发送第12号数据包

PSH:提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。如果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停留在TCP接收缓冲区中

RST:如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带RST标志的TCP报文段称为复位报文段

SYN:同步位,在建立连接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一个请求建立连接的报文段;当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1,同步位说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段

FIN:分手位,表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉对方:“我的数据已经发送完毕,你可以释放连接了”,带FIN标志的TCP报文段称为结束报文段 


窗口:表示发送设备发多少个包接收设备会确认1次,协商双方能接收多少数据


TCP三次握手

 网络基本概念和TCP、UDP协议_TCP协议_15

前三步确定稳定的网络状态,之后可以正常通讯

图中seq表明设备自身的该文件编号


TCP四次挥手

 网络基本概念和TCP、UDP协议_网络基础_16


11种有限状态机

      CLOSED 没有任何连接状态

      LISTEN 侦听状态,等待来自远方TCP端口的连接请求

      SYN-SENT 在发送连接请求后,等待对方确认

      SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认

      ESTABLISHED 代表传输连接建立,双方进入数据传送状态

      FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认

      FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求

      TIME-WAIT 完成双向传输连接关闭,等待所有分组消失

      CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请求,并已确认

      LAST-ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失

      CLOSING 双方同时尝试关闭传输连接,等待对方确认


孤儿连接: 客户端执行半关闭后,未等服务器关闭连接就强行退出了,此时客户端连接由内核来接管


DDOS攻(龘)击:拒绝服务攻(龘)击,伪造大量ip,对服务器进行访问,使得服务器的回应长时间无响应,占据大量访问数,从而使得正常用户无法正常访问


协议端口

FTP 用TCP21端口

Tlenet用TCP23端口

Http用TCP80端口

DNS用TCP 53和UDP53端口

TFTP用UDP69端口

SNMP用UDP161端口


传输层通过port号,确定应用层协议

Port number:

tcp:传输控制协议,面向连接的协议;通信前需要建立虚拟链路;结束后拆除链路

         0-65535

udp:User Datagram Protocol,无连接的协议

          0-65535

IANA:互联网数字分配机构(负责域名,数字资源,协议分配)

         0-1023:系统端口或特权端口(仅管理员可用) ,众所周知,永久的分配给固定的系统应用使用,22/tcp(ssh), 80/tcp(http), 443/tcp(https)

         1024-49151:用户端口或注册端口,但要求并不严格,分配给程序注册为某应用使用,1433/tcp(SqlServer), 1521/tcp(oracle), 3306/tcp(mysql), 11211/tcp/udp(memcached)

         49152-65535:动态端口或私有端口,客户端程序随机使用的端口,其范围的定义:/proc/sys/net/ipv4/ip_local_port_range


TCP超时重传      

异常网络状况下(开始出现超时或丢包),TCP控制数据传输以保证其承诺的可靠服务

TCP服务必须能够重传超时时间内未收到确认的TCP报文段。为此,TCP模块为每个TCP报文段都维护一个重传定时器,该定时器在TCP报文段第一次被发送时启动。如果超时时间内未收 到接收方的应答,TCP模块将重传TCP报文段并重置定时器。至于下次重传的超时时间如何选择,以及最多执行多少次重传,就是TCP的重传策略

      

与TCP超时重传相关的两个内核参数:

      /proc/sys/net/ipv4/tcp_retries1,指定在底层IP接管之前TCP最少执行的重传次数,默认值是3

      /proc/sys/net/ipv4/tcp_retries2,指定连接放弃前TCP最多可以执行的重传次数,默认值15(一般对应13~30min)


拥塞控制

网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可承受的能力,网络的性能就会变坏。这种情况就叫做拥塞

TCP为提高网络利用率,降低丢包率,并保证网络资源对每条数据流的公平性。即所谓的拥塞控制

TCP拥塞控制的标准文档是RFC 5681,其中详细介绍了拥塞控制的四个部分:慢启动(slow start)、拥塞避免(congestion avoidance)、快速重传(fast retransmit)和快速恢复(fast recovery)。拥塞控制算法在Linux下有多种实现,比如reno算法、vegas算法和cubic算法等。它们或者部分或者全部实现了上述四个部分

当前所使用的拥塞控制算法,/proc/sys/net/ipv4/tcp_congestion_control


UDP特性

工作在传输层

提供不可靠的网络访问

非面向连接协议

有限的错误检查

传输性能高

无数据恢复特性


UDP包头

网络基本概念和TCP、UDP协议_TCP协议_17

16位源端口号

16位目标端口号

16位UDP长度

16位UDP校验码