第八课 TCP/IP协议
TCP/IP协议体系概述 TCP/IP协议源于1969年,是针对Internet开发的一种体系结构和协议标准,其目的在于解决异种计算机网络的通信问题。使得网络在互联时能为用户提供一种通用、一致的通信服务。是国际互联网Internet采用的协议标准。 TCP/IP是一组通信协议的代名词,是由一系列协议组成的协议簇。它本身指两个协议集: TCP——传输控制协议 IP——互联网络协议。
TCP/IP网络互联 Internet TCP/IP TCP/IP简介 TCP/IP协议是针对Internet开发的一种体系结构和协议标准,其目的在于解决异种计算机网络的通信问题。使得网络在互联时能为用户提供一种通用、一致的通信服务。是国际互联网Internet采用的协议标准。 ARPA为了实现异种机之间的互联与互通,大力资助网间技术开发,提出了TCP/IP协议。并推出了目前形式的TCP/IP体系结构和协议规范。目前,TCP/IP协议已经在多数计算机上得到应用,200多个计算机和通信厂家,在各自的产品中提供对TCP/IP协议的支持。局域网操作系统UNIX、Microsoft、NetWare都已将TCP/IP协议纳入自已的体系结构。 TCP/IP是现在Internet上使用的最流行的协议,利用TCP/IP可以迅速方便地创建一个异质网络,这个网络里可以有IBM、兼容PC、Mac机、Sun工作站等等。 TCP/IP中包含了一组协议,这组协议中不仅包含了网络中第三层和第四层的协议,如IP协议和TCP协议,也包含了例如远程登录、电子邮件、文件传输等这样的应用。
TCP/IP的分层及基本工作原理 网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能 TCP/IP协议族是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个四层协议系统 。
TCP/IP的分层 应用层 Telnet、Ftp、Smtp等 传输层 TCP和UDP 网络层 IP、ICMP和IGMP 网络接口层 接口卡及设备驱动
TCP/IP的分层 应用层 表示层 传输层 Internet 层 网络接口层 IP ICMP IGMP ARP Ethernet ATM UDP TCP 应用层 FTP HTTP 表示层 网络层 链路层 物理层 会话层
TCP/IP 分层模型
TCP/IP体系结构与协议栈之间关系
TCP/IP与OSI的比较 IP TCP UDP ICMP IGMP RARP ARP 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 SMTP FTP TELNET DNS SNMP NFS TFTP RPC TCP UDP IP ICMP IGMP RARP ARP 由底层网络定义的协议 应用程序
TCP/IP协议集的主要协议 协议 提供服务 相应OSI层 IP 数据报服务 3 ICMP 差错和控制 ARP 互联网地址物理地址 RARP 物理地址互联网地址 TCP 可靠流服务 4 FTP 文件传送 5~7 TELNET 终端仿真 DNS 域名互联网地址
基于TCP/IP的文件传输(FTP)应用
数据链路层协议 SLIP :全称是Serial Line IP。它是一种在串行线路上对IP数据报进行封装的简单形式 PPP:点对点协议修改了SLIP协议中的所有缺陷。与SLIP类似,PPP经常用于低速的串行链路
网络层协议:IP协议 网际协议(IP) 主要负责在主机之间寻址和选择数据包的路由。IP协议不含错误恢复的编码,属于不可靠的协议。
IP数据报格式
TCP/IP的核心协议 引言1: 厂家代码 序列号 MAC 地址固化在网卡的 ROM 中 24 位 24 位 RAM
IP地址和MAC地址的映射: 32位IP地址 RARP ARP 48位以太网地址
查看本机IP和MAC地址 :
1.网络层协议 1、地址解析协议ARP: ARP把基于TCP/IP软件使用的IP 地址解析成局域网硬件使用的媒体访问控制(MAC)地址。 HEY - Everyone please listen! Will 128.213.1.5 please send me his/her Ethernet address,my is 128.213.1.4, and my Ethernet address is 87:A2:15:35:02:CC not me Hi Red! I’m 128.213.1.5, and my Ethernet address is 87:A2:15:35:02:C3
地址解析协议ARP: Map IP Ethernet 我想知道IP地址为 176.16.3.2的MAC地址是什么? 172.16.3.1 172.16.3.2 IP: 172.16.3.2 = ??? IP: 172.16.3.2 Ethernet: 08.00.00.20.11.11 Map IP Ethernet
2、反向地址解析协议RARP : 主要应用于无盘节点,把无盘节点的IP地址解析成MAC地址. Ethernet: 08.00.00.20.11.11 IP = ??? Ethernet: 08.00.00.20.11.11 IP: 172.16.3.25 Map Ethernet IP
3、互连网控制报文协议ICMP: ICMP传递差错报文以及其他需要注意的信息。ICMP报文通常被网络层或更高层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。 ICMP用来传送一些关于网络和主机的控制信息。如目标主机是不可到达的、路由的重定向等。常用的ping命令就是使用了ICMP协议。 ICMP不为数据提供错误控制服务,只是报告数据出错并不再传送错误的数据,并在IP数据报的生存期过后将期抛弃。
2.传输层协议 传输层的服务允许用户按照传输层的数据格式分段及封装应用层送来的数据。这一层数据流提供了端到端的传输服务,它在发送主机与接收主机之间构建了一个逻辑连接 。它允许在Internet上两台主机之间信息的无差错传输。TCP还进行流量控制,以避免发送过快而发生拥塞。 传输层包括两个协议:第一个是TCP协议,即传输控制协议,是一个可靠的、面向连接的协议。第二个是UDP协议,它采用无连接的方式,不管发送的数据包是否到达目的主机,数据包是否出错。收到数据包的主机也不会告诉发送方是否正确收到了数据,它的可靠性是由上层协议来保障的。
1、传输控制协议 TCP: 传输控制协议TCP将数据分成数据报,用能够到达目的地的路径信息连行包装,接收端则将这些数据进行重组。它提供可靠的、面向连接的数据报传递服务。 TCP协议位于IP协议的上层,为数据提供错误校验,流量控制及序列信息用以补充IP协议的不足。
传输到网络层
传输控制协议TCP: TCP是面向连接的协议。所谓连接,就是两个对等实体为进行数据通信而进行的一种结合。面向连接服务是在数据交换之前,必须先建立连接。当数据交换结束后,则应终止这个连接。面向连接服务具有:连接建立、数据传输和连接释放这三个阶段。在传送数据时是按序传送的。
TCP协议数据格式: 源端口Source Port(16 bit) 宿端口Destination Port(16 bit) 序列号Sequence Number(32 bit) 确认号Acknowledgment Number(32 bit) 数据偏移 (Data Offset (4bit) 保留(为0)Reserved (6 bit) U R G A C K P S H T Y N F I 窗口Windowing (16 bit) 校验和Checksum(16 bit) 紧急指针Urgent Pointer(16 bit) 可选项Option(32 bit) 数据Data(32 bit)
TCP报头各部分意义: ACK:确认.PSH:接收方尽快将数据交应用层 RST:复位 SYN:同步 FIN:结束 源端口,目的端口: 表示发送方和接收方的端口号. 序列号,确认号: 序列号表示数据部分第一个字节的序列号(即表示此数据在数据段中的位置),确认号表示数据已被接收,所期待下一个TCP数据段的序号. 数据偏移: TCP报头的长度. 保留: 不用,置0. URG:置1表示包含紧急数据(此时紧急数据指针有效). ACK:确认.PSH:接收方尽快将数据交应用层 RST:复位 SYN:同步 FIN:结束 窗口:缓冲区的大小,(即接收端可以接收最大字节数) 校验和:校验数据发送有没有遭到破坏 紧急指针:表明紧急数据位置
TCP协议工作机制 (三次握手): 主机A 主机B 发送SYN信息(序号=x) 接收SYN信息(序号=x) 接收SYN信息 (序号=y, 确认号=x+1) 发送SYN信息(序号=y, 确认号=x+1) 发送ACK 信息(确认号=y+1) 接收ACK 信息(确认号=y+1)
2、用户数据报协议UDP: 用户数据报协议UDP是无连接的服务。在无连接服务的情况下,两个实体之间的通信不需先建立好一个连接,因此其下层的有关资源不需要事先进行预定保留。这些资源将在数据传输时动态地进行分配。无连接服务的另一特征就是它不需要通信的两个实体同时是活跃的(即处于激活态)。当发送端的实体正在进行发送时,它才必须是活跃的。无连接服务的优点是灵活方便和比较迅速。但无连接服务不能防止报文的丢失、重复或失序。无连接服务特别适合于传送少量零星的报文。
端口 传输层就是通过协议端口(protocol port,简称端口)与应用层的应用程序进行信息交互的,应用层各种用户进程通过相应的端口与传输层实体进行信息交互。端口实际上是一个16Bit长的地址,范围可以从0至65535。将0至1023端口号称为熟知端口(Well-Known Port),其余1024至65535端口号称为一般端口或(动态)连接端口(Registered/Dynamic),在数据传输过程中,应用层中的各种不同的服务器进程不断地检测分配给它们的端口,以便发现是否有某个应用进程要与它通信。
端口 在windows中使用的套接字称为winsock,套接字的作用就是建立连接。Socket=IP+TCP/UDP+端口,其中IP地址标识主机,TCP 或UDP协议用于指明传输套型,端口号标明使用的服务。 TCP 端口号 F T P 传输层 T E L N E T D N S S N M P T F T P S M T P UDP 应用层 21 23 25 53 69 161
端口 各端口的意义
端口 协议 端口号 关键字 描述 UDP 42 NAMESERVER 主机名字服务器 53 DOMAIN 域名服务器 67 BOOTP Client 客户端启动协议服务 68 BOOTP Server 服务器端启动协议服务 69 TFTP 简单文件传输协议 111 RPC 微系统公司RPC TCP 20 FTP Data 文件传输服务器(数据连接) 21 FTP Control 文件传输服务器(控制连接) 23 Telnet 远程终端服务器 25 SMTP 简单邮件传输协议 80 HTTP 超文本传输协议
端口 通过SMTP进行通信的主机
TCP数据封装示意图
UDP数据封装示意图
传输层的功能及特点 分割上层应用程序 建立连接 使用流量控制来发送数据 使用窗口技术来保证可靠性 确认技术 传输到网络层建立连接
归纳总结 ISO/OSI参考模型 物理层:二进制传输 数据链路层:介质访问 网络层:确定地址和最佳路径 传输层:端到端连接 会话层:互连主机通信 表示层:数据表示 应用层:为应用程序提供网络服务 TCP/IP分层及各层主要协议 数据链路层:SLIP、PPP 网络层:IP、ARP、RARP、ICMP 传输层:TCP、UDP 应用层:FTP、TELNET、SMTP、HTTP、TFTP