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、解封端口,还原数据。