传输层协议介绍

传输层协议介绍

TCP 协议

在 TCP/IP 协议栈中,传输层有两个协议: TCP(传输控制协议)和 UDP(用户数据报协议)。
TCP 协议传输更加稳定可靠,UDP 协议传输效率更高。这两个协议各有特点,在实际应用
中,根据实际应用的需要,选择不同的传输层协议。比如:Web、邮箱等对可靠性要求高
的服务,都使用 TCP 协议来传输; 对于即时通讯、DHCP 等要求快速完成信息传递的服务,就使用 UDP 协议来传输。
TCP 是面向连接的、可靠的进程到进程通信的协议。TCP 提供全双工服务,即数据可在
同一时间双向传输,每一个 TCP 都有发送缓存和接收缓存,用来临时存储数据

TCP报文段:

在这里插入图片描述

源端口口号:发送方进程的端口号。

目标端口号:接收端进程的端口号:接收端进程

序号:发送端为每个字节进行编号便于接收段端正确重组

当TCP从进程接送数据字节是

确认号:对发送端确认信息

首部长度:用它可以确认TCP首部数据结构的字节长度,一般情况下TCP首部是20字节,但首部长度最大可以扩展为60字节。

保留:这部分保留位供今后扩展功能用,现在还没有使用到。

六个控制位:

URG:紧急位。紧急指针有效位

ACK:确认位。只有当ACK=1时,确认序列号字段才有效;当ACK=0时,确认号字段无效

PSH:急迫位。标志位为1时,要求接收方尽快将数据段送达应用层。

RST:重置位。当RST值为1时,通知重新建立TCP连接。

SYN:同步(连接)位。同步序号位,TCP需要建立连接时将这个值设为1

FIN:断开位。当TCP完成数据传输需要断开连接时,提出断开连接的一方将这个值设为1.数据段的数目。这个值的大小是可变的,

窗口大小:说明本地可接受数据段的数目。这个值的大小是可变的,当网络通常是接送端响应消息会将这个窗口值变大以加快传输速度,当网络不稳定时减小这个值可保证网络数据的可靠传输,TCP中的流量控制机制就是依靠变化窗口的大小实现的。

例如下载速度从一开始的KB逐渐提升到几MB的过程

校验和:用来做差错控制。字段检验的范围包括首部和数据这两部分。数据段在发送时和到达目的地时会进行校验和计算,若这两次的校验和一致,则说明

数据基本是正确的,否则将认为该数据已被破坏,接收端将丢弃该数据。

紧急指针:和URG配合使用,当URP=1时有效

选项:在TCP首部可以有多达40字节的可选信息。例如,最大报文段长度MSS (Maximum Segment Size)。 MSS告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节。

TCP三次握手和四次挥手

TCP的连接的过程为三次握手
在这里插入图片描述

就像两个同学对话,A同学问B同学,你能听到我说话吗?A向B发送一个能不能听到说话的一个连接请求,B同学收到A同学说的话,这时候就是第一次握手成功,证明A-B这条路是没问题的,然后B同学会回答A同学,我可以听到,你能听到我说话吗?,这时候相当于B发送一个确认以及连接请求给A,这是第二次握手,A收到以后再次告诉B,我也可以听到你说话,这时候是A向B再次发送一个确认,这就是第三次握手,这时候证明B到A这条路也没问题,两条路都是通的,这就是我对三次握手的白话理解。

TCP四次挥手

在这里插入图片描述
四次断开,更好理解一点,A告诉B,我传给你的东西传完了,我要跟你断开了,B收到以后告诉A,那你断吧,然后B再告诉A,我给你的东西也传完了,我也断开了,A收到以后再告诉B,那你断吧

UDP协议

相比 TCP 协议而言,UDP 是一个无连接、不保证可靠性的传输层协议,也就是说发送端
不关心发送的数据是否到达目标主机、数据是否出错等,收到数据的主机也不会告诉发送方
是否收到了数据,它的可靠性由上层协议来保障。既然 UDP 有这样的缺点,那为什么进程还
愿意使用它呢?因为 UDP 也有优点, UDP 的首部结构简单,在数据传输时能实现最小的开销,
如果进程想发送很短的报文而不关心可靠性,就可以使用 UDP。使用 UDP 发送很短的报文
时,在发送端和接收端之间的交互要比使用 TCP 时少得多。
因此,相比 TCP 协议,UDP 传输数据速度更快,效率更高。

UDP 首部的格式:
在这里插入图片描述

各字段的含义如下。
 源端口号:用来标识数据发送端的进程,和 TCP 协议的端口号类似。
 目的端口号:用来标识数据接收端的进程,和 TCP 协议的端口号类似。
 UDP 长度:用来指出 UDP 的总长度,为首部加上数据。
 校验和:用来完成对 UDP 数据的差错检验,它的计算与 TCP 校验和类似。这是 UDP
提供的唯一可靠机制。
UDP 在实际工作中的应用范围很广。例如,聊天工具 QQ 在处理发送短消息时就是使用
了 UDP 的方式。不难想象,如果发送十几个字的短消息也使用 TCP 进行一系列的验证,将导
致传输率大大下降。有谁愿意用一个“反应迟钝”的软件进行网络聊天呢?在网络飞速发展
的今天,网络技术日新月异,对于常用的简单数据传输来说,UDP 不失为一个很好的选择

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值