-
传输层简介
1. 传输层需要提供如下功能:
2. 传输层为网络应用程序提供了一个接口。
3. 传输控制协议——TCP:TCP提供了完善的错误控制和流量控制,能够确保数据正确传输,它是一个面向连接的协议。
4. 用户数据报协议——UDP:UDP只提供了非常基本的错误检测,用于不需要TCP精细控制功能的场合,它是一个无连接的协议。
-
面向连接协议和无连接协议
1. 面向连接协议:会在通信计算机之间建立并维护一个连接,并且在通信过程中监视连接状态。通过网络传输的每个数据包都会有一个确认,发送端计算机会记录状态信息来确保每个数据包都被正确无误的接收了,并且在需要时会重发数据。当数据传输结束后,发送端和接收端计算机会以适当方式关闭连接。
2. 无连接协议:以单向方式向目的发送数据报,不承担通知目的计算机关于数据发送的职责。目的计算机接收到数据后也不需要向源计算机返回状态信息。
-
端口和套接字
1. 在TCP/IP系统中,应用程序可以使用端口号通过TCP或UDP指定数据目的地。端口是一个预定义的内部地址,充当从应用程序到传输层或是从传输层到应用程序的通路。
2. TCP或UDP数据实际是被发送到一个套接字上的。套接字是一个由IP地址和端口号组成的地址。
-
多路复用/多路分解
1. 多路复用是指把多个来源的数据导向一个输出,而多路分解是把从一个来源接收的数据发送到多个输出。多路传输/多路分解让TCP/IP协议栈较低层的协议不比关心哪个程序在传输数据。与应用程序相关的操作都由传输层完成了,数据通过一个与应用程序无关的管道在传输层与网际层之间传递。
2. 多路复用是指两个或多个用户共享公用信道的一种机制。通过多路复用技术,多个终端能共享一条高速信道,从而达到节省信道资源的目的,多路复用有频分多路复用(FDMA),时分多路复用(TDMA),码分多路复用(CDMA)几种。
-
TCP:面向连接的传输协议
1. TCP重要特性:
2. TCP数据格式:
3. TCP连接:TCP通过连接发送和接收数据,而这个连接必须根据TCP的规则进行请求、打开和关闭。TCP的功能之一是为应用程序提供访问网络的接口。这个接口是通过TCP端口提供的,而为了通过端口提供连接,必须打开TCP与应用程序的接口。 被动打开——某个应用程序进程通知TCP准备通过TCP端口接收连接,这样就会打开TCP到应用程序的连接,从而为参与连接请求做准备。 主动打开——程序要求TCP发起与另一台计算机的连接,这就是主动打开状态。
4. 建立连接:三次握手总是发生在TCP连接建立的初期 。需要三次握手的原因——TCP的三次握手最主要是防止已过期的连接再次传到被连接的主机。
5. TCP流量控制(滑动窗口方法):接收端计算机利用“窗口”字段(也被称为“缓存大小”字段)来定义一个超过最后一个已确认序列号的序列号“窗口”,在这个范围内的序列号才允许发送端计算机进行发送。发送端计算机在没有接收到下一个确认消息之前不能发送超过这个窗口的序列号。
6. 关闭连接:计算机A发送一个数据分段,其中的FIN标记设置为1。之后应用程序进入"fin-wait"状态。在这个状态下,计算机的TCP软件继续接受数据分段,并处理已经在序列中的数据分段,但不再从应用程序接收数据了。当计算机B接收到FIN数据分段时,它返回FIN确认信息,然后发送剩余的数据分段,通知本地应用程序接收到了FIN消息。计算机B向计算机A发送一个FIN数据分段,计算机A返回确认信息,连接就被关闭了。
7. TCP如何保证可靠性:TCP的可靠性是通过顺序编号和确认(ACK)来实现的。TCP在开始传送一个段时,为准备重传而首先将该段插入到发送队列之中,同时启动时钟。其后,如果收到了接受端对该段的ACK信息,就将该段从队列中删去。如果在时钟规定的时间内,ACK未返回,那么就从发送队列中再次送出这个段。TCP在协议中就对数据可靠传输做了保障,握手与断开都需要通讯双方确认,数据传输也需要双方确认成功,在协议中还规定了:分包、重组、重传等规则;而UDP主要是面向不可靠连接的,不能保证数据正确到达目的地。
-
UDP:无连接传输协议
1. UDP实际上能够执行基本的错误检验,因此,可以说UDP具有有限的错误检验功能。UDP数据报中包含一个校验和,接收端计算机可以利用它来检验数据的完整性。
2. UDP的开销没有TCP大。
3. UDP不会重新传输丢失或损坏的数据报、重新排列混乱的接收数据、消除重复的数据报、确认数据报的接收、建立或是终止连接。它主要是在程序不必使用TCP连接开销的情况下发送和接收数据报的一种方式。
作者:龙猫小爷
链接:http://www.jianshu.com/p/674fb7ec1e2c
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。