天天看点

HCIA学习笔记-002-数通基础_TCP/IP基础

TCP/IP基础、IP地址

IP子网划分(VLSM)

课程目标:

A.了解TCP/IP参考模型。

B.使用TCP/IP参考模型理解数据通信的基本过程。

C.了解TCP/IP基本概念(TCP、UDP、IP、ICMP、ARP等协议)。

D.熟悉IPv4地址及网络掩码。

E.掌握可变长子网掩码的概念。

F.掌握IP子网划分的方法。

课程目录

A.TCP/IP概述

TCP/IP参考模型与OSI参考模型的对应关系

|  应用层            |       |  应用层       |     |  应用层  |

                                  |  表示层       |     

                                  |  会话层       |

|  主机到主机层  |       |  传输层        |     |  传输层        |

|  因特网层         |       |  网络层        |     |  网络层         |

|  网络接入层      |      |  数据链路层  |     |  数据链路层  |

                                   |  物理层        |     |  物理层        |

|TCP/IP标准模型 |      |    OSI模型    |     |  TCP/IP对等模型|

TCP/IP协议簇

1.TCP/IP协议簇是Internet的基础,也是当今最流行的组网形式。

2.TCP/IP是一组协议的代名词,包括许多别的协议,组成了TCP/IP协议族。

3.TCP/IP协议并不完全符合OSI的7层参考模型,后者是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。

4.TCP/IP通讯协议采用了4层的层级结构,每一层都依赖它的下一层所提供的网络来完成自己的需求。

TCP/IP参考模型(对等模型)

1.应用层:

    为用户提供所需要的各种服务或系统应用接口,例如:FTP、Telnet、DNS、SMTP等。

2.主机到主机层:

    建立、维护和取消一次端到端的数据传输过程,控制传输节奏的快慢,调整数据的排序等等。

3.因特网层:

    定义IP地址;路由选择;实现数据从源到目的地的转发过程。

4.数据链路层:

    将分组数据封装成帧;在数据链路上实现数据的点到点、或点到多点方式的直接通信;差错检测。

5.在媒体上传输比特流;提供机械的和电气的规约。

TCP/IP参考模型

1.应用层:

    Telnet、FTP、TFTP、SNMP、HTTP、SMTP、NFS、DHCP

2.主机到主机层:

    TCP、UDP

3.因特网层:

    ICMP、Routing Protocol、IP

4.数据链路层:

    ARP、Ethernet、Fast Eth

5.物理层:

应用层:

    HTTP  80  超文本传输协议,提供浏览网页服务。

    Telnet  23  远程登录协议,提供远程管理服务。

    FTP  20  21  文件传输协议,提供互联网文件资源共享服务。

    SMTP  25  简单邮件传输协议,提供互联网电子邮件服务。

    POP3  110  邮局协议,提供互联网电子邮件服务。

    TFTP  69(UDP)  简单文件传输协议,提供简单的文件传输服务。

主机到主机层:

    TCP  (传输控制协议)属于面向连接的网络协议

    UDP  (用户报文协议)属于无连接的网络协议

主机到主机层:

    TCP  (Transmission Control Protocol)

    面向连接

    可靠传输

    流控及窗口机制

    基于TCP的应用:HTTP、FTP、Telnet等

    UDP  (User Datagram Protocol)

    无连接

    尽力而为的传输

    无流控及窗口机制

    基于UDP的应用:DNS、SNMP等

    TCP报文格式:

    |  Source port (16) |  Destination port (16)  |

    |        Sequence number (32)  |

    |        Acknowledgemenet number (32)  |

    |  Header length (4) |  Reserver (6) |  Control bits (6) | Window(16)  |

    |  Checksum (16)  |  Urgent (16)  |

    |  Options (0 or 32 if any)  |

    上面的有20Bytes

    |  Data (varies)  |

    UDP报文格式:

    |  Source port (16)  |  Destination port (16)  |

    |  Length (16)  |  Checksum (16)  |

    上面的有8Bytes

    |  Data (if any)  |

    与TCP包头相比少了序列号及确认号字段

TCP连接建立(三次握手)

    第一次握手:建立连接时bai,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; SYN:同步序列编号(Synchronize Sequence Numbers)

    第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

    第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

    完成三次握手,客户端与服务器开始传送数据  

TCP连接断开(四次挥手)

    1)客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。

    2)服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。

    3)客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。

    4)服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。

    5)客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2∗∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。

    6)服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。

TCP/UDP端口号

    |  IP头部  |  TCP头部 (1028源端口|23目的端口)  |  Payload  |

    1.一个TCP会话的源端口号通常是客户端随机分配的,目的端口号则对应服务端的受访问的服务

    2.TCP/IP协议中的服务端口号的范围从0到65535,其中0-1023是知名(Well-known)端口号,例如Telnet服务使用的是TCP23端口号

TCP序列号及确认号

    |  源端口号  |  目的端口号  |  Seq  |  Ack  |

主机到主机层  TCP滑动窗口机制

    TCP滑动窗口技术通过动态改变窗口大小来调节两台主机间数据传输。每个TCP/IP主机支持全双工数据传输,因此TCP有两个滑动窗口:一个用于接收数据,另一个用于发送数据。TCP使用肯定确认技术,其确认号指的是下一个所期待的字节。 假定发送方设备以每一次三个数据包的方式发送数据,也就是说,窗口大小为3。发送方发送序列号为1、2、3的三个数据包,接收方设备成功接收数据包,用序列号4确认。发送方设备收到确认,继续以窗口大小3发送数据。当接收方设备要求降低或者增大网络流量时,可以对窗口大小进行减小或者增加,本例降低窗口大小为2,每一次发送两个数据包。当接收方设备要求窗口大小为0,表明接收方已经接收了全部数据,或者接收方应用程序没有时间读取数据,要求暂停发送。发送方接收到携带窗口号为0的确认,停止这一方向的数据传输。

因特网层:

    1.网络层也叫Internet层

        负责将分组报文从源端发送到目的端

    2.网络层作用

        为网络中的设备提供逻辑地址

        负责数据包的寻径和转发

因特网层:

    IP报文格式:

    |  Version (4)  |  Header Length (4)  |  Priority & Type of Service (8)  |  Total Length (16)  |

    |  Identification (16)  |  Flags (3)  |  Fragment offset (13)  |

    |  Time to live (8)  |  Protocol (8)  |  Header checksum (16)  |

    |  Source IP Address (32)  |

    |  Destination IP Address (32)  |

    |  Options (0 or 32 if any)  |

    |  Data (varies if any)  |

因特网层:

    在以太网环境中,数据发送方在构建数据的时候,需要填写该数据的三层头部(IP头)及二层头部(以太网帧头)中的相关字段,其中目的IP地址及目的MAC地址是两个关键的信息。

    ARP(Address Resolution Protocol)具有两项基本功能:

    1.解析出目标IP地址对应的MAC地址

    2.维护ARP映射(IP地址与MAC地址的对应关系)的缓存

ARP的工作机制

    ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

因特网层工具

Ping(ICMP)

    Ping是网络设备、Windows、Unix和Linux平台上的一个命令,其实是一个小巧而实用的应用程序,该应用基于ICMP(Internet Control Messages Protocol)协议。

    Ping常用于探测到达目的的节点的网络可达性。

TCP/IP参考模型

一个数据从应用层加端口、加IP、加帧再传输到目的,解封帧、解封IP、解封端口,还原数据。      

继续阅读