简单认识TCP/IP协议簇

一、概念

相比较OSI七层参考模型较为简单,且具有针对性。TCP/IP不是具体的协议,而是一个协议簇,包括HTTP(超文本传输协议)、TELNET(虚拟终端协议)协议,FTP(文本传输协议)、SNMP(简单网络管理协议)等很多种协议,最具代表的就是TCP协议和IP协议。
在这里插入图片描述使用TCP传输层协议的应用层协议对应端口号:

FTP21,20
TELNET23
SMTP25
HTTP80
SSH22
MYSQL3306

使用UDP传输层协议的应用层协议对应端口号:

TFTP69
DNS53

二、分层结构

四层模型,每一层的工具设备都具有针对性,如下图:
在这里插入图片描述

socket套接字:应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O接口(输入/输出)插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。

三、TCP协议

TCP与UDP的区别:
1.TCP面向连接的,UDP无连接
2.TCP对系统要求多,UDP要求少
3.TCP可靠,确定对端存在的情况下才传输数据,重传控制,顺序控制,而UDP没有
4.TCP流模式(逐比特,逐字节传输),UDP数据包模式(传送数据报文)
六种表示信号:
SYN:(synchronous)建立连接请求信号
FIN:(finish)断开连接请求信号
ACK:(acknowledgement)确认信号
RST:(reset)重置信号
URG:(urgent)紧急信号
PSH:(push)传送信号

两个序列号:
seq:(sequence number)序列号
Ack:(acknowledge number)确认号码

TCP三次握手:
必须是客户端发起FIN连接请求信号,(一次握手),服务端回复并请求建立连接(第二次握手),客户端回复同意建立连接(第三次握手),双方建立连接成功在这里插入图片描述

TCP四次挥手:
客户端和服务端任意一端作为主动方,发出FIN请求断开信号(第一次挥手),被动方确认断开(第二次挥手),被动方再发出请求断开信号(第三次挥手),主动方确认断开(第四次挥手)
在这里插入图片描述
(1)一方先发起关闭请求:
在这里插入图片描述
(2)双方同时发起关闭请求:
在这里插入图片描述
问题一:为什么要三次握手?不是两次?不是四次?

答:因为两次握手之后客户端保证了与服务端连接的确认信息,而服务端没有收到客户端给出的连接确认信息,当客户端发送数据给服务端时因为网络拥塞延时一条数据信息未发送成功,而客户端已经认为自己发送完成了已经断开了连接,而服务端这时收到了这个延时过期失效的数据信息,以为客户端给自己的好东西,就给客户端回复我收到了,可是这时的客户端明明早都已经离开不见人影了,服务端还在傻傻的等待下一条数据信息,这就对服务端造成了资源浪费,所以服务器端才不会那么傻,他也需要等到服务端给自己确认的信息才能确认建立连接。三次已经建立可靠的连接,为什么要四次,那不是就多余啦。

问题二:为什么要四次挥手,不是三次?

答:因为TCP是全双工通信,必须每个方向都需要进行单方面确认关闭通讯,主动方请求断开,被动方断开回复,被动关闭应用程序,被动方发给FIN给主动方请求断开,主动方等待2MSL之后进入关闭状态,因为他在等待被动方是否还需要发送别的数据信息给他,被动方收到主动方确认断开的信息之后就进入关闭状态,彻底完成断开连接。两次三次的通信都不能保证可靠关闭,而四次以上挥手也就多余

问题三:为什么连接时是三次?断开时却要四次呢?

答:因为连接时SYN信号和ACK信号是放在一个报文数据段传送的,但断开时,被动方收到主动方发来的FIN只确定了对方停止发送数据,但是还可以接受数据,需要先回复ACK确定收到对方不发送数据的信息,这时被动方还可以再发给主动方数据,再给对方发一个FIN表示自己也不发送数据,主动方确认之后才能正式closed状态。

问题四:syn攻击?怎么防御?

答:(1)SYN攻击原理
SYN洪水攻击是DOS攻击中最常见的攻击类型之一,利用TCP三次握手的缺陷,在请求建立连接时随机产生实际不存在IP地址不间断地发送给服务器SYN半请求连接信号,服务器就会将所有收到地SYN放入等待客户端确认队列中,由于大量地SYN信号源地址不存在,服务器收不到客户端地确认回复,也会不断重复发送等待确认信息,正确地SYN信号由于超时等不到回复,丢弃,伪造地SYN信号长时间占用等待队列,浪费服务器的资源,直到服务器资源饱和死机,甚至网络瘫痪。
(2)如何预防
检测SYN攻击:当发现服务器端有大量半连接状态,且IP地址都是随机产生的,基本可以确定遭到SYN攻击
#netstat -n -p TCP
也可以查看在LINUX环境下某个端囗的未连接队列的条目数
#netstat -n -p TCP   GREP SYN_RECV   grep :22  wc -l  324
预防:
1、过滤网关防护
(1)网关超时设置:防火墙设置SYN转发超时参数
(2)SYN网关:SYN网关收到客户端的SYN包时,直接转发给服务器;SYN网关收到服务器的SYN/ACK包后,将该包转发给客户端,同时以客户端的名义给服务器发ACK确认包
(3)SYN代理:当客户端SYN包到达过滤网关时,SYN代理并不转发SYN包,而是以服务器的名义主动回复SYN/ACK包给客户,如果收到客户的ACK包,表明这是正常的访问,此时防火墙向服务器发送ACK包并完成三次握手
2、 调整tcp/ip协议栈
(1)SynAttackProtect机制
(2)SYN cookies技术
(3)增加最大半连接数
(4)缩短超时时间

问题五:如何通过滑动窗口协议实现流量控制和拥塞控制的?两者有什么异同?

窗口:TCP传送数据通过段传送,为了加快传送速度,窗口的出现提高了数据传送的单位,同时提高了通信性能。
在这里插入图片描述滑动窗口:就是在窗口的概念下,传送数据不是只有一个,或者一个窗口就能完成地,需要每一个窗口接着一个窗口连续传送数据。滑动窗口允许发送方在停止并等待确认前发送多个数据分组。由于发送方不必每发送一个分组就停下来确认,因此可以加速数据的传输。
在这里插入图片描述重发机制:
①在接受方应答回复时丢包,不需要重发,在下一次回应时就能确认这次发送是成功的
在这里插入图片描述
②发送方发送时丢包,接受方就会连续给接受方发送当前的确认应答,发送方三次收到确认应答的信息之后就知道数据丢失的消息随即就重新发送该段丢失的数据。在这里插入图片描述

答:流量控制:发生在发送端和接收端之间,只是点到点之间的控制,表现为在接收端丢包,在减少接收端给发送端回应时占用的缓存空间,即第一种重传机制(实际不需要重传)
拥塞控制:发生在整个网络传输系统中,是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。当发送方发送很多数据信息时,由于网络拥塞,会丢包,接受通过发送降低拥塞窗口cwndb变化来告知发送方拥塞,且一直回复上一条数据信息的ACK回复来控制拥塞,即第二个重发机制在这里插入图片描述
流量控制与拥塞控制的异同
:现象都是丢包,都是为了让发送方发少一点,慢一点,保证稳定传输数据
:流量控制丢包在发送端,拥塞控制丢包在路由器;流量控制作用在接收端,拥塞控制作用在整个网络上

问题六:TCP 有哪些定时器?

答:重传计时器:确认回复收到之前计时器到期重传,若未到期,计时器复位不重传
时间等待计时器:四次挥手时的主动方在等待被动方发送FIN时等待2MSL
持续计时器:接收端窗口不够用时启用,防止拥塞,原理如下图
在这里插入图片描述
保活计时器:用来防止在两个TCP之间的连接出现长时期的空闲,原理如下图
在这里插入图片描述

四、IP协议

IP协议有两个版本ipv4和ipv6
在这里插入图片描述

ip地址分类
A类:前一位固定为0,0XXXXXXX —0-127,网络掩码默认为 255.0.0.0
B类:前两位固定为10,10XXXXXX—128-191,网络掩码默认为255.255.0.0
C类:前三位固定为110,110XXXXX—192-223,网络掩码默认255.255.255.0
D类:前四位固定为1110,1110XXXX—224-239,组播地址,无掩码
E类: 前四位固定为1111,1111XXXX—240-255,科研,军用
特殊地址:

  • 0.X.X.X 无效地址,比如0.0.0.0,占位,用于缺省,代表所有
  • 127.0.0.1 本地测试 (127.X.X.X 测试地址) ,即每个主机ping这个地址都是存在的,ping得通的
  • 169.0.0.0/16 网络位不变,主机位全0,表示一个网段
  • 255.255.255.255 受限广播地址
  • 200.1.1.1/24 定向广播地址,网络不变,主机位全1
  • 169.254.0.0/24 本地链路地址 link-local
  • 私有地址:
    A类里:10.0.0.0/8
    B类里:172.16.0.0/16-172.31.0.0/24
    C类里:192.168.0.0/24-192.168.255.0/24
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值