TCP/UDP协议详解

运输层

运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信。运输层协议是在端系统中而不是在路由器中实现的。在发送端,运输层将从发送应用程序进程接收到的报文转换成运输层分组,该分组被称之为运输层报文段
因特网运输层概述
因特网为应用层提供了两种截然不同的可用运输层协议。这些协议一种是UDP用户数据报协议,它为调用它的应用程序提供了一种不可靠、无连接的服务。另一种协议是TCP传输控制协议,它为调用它的应用程序提供了一种可靠的、面向连接的服务。
因特网网络层有一个协议叫做IP、即网际协议,为主机之间提供了逻辑通信。IP的服务模型是尽力而为交付服务。意味着它尽最大努力在通信的主机之间交付报文段,但它并不做任何确保。特别是,它不确保报文段的交付,不保证报文段的按序交付,不保证报文段中数据的完整性。IP被称之为不可靠服务
UDP和TCP协议最基本的责任是,将两个端系统间IP的交付服务扩展为运行在端系统上的两个进程之间的交付服务。将主机间交付扩展到进程间交付被称为运输层的多路复用和多路分解。UDP协议和TCP协议还可以通过在其报文段首部中包括差错检查字段而提供完整性检查。进程到进程的数据交付和差错检查是两种最低限度的运输层服务,也是UDP仅能提供的两种服务,与IP一样,UDP也是一种不可靠的服务,不能保证一个进程发送的数据能够完整无缺的到达目的进程。
另一方面,TCP为应用程序提供了几种附加服务,首先,他提供可靠数据传输。通过使用流量控制,序号,确认和定时器
,TCP保证正确地,按序地将数据从发送进程交付给接收进程。TCP还提供拥塞控制。在另一方面,UDP流量是不可调节的。使用UDP传输的应用程序可以根据其需要以其愿意的任何速率发送数据

多路复用和多路分解

在接收端,运输层检查这些字段,表示出接受套接字,进而将报文段定向到该套接字。将运输层报文段中的数据交付到正确的套接字的工作称为多路分解。在源主机从不同套接字中收集数据块,并为每个数据块封装上首部信息(这将在以后用于分解)从而生成报文段,然后将报文段传递到网络层,所有这些工作被称为多路复用
多路复用要求:
1)套接字有唯一标识符
2)每个报文段有特殊字段来指示该报文段所要交付到的套接字
这些特殊字段是源端口号字段和目的端口号字段。端口号是一个16bit的数,其大小在0-65535之间。0-1023范围的端口号是周知端口号(wll-known port number),它们保留给如HTTP(端口号80),FTP(端口号21)之类的应用层协议来使用。当我们开发一个新的应用程序时,必须为其分配一个端口号。

无连接的多路复用和多路分解

在运输层,无连接的网络传输是UDP协议来实现。UDP报文中含有源端口号和目的端口号,一个UDP套接字是由一个含有目的IP地址和目的端口号的二元组来全面标识。在客户端,源端口号是客户进程套接字的端口号,目的端口号是服务器的端口号。在服务器端,源端口号是服务器的创建的套接字的端口号,而目的端口号是客户端的套接字的端口号。
一个UDP套接字是一个含有目的IP地址和目的端口号的二元组来全面标识的,因此,如果两个UDP报文段含有不同的源IP地址和源端口,但具有相同的IP地址和目的端口号,那么两个报文段将通过相同的目的端口号定向到相同的目的进程

面向连接的多路复用和多路分解

网络上主机间的进程间通信,实质上是通过套接字来实现的。在运输层中面向连接的网络传输多使用TCP,而TCP套接字和UDP套接字之间有一个细微的差别,TCP套接字是由一个四元组(源IP地址,源端口号,目的IP地址,目的端口号)来标识。当TCP报文段从网络到达一台主机时,主机会使用全部4个值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值