TCP/IP协议簇及其应用

TCP/IP协议簇及其应用

文章目录

  • 前言
  • 一、IP协议
    • 1. IP协议包含两个最基本的功能,即寻址和分段。
    • 2. IP协议提供的服务
    • 3.IP协议的关键机制:服务类型、生存时间、包头校验和
  • 二、TCP协议
    • 1.TCP为应用提供的服务:
    • 2.TCP的基本工作流程:
  • 三、UDP协议(可以提供一种基本的、低延时的数据报传输)
    • 1.特点:
    • 2.UDP的弱点:
  • 四、TCP/IP协议簇中的其他常用协议
  • 五、攻击举例


前言

TCP/IP协议簇是Internet最基本的协议,也是Internet国际互联网络的基础。TCP/IP协议簇由网络层的IP协议和传输层的TCP协议为核心。

一、IP协议

1. IP协议包含两个最基本的功能,即寻址和分段。

IP协议面向无连接,也就是说在通信的两个端点之间不存在持续的连接,网络中的节点路由器根据每个IP包的包头IP地址进行寻址,这样同一个主机发出的属于同一报文的IP包可能会经过不同的路径到达目的主机。

2. IP协议提供的服务

  • 不可靠的数据投递服务。数据的投递没有任何品质保证,数据可能被正确投递,也可能被丢弃;
  • 面向无连接的传输服务。这种方式不管数据的传输经过哪些结点,甚至可以不管数据起始和终止的计算机。数据的传输可能经过不同的传输路径,而且这些数据报在传输过程中有可能丢失,也有可能正确传输到目的结点;
  • 尽最大努力投递服务。IP不会随意丢包,除非系统的资源耗尽、接收出现错误、或者网路出现故障的情况下,才不得不丢弃报文。

PING命令结果中的TTL值:
微软Windows操作系统的TTL字段值为128左右;
LINUX的TTL字段值为64左右

3.IP协议的关键机制:服务类型、生存时间、包头校验和

二、TCP协议

序列确认机制:通过序列号和确认应答,以此实现可靠传输。

1.TCP为应用提供的服务:

TCP为了实现为应用层进程提供可靠的传输服务,采取的一系列的保障机制:

  • 校验和:每一个TCP段都要计算校验和,用于检测破坏的数据,如果接收方发现校验和不正确,就抛弃被毁坏的TCP段,不发送对该报文段的确认,发送方收不到对该数据的确认就会重新发送。
  • 序号:TCP为数据中的每一字节分配了一个序号,接受方可以根据序号校正乱序或者重复的数据
  • 超时重传:TCP发送的数据,要求接收主机的确认,如果在发送方设定的时间内,没有确认数据已经到达目的地,则重传刚才的报文段。关键参数是重传超时时间(RTO,Retransmission TimeOut)。RTO的值被设置过大过小都会对协议造成不利影响。RTO设长了,重发就慢,没有效率,性能差。 RTO设短了,重发的就快,会增加网络拥塞,导致更多的超时,更多的超时导致更多的重发。
  • 流量控制:TCP会对收发两端的数据流加以管理,接收方在返回对收到信息的确认时会有一个窗口字段(滑动/流量/通告窗口),指明发送主机允许发送的字节数,在收到进一步的允许前,发送方都不能超出这个字节限制。发送方使用“拥塞窗口”进行发送端的流量控制,根据网络情况和收到接收端返回的确认情况进行动态调整。在连续收到接受端确认信息的情况下,此值变大。实际中,TCP认为数据因为被破坏而导致的数据丢失的概率是比较低的,分组数据的丢失的主要原因是源和目的主机之间的链路上产生了网络拥塞。此时自动减小拥塞窗口的值。TCP的拥塞控制机制TCP的拥塞控制由4个核心的算法组成:慢启动、拥塞避免、快速重传和快速恢复。
  • 多路复用:TCP允许一个主机上的多个进程同时使用TCP进行通信,主机的IP地址和端口号构成了一个Socket,一对Socket唯一标识了一个连接。
    对连接的维护和管理:对可靠性和流量的控制要求TCP对每个数据流进行初始化,并维护一系列状态信息。如IP地址,端口号,序号,确认号,窗口大小等,他们在一起构成一个完整的连接,这个连接由Socket标识。

2.TCP的基本工作流程:

两个主机使用TCP协议进行通信可以分为3个阶段,即建立连接阶段、数据传输阶段和断开连接释放资源阶段。

  • TCP的状态
    LISTEN:服务器端等待远程客户端连接请求的状态。
    SYN-SENT:当要访问其他计算机的服务时,首先要发送一个同步信号给该端口,SYN_SENT状态表示客户端已发送SYN报文。
    SYN-RECEIVED:接受到了SYN报文
    ESTABLISHED:代表一个打开的连接。
    FIN-WAIT-1,FIN-WAIT-2:等待对方的FIN报文,FIN_WAIT_1状态实际上是当一方在连接状态时想主动关闭连接,向对方发送了FIN报文,此时该方即进入到FIN_WAIT_1状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2状态。
    CLOSE-WAIT:等待从本地用户发来的连接中断请求。
    LAST-ACK:被动关闭一方在发送FIN报文后,最后等待对方的ACK报文。
    TIME-WAIT:等待足够的时间以确保远程TCP收到连接中断请求的确认(MSL段最大生存时间)。
    CLOSED:没有任何连接的初始状态。

  • 三次握手建立连接
    TCP/IP协议簇及其应用_第1张图片

  • 四次握手断开连接(TCP的连接是全双工(可以同时发送和接收)连接,因此在关闭连接的时候,必须关闭发送和接收两个方向上的连接)
    TCP/IP协议簇及其应用_第2张图片

  • 数据传输阶段
    可靠的传输,使用序列号;流量控制;慢开始和拥塞避免/快重传和快恢复

  • TCP的弱点
    当一个数据包丢失后,就不得不停下来,等待这个数据包重传。
    延迟不仅仅来自等待数据包的重发,TCP是一个建立在IP协议上的流式协议,因为IP协议是建立在数据包上的,因此下层协议必需将流式数据拆分成数据包。实际上内部TCP机制将你发送的数据放入数据队列,当队列中有足够的数据,它会发包给另一个机器。这就使得客户端的用户体验就会变差。
    效率和经济性的矛盾

三、UDP协议(可以提供一种基本的、低延时的数据报传输)

1.特点:

在网络质量一般的环境下,UDP协议数据包丢失会比较严重。但是UDP不属于连接型协议,因而资源消耗小,处理速度快,所以通常音频、视频等数据在传送时使用UDP较多,因为即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。

2.UDP的弱点:

  • 无法智能利用空闲带宽导致资源利用率低:UDP并不会受到MTU的影响,MTU只会影响下层的IP分片,对此UDP一无所知。在极端情况下,UDP每次都是发小包,包是MTU的几百分之一,这样就造成UDP包的有效数据占比较小;或者,UDP每次都是发巨大的包,大小是MTU的几百倍,这样会造成下层IP层的大量分片,大量分片的情况下,其中某个分片丢失了,就会导致整个UDP包的无效。由于网络情况是动态变化的,UDP无法根据变化进行调整,发包过大或过小,从而导致实际的有效吞数据吐量较低。而TCP有一套智能算法,可以“聪明”地把数据积攒起来,也会尽量在延迟和吞吐量之间达到一个很好的平衡。
  • 改进UDP的成本较高:对UDP协议本身的改进并不简单,开发者往往选择通过一些外部机制弥补UDP的不足。

TCP/IP协议簇及其应用_第3张图片

四、TCP/IP协议簇中的其他常用协议

  • TCP:HTTP,FTP,SMTP,TELNET,POP3,NNTP,IMAP4,(大部分需要“连接”的应用场景)

  • UDP:BOOTP,DHCP,NTP,TFTP,SNMP(在线视频,网络电话)

  • QQ是基于TCP和UDP:即时聊天、文件传输/消息发送状态

  • ARP(地址解析)协议:将IP地址(32位)转换为对应的MAC地址(48位)
    工作过程:某机器A要向主机B通信,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,就会进行数据传输。如果未找到,则A广播一个ARP请求报文(携带主机A的IP和MAC地址),请求主机B回答物理地址。网上所有主机包括B都收到ARP请求,但只有主机B向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据.

查看本地ARP表的命令如下: arp -a
手动删除ARP表项中的条目:arp –d eg. arp –d 192.168.5.205

  • RARP协议:根据局域网中一个设备的MAC地址获取它的IP地址。
    应用于无盘工作站,用于获取IP地址。在每次启动时通过RARP协议向RARP服务器申请IP地址。

  • ICMP(网际控制报文协议),用于在IP主机、路由器之间传递控制消息。通常可以使用它来探测主机或网络设备的在线状态。差错控制机制,它为遇到差错的路由器提供了向最初发送端报告差错的方法。

ping命令:利用ICMP的回射请求和回射报文测试目标是否可达

  • Telnet (网络终端协议)是在Internet和局域网上应用的网络协议,用于提供双向交互式的通讯功能。为用户提供了在本地计算机上使用远程主机工作的能力。在用户的电脑上使用telnet程序,用它连接到服务器。用户可以在telnet程序中输入命令,这些命令会在服务器上运行,用户可以在本地就能控制服务器。
    Telnet是客户机/服务器结构的协议,它基于可靠的、面向连接的数据传输。通常,Telnet协议使用TCP端口23来建立连接,Telnet服务器应用程序会在该端口上监听连接请求。

  • FTP(文件传输协议)是TCP/IP网络中交换和管理文件的标准网络协议。FTP基于客户机/服务器结构,其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。用户使用FTP客户端可以连接到一个运行FTP服务器程序的远程计算机,查看它上面有哪些文件,并可以在本地计算机和远程计算机之间复制文件。
    FTP服务器程序在端口20和端口21上进行监听。FTP客户端程序首先连接服务器的端口21,该连接被称为控制连接,它在整个会话过程中都处于开放状态;当需要传输文件数据时,客户端程序将连接服务器的端口20。

运行模式:
1.主动模式:客户端向服务器发送自己用于数据连接的IP地址和端口号,然后由服务器程序打开数据连接。
2.被动模式:当客户端在防火墙后面或者无法接收TCP连接时,通常建议采用被动模式。在被动模式下,服务器向客户端发送自己用于数据连接的IP地址和端口号,则客户端打开数据连接。
3. ASCII模式,只能传送纯文本。二进制模式,发送方将文件按字节发送,接收方以字节流的方式接收并保存数据。通常称这种模式为IMAGE模式或I模式。

  • SMTP(简单邮件传输协议)是一种可靠并且高效的电子邮件传输协议.(由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.通过SMTP协议所指定的服务器, 把E-mail寄到收信人的服务器上)。电子邮件服务器和其他邮件传输代理使用SMTP协议发送和接收邮件消息,而客户端邮件应用程序通常只使用SMTP向邮件服务器发送消息,然后等待回复。

  • POP3(邮局协议版本3)是规定计算机如何连接到邮件服务器进行收发邮件的协议.(决定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议)。POP3是基于客户端/服务器结构的网络协议,通过它可以将接收到的邮件保存到邮件服务器上。POP3支持离线邮件处理,用户可以定期检查服务器上的邮箱,并下载新的邮件。

POP3协议中包括如下3种状态:

  1. 认证状态。当客户端应用程序与邮件服务器建立连接时,客户端向邮件服务器发送自己的身份信息,包括帐户和密码等,由服务器进行验证。
    2.处理状态。通过验证后,客户端由认证状态转为处理状态,它将从邮件服务器上获取到未读邮件的列表,然后发送quit命令,退出处理状态,进入更新状态。
    3.更新状态。在更新状态中,客户端应用程序将未读邮件下载到本地计算机,然后再返回到认证状态,确认身份后断开与服务器的连接。
    POP3协议基于TCP连接,它使用的默认通信端口为110。
SMTP主要功能是用在传送电子邮件,当我们通过电子邮件程序,寄E-mil给另外一个人时,必须通过SMTP通讯协议,将邮件送到对方的邮件服务器上,等到对方上网的时候,就可以收到你所寄的信。 POP3服务器多用来进行面向用户的邮件操作.当我们寄信给另外一个人时,邮件服务器必须为收信者保存这封信,直到收信者来检查这封信件。当收信人收信的时候,必须通过POP3协议。

五、攻击举例

  • ARP攻击:ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目。
    症状:ARP欺骗木马的中毒现象表现为局域网有时会突然掉线,过一段时间后又会恢复正常;用户频繁断网;IE浏览器频繁出错,以及一些常用软件出现故障等。如果局域网中是通过身份认证上网的,会突然出现可认证,但不能上网的现象,重启机器或在MS-DOS窗口下运行命令arp -d后,又可恢复上网。
    ARP欺骗木马只需成功感染一台电脑,就可能导致整个局域网都无法上网,严重的甚至可能带来整个网络的瘫痪

  • DoS攻击全名叫做分布式拒绝服务(DDoS),攻击者往往会联合许多主机对同一个目标或者多个目标同时进行攻击,DDoS攻击常常会采用通过大量合法的请求的手段占用服务器网络资源,由此而达到瘫痪网络的目的。服务器在面对DDoS攻击时很难合理的判定和区分请求,造成辨识困难

  • **Challenge Collapsar(CC攻击)**主要是用来攻击页面的。大家都有这样的经历,就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,访问的人越多,论坛的页面越多,数据库压力就越大,被访问的频率也越高,占用的系统资源也就相当可观。CC攻击会模拟许多用户不停的访问那些需要消耗大量资源的操作(访问数据库等) ,最终造成服务器资源耗尽,直到宕机崩溃。

你可能感兴趣的:(大学考试,网络,tcpip)