第二章 传输层:TCP、UDP和SCTP(1)

原创 2015年11月20日 09:57:34

1. TCP/IP协议族总图


IPv4   网际协议版本4(Internet Protocol version 4)。使用32位地址。IPv4给TCP、UDP、SCTP、ICMP和IGMP提供分组递送服务。

IPv6   网际协议版本6(Internet Protocol version 6)。使用128位地址。给TCP、UDP、SCTP和ICMPv6提供分组递送服务。

TCP   传输控制协议(Transmission Control Protocol)。是一个面向连接的协议,为用户进程提供可靠的全双工字节流。TCP套接字是一种流套接字(stream socket)。TCP关心确认、超时和重传之类的细节。

UDP   用户数据报协议(User Datagram Protocol)。是一个无连接协议。UPD套接字是一种数据报套接字(datagram socket)。UDP数据报不能保证最终到达它们的目的地。


2. 用户数据报协议(UDP)

UDP是一个简单的传输层协议。应用进程往一个UDP套接字写入一个消息,该消息随后被封装到一个UDP数据报,该UDP数据报进而被封装到一个IP数据报,然后发送到目的地。UDP不保证UDP数据报会到达其最终目的地,不保证个个数据报的先后顺序跨网络后保持不变,也不保证每个数据报只到达一次。

使用UDP进行网络编程所遇到的问题是它缺乏可靠性。如果一个数据报到达了其最终目的地,但是校验和检测发现有错误,或者改数据报在网络传输途中被丢弃了,它就无法被投递给UDP套接字,也不会被远端自动重传。如果想要确保一个数据报到达其目的地,可以往应用程序中添置一大堆的特性:来自对端的确认、本端的超时与重传等。

每个UDP数据报都有一个长度。如果一个数据报正确地到达其目的地,那么该数据报的长度将随数据一道传递给接收端的应用程序。

UDP提供无连接的服务,因为UDP客户与服务器之间不比存在任何长期的关系。一个UDP客户可以创建一个套接字并发送一个数据给一个给定的服务器,然后理解用同一套接字发送给另一个数据报给另一个服务器。同样地,一个UDP服务器可以用同一个UDP套接字从若干不同的客户接受数据报,每个客户一个数据报。


3. 传输控制协议(TCP)

由TCP向应用进程提供的服务不同于由UDP提供的服务。

首先,TCP提供客户与服务器之间的链接,TCP客户先于某个给定的服务器建立一个连接,再跨该连接与那个服务器交换数据,然后终止这个连接。

其次,TCP还提供了可靠性。当一个TCP向另一端发送数据时,它要求对端返回一个确认,如果没有收到确认,TCP就自动重传数据并等待更长时间。在数据重传失败后,TCP才放弃,如此发送数据上所花的总时间一般为4~10分钟(依赖于具体实现)

再次,TCO提供流量控制。TCP总是告知对端在任何时刻它一次能够从对端接受多少字节的数据,这称为通告窗口。在任何时间,该窗口指出接收缓存区中当前可用的空间量,从而确保端发送的数据不会使接收缓冲区溢出。

版权声明:本文为博主原创文章,未经博主允许不得转载。

LTE S1接口控制面面为什么使用SCTP,而不用TCP

S1接口的协议分为控制面协议和数据面协议,更具体来说,对各个面的协议,又可以分为无线网络层协议,以及传输网络层协议。如下图所示:                            ...
  • u013298353
  • u013298353
  • 2014年02月11日 11:27
  • 1996

TCP/IP(三):传输层TCP与UDP

TCP协议 概述 TCP协议和UDP协议处于同一层:传输层,但是两者之间有很大的区别,TCP协议具有以下特点:TCP提供可靠的数据传输服务,TCP是面向连接的,即数据在通信之间要先建立连接,...
  • sweetgum2012
  • sweetgum2012
  • 2016年04月18日 09:36
  • 4467

传输层TCP和UDP的区别

面向报文(UDP)和面向字节流(TCP)的区别 面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需...
  • yangcs2009
  • yangcs2009
  • 2014年09月30日 12:56
  • 5575

Unix网络编程:第二章 传输层:TCP、UDP和SCTP

第二章 传输层:TCP、UDP和SCTP 2.1 概述 UDP是一个简单的、不可靠的数据报协议 TCP是一个复杂、可靠的字节流协议。 SCTP与TCP类似,是可靠传输协议,但它还提供消息边界、...
  • teffi
  • teffi
  • 2017年01月21日 11:28
  • 210

第二章 传输层:TCP、UDP和SCTP

1. 概述   UDP是一个简单的、不可靠的数据报协议   TCP是一个复杂、可靠的字节流协议 2. 用户数据报协议(UDP) 2.1 数据报格式 16位源端口号 ...
  • Cylan_Jia
  • Cylan_Jia
  • 2012年12月03日 22:36
  • 768

UNIX网络编程卷一 第二章 传输层TCP UDP SCTP

这一章主要概述了TCP/IP协议族的各种协议,主要讨论了传输层的 TCP UDP 和SCTP协议的通信过程。 一:总图 该图描绘了tcp/ip协议中各个协议的层次关系以及协议之间的关联。 如pin...
  • haoyuedangkong_fei
  • haoyuedangkong_fei
  • 2017年02月10日 14:50
  • 368

UNIX网络编程笔记 第二章 传输层TCP、UDP和SCTP

第二章 TCP MSS选项(Maximum Segment Size): SYN报文中携带该选项,告诉对端它在本连接中愿意接收的最大数据字节数。用来防止分片。MSS精彩设置为MTU减去IP和T...
  • standmyground
  • standmyground
  • 2016年09月03日 11:35
  • 455

第二章 传输层:TCP、UDP和SCTP(2)—TCP连接的建立和终止

1. 三次握手 建立一个TCP连接时会发生下述情形 (1) 服务器必须准备好接受外来的连接。这通常通过调用socket、bind和listen这3个函数来完成,称之为被动打开。 (2) 客户通过...
  • u011628751
  • u011628751
  • 2015年11月20日 11:28
  • 183

UNIX网络编程1:传输层协议TCP、UDP、SCTP

OSI模型,TCP协议,UDP协议,SCTP协议,套接字,端口号
  • Seawood_Xie
  • Seawood_Xie
  • 2017年06月16日 15:20
  • 306

UNIX网络编程卷1:套接字联网API-第2章:传输层 TCP/UDP和SCTP

1.OSI模型 OSI(open systems interconnection)计算机通信开放系统互连模型,是一个七层的理论模型(也就是说理论上分得很细致完善,但实际中设计实现中有出入) 实际...
  • tiankong_
  • tiankong_
  • 2017年07月03日 10:04
  • 305
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第二章 传输层:TCP、UDP和SCTP(1)
举报原因:
原因补充:

(最多只允许输入30个字)