TCP/IP模型、TCP与UDP区别与使用场景

目录

 TCP/IP协议簇

TCP/IP模型

PDU (协议数据单元)—— 数据在不同层中的单位

封装和解封装

TCP和UDP的区别

什么是面向链接?

什么是面向无连接?

为什么握手是三次,挥手是四次?

伪头部校验(确保数据完整性)

 TCP和UDP的使用场景:

封装和解封装图

 IP协议


 TCP/IP协议簇

 现如今用的参考模型TCP/IP 是一个协议簇,它组建了整个互联网
最主要的是TCP/IP 和这两个协议,所以起名为TCP/IP

88c2d682177d404f9d75af80df4a1eaa.png

TCP/IP模型

TCP/IP标准模型——四层

TCP/IP对等模型——五层

3d7dbaa89fde4b0da33f1ce224b846ff.png

PDU (协议数据单元)—— 数据在不同层中的单位

它是在不同层次协议中传输的最小数据单元,用于在网络中传递信息。PDU的大小和结构取决于所用协议的要求和设计。PDU在计算机网络中有着重要的作用。它通过封装和解封装的过程,在不同层次的协议之间进行数据传输和交互。PDU的作用是将上层协议的数据封装成适合下层协议传输的格式,同时也负责将接收到的数据解封装并传递给上层协议进行处理。 

OSI中可分为:

L1PDU

L2PDU

L3PDU

L4PDU

L5PDU

L6PDU

L7PDU

在TCP、IP中被称作:

  1. 应用层---报文
  2. 传输层---段
  3. 网络层---包
  4. 数据链路层---帧
  5. 物理层---比特流

封装和解封装

封装:将数据变为比特流的过程中,在参考模型的每一层需要添加上特定的协议报头动作。从高层往低层依次封装,在每一层使用特定的协议,对数据进行处理,在数据前添加特定的协议报头。

解封装 :封装的逆过程,数据从比特流还原为数据的过程。从底层往高层依次解封装,每解封装一层,会将该层的忒点那个协议报头去掉

应用层存在封装,只不过,应用层的封装内容取决于不同的应用协议。

常见的协议有

  1. HTTP ---超文本传输协议---获取网页信息---80(TCP 80
  2. HTTPS ---HTTP + SSL(安全传输协议)/TLS ---443(TCP 443
  3. FTP ---文件传输协议---TCP 20 21
  4. Tftp ---简单文件传输协议---UDP 69
  5. Telnet ---远程登陆协议---TCP 23
  6. SSH ---Telnet + SSL ---TCP 22
  7. DHCP ---动态主机配置协议---UDP 67 68
  8. DNS ---域名解析协议---TCP/UDP 53

tftpftp有什么区别:tftp只能文件上传和下载 ftp有认证
HTTPS—HTTP+SSL(现在叫TLS)是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性-------TCP443号端口

传输层---端口号---TCP/UDP

网络层---IP地址---IP协议

数据链路层---MAC ---以太网---早期局域网的解决方案,依靠交换机组建的二层网络。

物理层

e325c4d33d484c6885103eef25c88bc7.png

以太网Ⅱ型帧

FCS ---帧校验序列---确保数据完整性的参数---CRC(循环冗余算法)

TCP和UDP的区别

  1. TCP是面向链接的协议,而UDP是无连接的协议;
  2. TCP协议的传输是可靠的,而UDP协议的传输“尽力而为”;TCP的可靠性 --- 确认,重传,排序,流控。
  3. TCP协议可以实现流控,而UDP不行;
  4. TCP可以分段,而UDP不行;
  5. TCP消耗资源较大,传输效率较低;UDP耗费资源较小,速度快。

TCP和UDP的使用场景:

TCP协议更适用于对可靠性要求较高,但是对传输效率和资源占用要求较低的场景;

UDP更 适用于对传输效率要求较高,可靠性要求较低的场景(即时类通讯)。

  

什么是面向链接?

在正式传输数据之前,先适用预先的协议,建立点到点的链接。

TCP建立的连接实际建立了一个双向的会话连接,即通讯双方都可以向对方发送数据

什么是面向无连接?

是指通信双方不需要事先建立一条通信线路,而是把每个带有目的地址的包(报文分组)送到线 路上,由系统自主选定路线进行传输。邮政系统是一个无连接的模式,天罗地网式的选择路线,天女散花式的传播 形式;IP、UDP协议就是一种无连接协议

为什么握手是三次,挥手是四次?

握手时与数据无关,数据通道还没建立好,不存在数据传输问题,所以可以同时发;

但挥手与数据传输有关,需要考虑数据是否发完,数据不一定同时发完,断开时间也不一定一致。(四次挥手实际上可能只有三次,甚至两次、一次,三次是同时发完;但三次握手一定标准)

注:通道断开只是无法传输数据,但是可以交流。

 源端口号(16位)、目的端口号(16位)---2个字节:
计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信
序号(32位)---4个字节:
来标识从 TCP 源端向 TCP 目的端发送的数据字节流,它表示在这个报文段中的第一个数据字节的顺序号。如果将字节流看作在两个应用程序间的单向流动,则 TCP 用顺序号对每个字节进行计数。序号是 32bit 的无符号数,**序号到达 (2^32) - 1 后又从 0 开始。**当建立一个新的连接时, SYN 标志变 1 ,顺序号字段包含由这个主机选择的该连接的初始顺序号 ISN ( Initial Sequence Number )
进行一个排序的作用,因为它的数据具有分段功能 所以需要由排序,保持原有的顺序
确认序号(32位)---4个字节:
包含发送确认的一端所期望收到的下一个顺序号。因此,确认序号应当是上次已成功收到数据字节序号加 1 。只有 ACK 标志为 1 时确认序号字段才有效
数据:
数据,不定长度,为上层协议封装好的数据
选项:
可选项,可有可无,一般是空的,根据需要添加
首部长度(4位):
标识头部,可变长头部,因为头部长度(TCP整个头部)不固定,头部长度最短20个字节
保留(6位):
保留区域,6位,保留给将来使用,目前必须置为 0
URG:紧急标记位 ,为 1 表示紧急指针有效,为 0 则忽略紧急指针值,配合紧急指针使用
ACK:为1时,确认号有效,为0时,则无效
PSH:为 1 表示是带有 PUSH 标志的数据,指示接收方应该尽快将这个报文段交给应用层而不用等待缓冲区装满
RST:用于复位由于主机崩溃或其他原因而出现错误的连接。它还可以用于拒绝非法的报文段和拒绝连接请求。一般情况下,如果收到一个 RST 为 1 的报文,那么一定发生了某些问题
SYN:同步序号,为 1 表示连接请求,用于建立连接和使顺序号同步
FIN:用于释放连接,为 1 表示发送方已经没有数据发送了,即关闭本方数据流
窗口大小(16位):
此字段用来进行流量控制,主要用于解决流控拥塞的问题。单位为字节数,这个值是本机期望一次接收的字节数。
紧急指针(16位):

它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号
校验和(16位):
对整个的 TCP 报文段(包括 TCP 头部和 TCP 数据),以 16 位字进行计算所得。这是一个强制性的字段,要求由发送端计算和存储,并由接收端进行验证
确认数据的完整性,这里的是伪头部检验,会校验网络层中12个子节的内容----32位源ip,32位目标ip,8位保留 (都是置0),8位的协议,16位总长度。

TCP头部长度最短20个字节

伪头部校验(确保数据完整性)

除了校验传输层头部和数据内容外,还会将网络层头部中的一部分内容一起进行校验。

作为传输层,必须把端口号先给封装进去,完成本职任务
16位UDP长度是总长度(包括数据部分)
16位UDP校验和,也是伪头部校验

UDP头部长度固定8个字节

 TCP和UDP的使用场景:

TCP协议更适用于对可靠性要求较高,但是对传输效率和资源占用要求较低的场景;UDP更适用于对传输效率要求较高,可靠性要求较低的场景(即时类通讯)。

封装和解封装图

 IP协议

TTL (生存时间):数据包每经过一个路由器的转发,其数值减1,当一个数据包的TTL值为0是,路由器将不再转发而直接丢弃。

协议号:上层所适用的协议类型

TCP——6

UDP ——17

IP协议最短是20个字节

IP的分片和TCP的分段:

MTU (最大传输单元 ):默认值1500字节

MSS (最大段长度): 理论值1460字节,这个值需要进行协商,这个参数在TCP的SYN包携带,如果双方不一致,则将按照小的执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值