TCP/IP四层模型中的重点网络协议

目录

应用层重点协议

DNS

NAT

NAPT

HTTP/HTTPS

传输层重点协议

TCP协议

TCP协议段格式

TCP原理

可靠(安全)机制

效率机制

 粘包问题

UDP协议

UDP协议与TCP协议对比

网络层重点协议

IP协议

数据链路层重点协议

认识以太网

认识MTU

ARP协议


应用层重点协议

DNS

DNS是一整套从域名映射到IP的系统。

TCP/IP中使用IP地址来确定网络上的一台主机,但是IP地址不方便记忆,且不能表达地址组织信息,于是人们发明了域名,并通过域名系统来映射域名和IP地址。

域名是一个字符串,如 www.baidu.com

NAT

NAT能够将私有IP对外通信时转为全局IP(也就是局域网ip转公网ip)

NAPT

那么问题来了,如果局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的IP都是相同的。NAPT的作用就是将局域网的IP+port转为公网的IP+port

HTTP/HTTPS

HTTP及HTTPS是应用层重点协议,在我的这篇文章里HTTP和HTTPS协议

传输层重点协议

TCP协议

TCP,即Transmission Control Protocol,传输控制协议。就是对数据的传输进行一个详细的控制。

TCP协议段格式

端口号:网络传输流程封装会使用的字段

其他字段:TCP原理会使用的字段

6位标志位:Boolean值,0/1数据

URG:紧急指针是否有效

ACK:申请建立连接,应答

PSH:提示接收端立刻从缓存区读走

RST:对方要求重新建立连接,复位报文段

SYN:请求建立连接,同步报文段

FIN:申请断开连接,结束报文段

TCP原理

TCP对数据传输提供的管控机制,主要体现在两个方面:安全和效率。

原则:保证数据传输安全的前提下,尽可能的提高传输效率。

可靠(安全)机制

(1)确认应答机制

发送端发送数据,接收端需要返回接收到数据报的应答。

数据会进行编号,并使用32位序号保存,下一个数据报就是接收到的数据报连续序号的最大值+1,也就代表之前的数据报全部接收到了。 

(2)超时重传机制

发送端超过一定时间,没有收到ack应答包,就会进行重传。

有两种情况,第一种就是发送数据包丢失,还有一种就是ack应答包丢失。当重传到达一定的次数,就表示对方出现异常,关闭连接 。

(3)连接管理机制

在正常情况下,TCP要经过三次握手建立连接,四次挥手断开连接。

三次握手建立连接

  1. 客户端发送syn----申请建立客户端到服务端的连接
  2. 服务端返回syn+ack----syn是申请建立服务端到客户端的连接,ack是对第一个数据报的应答,可以合并一起发,也可以分开发。
  3. 客户端返回ack----对第二个数据报syn的应答

四次挥手断开连接 

 

  1. 客户端发送fin到服务端----申请关闭客户端到服务端的连接
  2. 服务端返回ack----服务端状态置为close_wait
  3. 服务端发送fin到客户端----申请关闭服务端到客户端的连接(客户端收到,状态置为time_wait)
  4. 客户端返回ack----服务端收到状态置为closed(客户端等待一段时间,状态置为closed)

注:客户端接收到第三个数据报,不能马上置为close,还要给服务端发送应答,否则可能出现丢包(服务端无法断开连接),服务端就会根据超时重传机制,重发第三数据报,此时客户端已经是closed了

(4)流量控制机制

接收端处理数据的速度是有限的。如果发送端发的太快,导致接收端的缓冲区被打满,这个时候如果发送端继续发送,就会造成丢包,继而引起丢包重传等等一系列连锁反应。因此TCP支持根据接收端的处理能力,来决定发送端的发送速度。

接收端主动告诉发送端自己的窗口大小(TCP首部16位窗口字段)

(5)拥塞控制机制 

在不清楚当前网络状态下,贸然发送大量的数据,是很有可能引起雪上加霜的。TCP引入 慢启动机制,先发少量的数据,探探路,摸清当前的网络拥堵状态,再决定按照多大的速度传输数据。也就是发送端在刚开始发送数据时要用拥塞窗口探路。少量的丢包,我们仅仅是触发超时重传;大量的丢包,我们就认为网络拥塞。

效率机制

(1)滑动窗口机制

以并行的方式发送数据报,减少等待时间,提高效率。

窗口大小:指的就是无需等待确认应答而可以发送数据的最大值,窗口越大,网络的吞吐率就越高。

操作系统内核为了维护这个滑动窗口,需要开辟发送缓存区来记录当前还有哪些数据没有应答,只有确认过应答的数据,才能从缓存区删掉。

但是如果出现了丢包该如何重传?这里分两种情况讨论

第一种:数据报已抵达,ack丢了

没影响,后续的ack也能表示序号前的全部被接收了

第二种:发送的数据报丢包

接收端接收到的连续序号最大值+1(如果中间有部分没接收到,序号就不连续)

连续三次接收到下一个是XXX,就表示从XXX开始丢的数据报,需要重传,也叫快重传。

(2)延迟应答机制 

接收端返回的流量窗口,不是立即返回,而是等待一定的时间,这样返回的流量窗口就可能更大(窗口越大,吞吐量就越大,效率就越高)

(3)捎带应答机制 

不管是客户端还是服务端,都既可以是发送端也可以是接收端,不管客户端还是服务端,接收到数据时,返回的ack应答包,可以和发送的数据报合并一起发送给对方。

 粘包问题

“包”指的是应用层的数据包

避免粘包:明确包和包之间的边界

  • 固定包的大小:读写都按照固定的大小来发送/接收
  • 可变长度的包:发送时包含长度的信息,接收到就按照这个信息读取相应大小的数据

UDP协议没有粘包问题:因为UDP协议是面向数据报,发送数据是一整块一整块法,不存在粘包问题。

UDP协议

UDP协议与TCP协议对比

UDPTCP
无连接有连接
不可靠可靠
面向数据报面向字节流
只有接收缓存区(只管发,不管是否丢包,所以没有发送缓存区)接收和发送缓存区都有
大小受限大小不限
适用场景:实时性要求高,允许少量丢包适用场景:可靠性比较高的地方

网络层重点协议

IP协议

协议头格式

关于ip协议和arp协议在我的这篇文章网络原理之TCP/IP协议

数据链路层重点协议

认识以太网

以太网:局域网的一种技术标准

以太网帧:协议格式(在数据链路层封装数据报的格式)

认识MTU

以太网的最大传输单元,超过以太网规定的最大限制,就会进行分包/分片

对ip协议的影响:

超出mtu限制,就会在网络层进行分片,就可能存在零件丢包的问题(接收端收到的多个小包,如果部分丢失,那整个包都没用)

对udp的影响:

小包丢包,接收端拿到也无法还原,整个udp数据报就没用

对tcp的影响:

小包丢包,接收端拿到还是无法还原,但tcp有可靠机制来保证数据重发

ARP协议

ARP不是一个单纯的数据链路层的协议,而是一个介于数据链路层和网络层之间的协议。
ARP协议建立了主机 IP地址 和 MAC地址 的映射关系。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCP/IP四层模型和五层模型是两种常用的网络协议参考模型,用于描述计算机网络不同层次的功能和通信规则。 TCP/IP四层模型包括:网络接口层、互联网层、传输层和应用层。网络接口层负责将数据包转换成适合传输的物理格式,并进行网络接口的选择。互联网层负责进行网络间的数据传输,通过IP协议来确定数据包的传输路径。传输层负责提供端到端的数据传输服务,包括TCP和UDP协议,TCP提供可靠的面向连接的传输服务,而UDP提供不可靠的面向无连接的传输服务。应用层包括各种网络应用协议,如HTTP、FTP、SMTP等,负责应用程序之间的通信。 五层模型TCP/IP四层模型的基础上增加了一个会话层。五层模型包括:物理层、数据链路层、网络层、传输层和应用层。物理层负责数据在物理媒介上的传输,包括电缆、光纤等。数据链路层负责将数据分帧,并进行错误检测和纠正,如以太网、无线局域网等。网络层负责进行数据包的路由选择和寻址,如IP。传输层提供端到端的数据传输服务,如TCP和UDP。应用层包括各种应用层协议,如HTTP、FTP等。 两种模型虽然在命名和层次划分上有所不同,但其基本结构和功能相似。TCP/IP模型是互联网使用最广泛的模型,而五层模型是OSI参考模型的一部分。无论使用哪种模型,它们都为网络的设计、实现和管理提供了一种标准化的方法,使不同厂商和组织之间的网络设备和应用能够进行互通和协作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值