计算机网络传输层全攻略:UDP 与 TCP 的技术解读!!!

一、传输层提供的服务

端口的作用:

① 通过“端口号”标识本主机的一个特定进程

每台主机的端口号是相互独立的

TCP、UDP 两种协议的端口号是相互独立的

② TCP 或 UDP 协议,通过 Socket套接字={IP 地址:端口号},唯一地标识网络中的一台主机上的一个应用进程

端口号的分类:

① 服务器使用的端口号:

熟知端口号 0~1023:通常只能用于被熟知的重要应用程序

登记端口号 1024~49151

② 客户端使用的端口号

短暂端口号 49152~65535

功能:

① 实现端到端(进程到进程)的通信

② 复用和分用

  • 复用(从上到下):在发送数据的时候,同一台主机上的多个进程可以使用同一个传输层协议
  • 分用(从下到上):在接收数据的时候,传输层可以把数据正确交付到目的进程

③差错检测

  • TCP 检测出差错后丢弃数据,并通知发送方重传
  • UDP 检测出错误后直接丢弃数据,且不通知发送方

④向应用层提供两种服务

  • 面向连接的、可靠的端到端传输服务(TCP)一一确保数据正确/完整,但开销大、实时性较差
  • 无连接的、不可靠的端到端传输服务(UDP)--数据可能出错/丢失,但速度快、开销小

传输层根据端口号来区分数据来自/去往哪个进程

IP 地址+端口号 指向网络中一台主机上的一个特定的进程

网络层实现了“主机到主机”的通信。网络层在 IP 数据报的首部,指明源 IP 地址、目的 IP 地址传输层实现了“端到端”(进程到进程)的通信。

传输层在 TCP(或 UDP)报文段的首部,指明源端口、目的端口

假设:进程 1、5 正在用 TCP 通信;2、6正在用 TCP 通信;3、7 正在用 UDP 通信;4、8正在用 UDP 通信

两台主机的端口号是相互独立的

  • TCP、UDP 的端口号也是相互独立的
  • 当两个进程之间想要通信时,需要指明:

① 使用哪种传输层协议;

② 本进程绑定的端口号,

③ 对方的 IP 地址和端口号;

套接字(Socket)=(IP 地址:端口号),分为TCP套接字、UDP 套接字

  • 0~1023 为熟知端口号,开发的时候一般不使用
  • 其他端口号在实际开发时并没有特别严格的限制,只要在本机没有被使用的端口号都可以使用
  • 端口号分类只是一种“建议标准”,而非“强制标准

有连接的传输 vs 无连接的传输:

有连接:传输前先打招呼,先确认对方已经准备好接收数据。传输结束时也要告知对方已结束

无连接:不打招呼,直接把数据传给对方

可靠的传输 vs 不可靠的传输

可靠的:接收方使用“确认机制”让发送方知道哪些数据已被正确接收

不可靠的:接收方无论收没收到数据、数据是否正确,都不给发送方反馈

二、UDP数据报

UDP 协议不支持报文拆分、重装,因此应用层的报文长度不能超过 UDP 协议上限

  • UDP 首部很小,只占 8B
  • UDP 每次传输一个完整的报文,不支持报文自动拆分、重装
  • UDP 是无连接的、不可靠的(可靠性可以交给应用层处理),也不支持拥塞控制
  • UDP 支持一对一<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值